package com.rapidftr.adapter; import android.view.View; import android.view.ViewGroup; import com.rapidftr.CustomTestRunner; import com.rapidftr.forms.FormSection; import com.rapidftr.model.Child; import com.rapidftr.view.DefaultFormSectionView; import org.junit.Test; import org.junit.runner.RunWith; import java.util.List; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.Mockito.*; @RunWith(CustomTestRunner.class) public class FormSectionPagerAdapterTest { protected List<FormSection> formSections = CustomTestRunner.formSectionSeed; protected Child child = mock(Child.class); protected FormSectionPagerAdapter adapter = spy(new FormSectionPagerAdapter(formSections, child, true)); @Test public void testCount() { assertThat(adapter.getCount(), equalTo(formSections.size())); } @Test public void testDestroyItem() { ViewGroup group = mock(ViewGroup.class); View view = mock(View.class); adapter.destroyItem(group, 0, view); verify(group).removeView(view); } @Test public void testInstantiateEnabledItem() { DefaultFormSectionView view = mock(DefaultFormSectionView.class); ViewGroup container = mock(ViewGroup.class); doReturn(view).when(adapter).createFormSectionView(container); adapter.instantiateItem(container, 1); verify(view).initialize(formSections.get(1), child); verify(view).setEnabled(true); verify(container).addView(view, 0); } @Test public void testInstantiateDisabledItem() { DefaultFormSectionView view = mock(DefaultFormSectionView.class); ViewGroup container = mock(ViewGroup.class); doReturn(view).when(adapter).createFormSectionView(container); adapter.editable = false; adapter.instantiateItem(container, 1); verify(view).initialize(formSections.get(1), child); verify(view).setEnabled(false); verify(container).addView(view, 0); } @Test public void shouldReturnViewAsKey() { DefaultFormSectionView view = mock(DefaultFormSectionView.class); doReturn(view).when(adapter).createFormSectionView(any(ViewGroup.class)); Object actual = adapter.instantiateItem(mock(ViewGroup.class), 0); assertThat(actual, equalTo((Object) view)); } }