@Override public void loadVideoWithTimeout(Uri uri, Options options, Timeout timeout, LoadTimeoutCallback loadTimeoutCallback) { loadTimeout.start(timeout, loadTimeoutCallback); loadVideo(uri, options); }
@Override public void loadVideoWithTimeout(Uri uri, Options options, Timeout timeout, LoadTimeoutCallback loadTimeoutCallback) { loadTimeout.start(timeout, loadTimeoutCallback); loadVideo(uri, options); }
@Test public void whenStartingATimeout_thenTheTimeoutRunnableIsPosted() { loadTimeout.start(ANY_TIME, any(NoPlayer.LoadTimeoutCallback.class)); verify(handler).post(any(Runnable.class)); }
@Test public void whenStartingATimeout_thenAnyPreviouslySetTimeoutRunnableAreRemoved() { loadTimeout.start(ANY_TIME, any(NoPlayer.LoadTimeoutCallback.class)); verify(handler).removeCallbacks(any(Runnable.class)); }
@Test public void givenTimeoutIsNotReached_whenStarting_thenTimeoutIsRescheduled() { when(clock.getCurrentTime()).thenReturn(START_TIME, END_TIME); loadTimeout.start(TIMEOUT_NOT_REACHED, loadTimeoutCallback); ArgumentCaptor<Runnable> captor = ArgumentCaptor.forClass(Runnable.class); verify(handler).post(captor.capture()); verify(handler).postDelayed(captor.getValue(), RESCHEDULE_DELAY_MILLIS); } }
@Test public void whenLoadingVideoWithTimeout_thenStartsTimeout() { player.loadVideoWithTimeout(URI, OPTIONS, ANY_TIMEOUT, ANY_LOAD_TIMEOUT_CALLBACK); verify(loadTimeout).start(ANY_TIMEOUT, ANY_LOAD_TIMEOUT_CALLBACK); }
@Test public void givenTimeoutIsReached_whenStarting_thenOnLoadTimeoutIsCalled() { when(clock.getCurrentTime()).thenReturn(START_TIME, END_TIME); loadTimeout.start(TIMEOUT_REACHED, loadTimeoutCallback); verify(loadTimeoutCallback).onLoadTimeout(); }
@Test public void whenLoadingVideoWithTimeout_thenStartsLoadTimeout() { player.attach(playerView); player.loadVideoWithTimeout(uri, OPTIONS, ANY_TIMEOUT, ANY_LOAD_TIMEOUT_CALLBACK); verify(loadTimeout).start(ANY_TIMEOUT, ANY_LOAD_TIMEOUT_CALLBACK); }