private void reset() { delayedActionExecutor.clearAllActions(); listenersHolder.resetState(); loadTimeout.cancel(); heart.stopBeatingHeart(); mediaPlayer.release(); destroySurfaceByHidingVideoContainer(); }
@Test public void givenInitialised_whenCallingOnError_thenPlayerResourcesAreReleased_andNotListeners() { player.initialise(); ArgumentCaptor<NoPlayer.ErrorListener> errorListenerCaptor = ArgumentCaptor.forClass(NoPlayer.ErrorListener.class); verify(listenersHolder).addErrorListener(errorListenerCaptor.capture()); NoPlayer.ErrorListener errorListener = errorListenerCaptor.getValue(); errorListener.onError(mock(NoPlayer.PlayerError.class)); verify(delayedActionExecutor).clearAllActions(); verify(listenersHolder).resetState(); verify(loadTimeout).cancel(); verify(heart).stopBeatingHeart(); verify(mediaPlayer).release(); verify(listenersHolder, never()).clear(); verify(stateChangedListener, never()).onVideoStopped(); }
@Test public void whenStopping_thenPlayerResourcesAreReleased_andNotListeners() { player.stop(); verify(delayedActionExecutor).clearAllActions(); verify(listenersHolder).resetState(); verify(stateChangedListener).onVideoStopped(); verify(loadTimeout).cancel(); verify(heart).stopBeatingHeart(); verify(mediaPlayer).release(); verify(listenersHolder, never()).clear(); }
@Test public void givenAttachedPlayerView_whenStopping_thenPlayerResourcesAreReleased_andNotListeners() { player.attach(playerView); player.stop(); verify(delayedActionExecutor).clearAllActions(); verify(listenersHolder).resetState(); verify(stateChangedListener).onVideoStopped(); verify(loadTimeout).cancel(); verify(heart).stopBeatingHeart(); verify(mediaPlayer).release(); verify(containerView).setVisibility(View.GONE); verify(listenersHolder, never()).clear(); }
@Test public void whenReleasing_thenPlayerResourcesAreReleased() { player.release(); verify(delayedActionExecutor).clearAllActions(); verify(listenersHolder).resetState(); verify(stateChangedListener).onVideoStopped(); verify(loadTimeout).cancel(); verify(heart).stopBeatingHeart(); verify(mediaPlayer).release(); verify(listenersHolder).clear(); }
@Test public void givenAttachedPlayerView_whenReleasing_thenPlayerResourcesAreReleased() { player.attach(playerView); player.release(); verify(delayedActionExecutor).clearAllActions(); verify(listenersHolder).resetState(); verify(stateChangedListener).onVideoStopped(); verify(loadTimeout).cancel(); verify(heart).stopBeatingHeart(); verify(mediaPlayer).release(); verify(containerView).setVisibility(View.GONE); verify(listenersHolder).clear(); } }
@Test public void givenMultipleQueuedActions_whenClearingActions_thenRemovesAllActions() { delayedActionExecutor = new DelayedActionExecutor(nonExecutingHandler, runnables); delayedActionExecutor.performAfterDelay(action, ANY_DELAY_IN_MILLIS); delayedActionExecutor.performAfterDelay(secondaryAction, ANY_DELAY_IN_MILLIS); delayedActionExecutor.clearAllActions(); assertThat(runnables).isEmpty(); verify(nonExecutingHandler, times(2)).removeCallbacks(any(Runnable.class)); }