diff options
Diffstat (limited to 'library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java')
-rw-r--r-- | library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java | 128 |
1 files changed, 58 insertions, 70 deletions
diff --git a/library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java b/library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java index ec3622d..9b99a68 100644 --- a/library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java +++ b/library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java @@ -16,105 +16,93 @@ package com.android.setupwizardlib.template; -import static org.mockito.Matchers.anyInt; -import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.spy; +import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.verify; import static org.robolectric.RuntimeEnvironment.application; import android.content.Context; import android.view.View; import android.view.ViewGroup; -import android.widget.AbsListView.OnScrollListener; import android.widget.BaseAdapter; import android.widget.ListView; - -import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.Shadows; import org.robolectric.annotation.Config; -@Config(sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK }) -@RunWith(SuwLibRobolectricTestRunner.class) +@Config(sdk = {Config.OLDEST_SDK, Config.NEWEST_SDK}) +@RunWith(RobolectricTestRunner.class) public class ListViewScrollHandlingDelegateTest { - @Mock - private RequireScrollMixin mRequireScrollMixin; + @Mock private RequireScrollMixin requireScrollMixin; - private ListView mListView; - private ListViewScrollHandlingDelegate mDelegate; - private ArgumentCaptor<OnScrollListener> mListenerCaptor; + private ListView listView; + private ListViewScrollHandlingDelegate delegate; - @Before - public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); - mListView = spy(new TestListView(application)); - mDelegate = new ListViewScrollHandlingDelegate(mRequireScrollMixin, mListView); + listView = new TestListView(application); + delegate = new ListViewScrollHandlingDelegate(requireScrollMixin, listView); - mListenerCaptor = ArgumentCaptor.forClass(OnScrollListener.class); - doNothing().when(mListView).setOnScrollListener(mListenerCaptor.capture()); + listView.layout(0, 0, 50, 50); + } - mListView.layout(0, 0, 50, 50); - } + @Test + public void testRequireScroll() throws Throwable { + delegate.startListening(); - @Test - public void testRequireScroll() throws Throwable { - mDelegate.startListening(); + verify(requireScrollMixin).notifyScrollabilityChange(true); + } - verify(mRequireScrollMixin).notifyScrollabilityChange(true); - } + @Test + public void testScrolledToBottom() throws Throwable { + delegate.startListening(); - @Test - public void testScrolledToBottom() throws Throwable { - mDelegate.startListening(); + verify(requireScrollMixin).notifyScrollabilityChange(true); - verify(mRequireScrollMixin).notifyScrollabilityChange(true); + Shadows.shadowOf(listView).getOnScrollListener().onScroll(listView, 2, 20, 20); - doReturn(20).when(mListView).getLastVisiblePosition(); - mListenerCaptor.getValue().onScroll(mListView, 2, 20, 20); + verify(requireScrollMixin).notifyScrollabilityChange(false); + } - verify(mRequireScrollMixin).notifyScrollabilityChange(false); - } + @Test + public void testPageScrollDown() throws Throwable { + delegate.pageScrollDown(); + assertThat(Shadows.shadowOf(listView).getLastSmoothScrollByDistance()).isEqualTo(50); + } - @Test - public void testPageScrollDown() throws Throwable { - mDelegate.pageScrollDown(); - verify(mListView).smoothScrollBy(eq(50), anyInt()); - } + private static class TestListView extends ListView { + + TestListView(Context context) { + super(context); + setAdapter( + new BaseAdapter() { + @Override + public int getCount() { + return 20; + } + + @Override + public Object getItem(int position) { + return null; + } + + @Override + public long getItemId(int position) { + return position; + } - private static class TestListView extends ListView { - - TestListView(Context context) { - super(context); - setAdapter(new BaseAdapter() { - @Override - public int getCount() { - return 20; - } - - @Override - public Object getItem(int position) { - return null; - } - - @Override - public long getItemId(int position) { - return position; - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - return new View(parent.getContext()); - } - }); - } + @Override + public View getView(int position, View convertView, ViewGroup parent) { + return new View(parent.getContext()); + } + }); } + } } |