package com.nilhcem.bblfr.core.ui.recyclerview;
import android.os.Build;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import com.nilhcem.bblfr.BuildConfig;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import static com.google.common.truth.Truth.assertThat;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = Build.VERSION_CODES.M)
public class EmptyRecyclerViewTest {
private EmptyRecyclerView recyclerView;
private View emptyView;
@Before
public void setup() {
emptyView = new View(RuntimeEnvironment.application);
recyclerView = new EmptyRecyclerView(RuntimeEnvironment.application);
recyclerView.setEmptyView(emptyView);
}
@Test
public void should_show_empty_view_if_adapter_is_empty() {
// Given
RecyclerView.Adapter adapter = new RecyclerView.Adapter() {
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return null;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
}
@Override
public int getItemCount() {
return 0;
}
};
// When
recyclerView.setAdapter(adapter);
// Then
assertThat(emptyView.getVisibility()).isEqualTo(View.VISIBLE);
}
@Test
public void should_hide_empty_view_if_adapter_has_data() {
// Given
RecyclerView.Adapter adapter = new RecyclerView.Adapter() {
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return null;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
}
@Override
public int getItemCount() {
return 2;
}
};
// When
recyclerView.setAdapter(adapter);
// Then
assertThat(emptyView.getVisibility()).isEqualTo(View.GONE);
}
}