@Test
 public void testLoadPrevious() {
   delegate = new TimelineDelegate<>(mockTimeline);
   final Callback<TimelineResult<TestItem>> testCb =
       delegate.new PreviousCallback(delegate.timelineStateHolder);
   delegate.loadPrevious(TEST_MAX_POSITION, testCb);
   verify(mockTimeline).previous(TEST_MAX_POSITION, testCb);
 }
 @Test
 public void testLoadPrevious_respectsRequestInFlight() {
   delegate = new TimelineDelegate<>(mockTimeline);
   delegate.timelineStateHolder.startTimelineRequest();
   final Callback<TimelineResult<TestItem>> mockCallback = mock(Callback.class);
   delegate.loadPrevious(ANY_POSITION, mockCallback);
   final ArgumentCaptor<TwitterException> exceptionCaptor =
       ArgumentCaptor.forClass(TwitterException.class);
   verifyZeroInteractions(mockTimeline);
   verify(mockCallback).failure(exceptionCaptor.capture());
   assertEquals(exceptionCaptor.getValue().getMessage(), REQUIRED_REQUEST_IN_FLIGHT_ERROR);
 }
 @Test
 public void testLoadPrevious_respectsMaxCapacity() {
   delegate = new TimelineDelegate<>(mockTimeline);
   TestItem.populateList(delegate.itemList, TimelineDelegate.CAPACITY);
   final Callback<TimelineResult<TestItem>> mockCallback = mock(Callback.class);
   delegate.loadPrevious(ANY_POSITION, mockCallback);
   final ArgumentCaptor<TwitterException> exceptionCaptor =
       ArgumentCaptor.forClass(TwitterException.class);
   verifyZeroInteractions(mockTimeline);
   verify(mockCallback).failure(exceptionCaptor.capture());
   assertEquals(exceptionCaptor.getValue().getMessage(), REQUIRED_MAX_CAPACITY_ERROR);
 }