@Test public void testRefresh_resetsTimelineCursors() { delegate = new TimelineDelegate<>(mockTimeline); delegate.timelineStateHolder.setNextCursor(new TimelineCursor(ANY_POSITION, ANY_POSITION)); delegate.timelineStateHolder.setPreviousCursor(new TimelineCursor(ANY_POSITION, ANY_POSITION)); delegate.refresh(null); assertNull(delegate.timelineStateHolder.positionForNext()); assertNull(delegate.timelineStateHolder.positionForPrevious()); }
@Test public void testPrevious_addsItems() { final Timeline<TestItem> fakeTimeline = new FakeItemTimeline(NUM_ITEMS, ANY_POSITION, ANY_POSITION); delegate = new TimelineDelegate<>(fakeTimeline, mockObservable, null); delegate.refresh(null); // refresh loads latest items (notifyChange) delegate.previous(); // assert items are added and notifyChanges is called again assertEquals(2 * NUM_ITEMS, delegate.getCount()); verify(mockObservable, times(2)).notifyChanged(); }
@Test public void testRefresh_replacesItems() { // refresh replaces initial items final Timeline<TestItem> fakeTimeline = new FakeItemTimeline(NUM_ITEMS, ANY_POSITION, ANY_POSITION); delegate = new TimelineDelegate<>(fakeTimeline, mockObservable, testItems); assertEquals(testItems, delegate.itemList); delegate.refresh(null); // assert that items were replaced and notifyChanged called assertEquals(NUM_ITEMS, delegate.itemList.size()); verify(mockObservable).notifyChanged(); }
@Test public void testGetNonLastItem_doesNotLoadPrevious() { final Timeline<TestItem> fakeTimeline = new FakeItemTimeline(NUM_ITEMS, ANY_POSITION, ANY_POSITION); delegate = new TimelineDelegate<>(fakeTimeline, mockObservable, null); delegate.refresh(null); // refresh loads latest items (notifyChange) verify(mockObservable).notifyChanged(); assertEquals(NUM_ITEMS, delegate.getCount()); delegate.getItem(1); // assert no items added and notifyChanged is not called again assertEquals(NUM_ITEMS, delegate.getCount()); verify(mockObservable, times(1)).notifyChanged(); }
@Test public void testRefresh_callsNextForLatest() { delegate = new TimelineDelegate<>(mockTimeline); delegate.refresh(null); verify(mockTimeline).next(isNull(Long.class), any(TimelineDelegate.NextCallback.class)); }