@Test(expected = IllegalArgumentException.class) public void testShouldNotSetInfiniteScrollListenerWhenItemsPerRequestAreEqualToZero() { // given int itemsPerRequest = 0; // when createListener(manager, itemsPerRequest); // then throw an exception }
@Test(expected = IllegalArgumentException.class) public void testShouldNotSetInfiniteScrollListenerWhenItemsPerRequestAreLowerThanZero() { // given int itemsPerRequest = -1; // when createListener(manager, itemsPerRequest); // then throw an exception }
@Test(expected = IllegalArgumentException.class) public void testShouldNotSetInfiniteScrollListenerWhenLayoutManagerIsNull() { // given int itemsPerRequest = 1; // when createListener(null, itemsPerRequest); // then throw an exception }
@Test public void testCanLoadMoreItemsShouldBeFalse() { // given int visibleItemsCount = 10; int totalItemsCount = 30; int pastVisibleItemsCount = 15; int itemsPerRequest = 100; InfiniteScrollListener listener = createListener(manager, itemsPerRequest); // when when(manager.getChildCount()).thenReturn(visibleItemsCount); when(manager.getItemCount()).thenReturn(totalItemsCount); when(manager.findFirstVisibleItemPosition()).thenReturn(pastVisibleItemsCount); boolean canLoadMoreItems = listener.canLoadMoreItems(); // then assertThat(canLoadMoreItems).isFalse(); }
@Test public void testCanLoadMoreItemsShouldBeTrue() { // given int visibleItemsCount = 10; int totalItemsCount = 20; int pastVisibleItemsCount = 15; int itemsPerRequest = 10; InfiniteScrollListener listener = createListener(manager, itemsPerRequest); // when when(manager.getChildCount()).thenReturn(visibleItemsCount); when(manager.getItemCount()).thenReturn(totalItemsCount); when(manager.findFirstVisibleItemPosition()).thenReturn(pastVisibleItemsCount); boolean canLoadMoreItems = listener.canLoadMoreItems(); // then assertThat(canLoadMoreItems).isTrue(); }
@Test public void testCanLoadMoreItemsLogicIsCorrect() { // given int visibleItemsCount = 10; int totalItemsCount = 150; int pastVisibleItemsCount = 20; int itemsPerRequest = 100; InfiniteScrollListener listener = createListener(manager, itemsPerRequest); // when when(manager.getChildCount()).thenReturn(visibleItemsCount); when(manager.getItemCount()).thenReturn(totalItemsCount); when(manager.findFirstVisibleItemPosition()).thenReturn(pastVisibleItemsCount); boolean lastItemShown = visibleItemsCount + pastVisibleItemsCount > totalItemsCount; boolean canLoadMoreItemsExpected = lastItemShown && totalItemsCount >= itemsPerRequest; boolean canLoadMoreItems = listener.canLoadMoreItems(); // then assertThat(canLoadMoreItems).isEqualTo(canLoadMoreItemsExpected); }