diff options
Diffstat (limited to 'android/arch/paging/TiledPagedListTest.java')
-rw-r--r-- | android/arch/paging/TiledPagedListTest.java | 124 |
1 files changed, 47 insertions, 77 deletions
diff --git a/android/arch/paging/TiledPagedListTest.java b/android/arch/paging/TiledPagedListTest.java index 22bfd1ff..4ad02e12 100644 --- a/android/arch/paging/TiledPagedListTest.java +++ b/android/arch/paging/TiledPagedListTest.java @@ -78,107 +78,75 @@ public class TiledPagedListTest { } } - private void verifyRange(List<Item> list, Integer... loadedPages) { + private void verifyRange(PageArrayList<Item> list, Integer... loadedPages) { List<Integer> loadedPageList = Arrays.asList(loadedPages); assertEquals(ITEMS.size(), list.size()); for (int i = 0; i < list.size(); i++) { if (loadedPageList.contains(i / PAGE_SIZE)) { - assertSame("Index " + i, ITEMS.get(i), list.get(i)); + assertSame(ITEMS.get(i), list.get(i)); } else { - assertEquals("Index " + i, null, list.get(i)); + assertEquals(null, list.get(i)); } } } - private TiledPagedList<Item> createTiledPagedList(int loadPosition, int initPages) { - return createTiledPagedList(loadPosition, initPages, PAGE_SIZE); + private TiledPagedList<Item> createTiledPagedList(int loadPosition) { + return createTiledPagedList(loadPosition, PAGE_SIZE); } - private TiledPagedList<Item> createTiledPagedList(int loadPosition, int initPages, - int prefetchDistance) { + private TiledPagedList<Item> createTiledPagedList(int loadPosition, int prefetchDistance) { TestTiledSource source = new TestTiledSource(); return new TiledPagedList<>( source, mMainThread, mBackgroundThread, new PagedList.Config.Builder() .setPageSize(PAGE_SIZE) - .setInitialLoadSizeHint(PAGE_SIZE * initPages) .setPrefetchDistance(prefetchDistance) .build(), loadPosition); } @Test - public void computeFirstLoadPosition_zero() { - assertEquals(0, TiledPagedList.computeFirstLoadPosition(0, 30, 10, 100)); - } - - @Test - public void computeFirstLoadPosition_requestedPositionIncluded() { - assertEquals(0, TiledPagedList.computeFirstLoadPosition(10, 10, 10, 100)); - } - - @Test - public void computeFirstLoadPosition_endAdjusted() { - assertEquals(70, TiledPagedList.computeFirstLoadPosition(99, 30, 10, 100)); - } - - @Test - public void initialLoad_onePage() { - TiledPagedList<Item> pagedList = createTiledPagedList(0, 1); - verifyRange(pagedList, 0, 1); - } - - @Test - public void initialLoad_onePageOffset() { - TiledPagedList<Item> pagedList = createTiledPagedList(10, 1); - verifyRange(pagedList, 0, 1); - } - - @Test - public void initialLoad_full() { - TiledPagedList<Item> pagedList = createTiledPagedList(0, 100); - verifyRange(pagedList, 0, 1, 2, 3, 4); + public void initialLoad() { + TiledPagedList<Item> pagedList = createTiledPagedList(0); + verifyRange(pagedList, 0); } @Test public void initialLoad_end() { - TiledPagedList<Item> pagedList = createTiledPagedList(44, 2); + TiledPagedList<Item> pagedList = createTiledPagedList(44); verifyRange(pagedList, 3, 4); } @Test public void initialLoad_multiple() { - TiledPagedList<Item> pagedList = createTiledPagedList(9, 2); + TiledPagedList<Item> pagedList = createTiledPagedList(9); verifyRange(pagedList, 0, 1); } @Test public void initialLoad_offset() { - TiledPagedList<Item> pagedList = createTiledPagedList(41, 2); + TiledPagedList<Item> pagedList = createTiledPagedList(41); verifyRange(pagedList, 3, 4); } @Test public void append() { - TiledPagedList<Item> pagedList = createTiledPagedList(0, 1); + TiledPagedList<Item> pagedList = createTiledPagedList(0); PagedList.Callback callback = mock(PagedList.Callback.class); pagedList.addWeakCallback(null, callback); - verifyRange(pagedList, 0, 1); + verifyRange(pagedList, 0); verifyZeroInteractions(callback); - pagedList.loadAround(15); - - verifyRange(pagedList, 0, 1); - + pagedList.loadAround(5); drain(); - verifyRange(pagedList, 0, 1, 2); - verify(callback).onChanged(20, 10); + verifyRange(pagedList, 0, 1); + verify(callback).onChanged(10, 10); verifyNoMoreInteractions(callback); } @Test public void prepend() { - TiledPagedList<Item> pagedList = createTiledPagedList(44, 2); + TiledPagedList<Item> pagedList = createTiledPagedList(44); PagedList.Callback callback = mock(PagedList.Callback.class); pagedList.addWeakCallback(null, callback); verifyRange(pagedList, 3, 4); @@ -194,16 +162,16 @@ public class TiledPagedListTest { @Test public void loadWithGap() { - TiledPagedList<Item> pagedList = createTiledPagedList(0, 1); + TiledPagedList<Item> pagedList = createTiledPagedList(0); PagedList.Callback callback = mock(PagedList.Callback.class); pagedList.addWeakCallback(null, callback); - verifyRange(pagedList, 0, 1); + verifyRange(pagedList, 0); verifyZeroInteractions(callback); pagedList.loadAround(44); drain(); - verifyRange(pagedList, 0, 1, 3, 4); + verifyRange(pagedList, 0, 3, 4); verify(callback).onChanged(30, 10); verify(callback).onChanged(40, 5); verifyNoMoreInteractions(callback); @@ -211,56 +179,58 @@ public class TiledPagedListTest { @Test public void tinyPrefetchTest() { - TiledPagedList<Item> pagedList = createTiledPagedList(0, 1, 1); + TiledPagedList<Item> pagedList = createTiledPagedList(0, 1); PagedList.Callback callback = mock(PagedList.Callback.class); pagedList.addWeakCallback(null, callback); - verifyRange(pagedList, 0, 1); + verifyRange(pagedList, 0); // just 4 loaded verifyZeroInteractions(callback); - pagedList.loadAround(33); + pagedList.loadAround(23); drain(); - verifyRange(pagedList, 0, 1, 3); - verify(callback).onChanged(30, 10); + verifyRange(pagedList, 0, 2); + verify(callback).onChanged(20, 10); verifyNoMoreInteractions(callback); pagedList.loadAround(44); drain(); - verifyRange(pagedList, 0, 1, 3, 4); + verifyRange(pagedList, 0, 2, 4); verify(callback).onChanged(40, 5); verifyNoMoreInteractions(callback); } @Test public void appendCallbackAddedLate() { - TiledPagedList<Item> pagedList = createTiledPagedList(0, 1, 0); - verifyRange(pagedList, 0, 1); + TiledPagedList<Item> pagedList = createTiledPagedList(0, 0); + verifyRange(pagedList, 0); - pagedList.loadAround(25); + pagedList.loadAround(15); drain(); - verifyRange(pagedList, 0, 1, 2); + verifyRange(pagedList, 0, 1); + + // snapshot at 20 items + PageArrayList<Item> snapshot = (PageArrayList<Item>) pagedList.snapshot(); + verifyRange(snapshot, 0, 1); - // snapshot at 30 items - List<Item> snapshot = pagedList.snapshot(); - verifyRange(snapshot, 0, 1, 2); + pagedList.loadAround(25); pagedList.loadAround(35); - pagedList.loadAround(44); drain(); - verifyRange(pagedList, 0, 1, 2, 3, 4); - verifyRange(snapshot, 0, 1, 2); + verifyRange(pagedList, 0, 1, 2, 3); + verifyRange(snapshot, 0, 1); PagedList.Callback callback = mock( PagedList.Callback.class); pagedList.addWeakCallback(snapshot, callback); - verify(callback).onChanged(30, 20); + verify(callback).onChanged(20, 20); verifyNoMoreInteractions(callback); } + @Test public void prependCallbackAddedLate() { - TiledPagedList<Item> pagedList = createTiledPagedList(44, 2, 0); + TiledPagedList<Item> pagedList = createTiledPagedList(44, 0); verifyRange(pagedList, 3, 4); pagedList.loadAround(25); @@ -268,9 +238,10 @@ public class TiledPagedListTest { verifyRange(pagedList, 2, 3, 4); // snapshot at 30 items - List<Item> snapshot = pagedList.snapshot(); + PageArrayList<Item> snapshot = (PageArrayList<Item>) pagedList.snapshot(); verifyRange(snapshot, 2, 3, 4); + pagedList.loadAround(15); pagedList.loadAround(5); drain(); @@ -301,11 +272,10 @@ public class TiledPagedListTest { assertTrue(pagedList.isContiguous()); - ContiguousPagedList<Integer, Item> contiguousPagedList = - (ContiguousPagedList<Integer, Item>) pagedList; - assertEquals(0, contiguousPagedList.mStorage.getLeadingNullCount()); - assertEquals(PAGE_SIZE, contiguousPagedList.mStorage.getStorageCount()); - assertEquals(0, contiguousPagedList.mStorage.getTrailingNullCount()); + ContiguousPagedList<Item> contiguousPagedList = (ContiguousPagedList<Item>) pagedList; + assertEquals(0, contiguousPagedList.getLeadingNullCount()); + assertEquals(PAGE_SIZE, contiguousPagedList.mList.size()); + assertEquals(0, contiguousPagedList.getTrailingNullCount()); } private void drain() { |