@Test public void givenInitialised_whenCallingOnError_thenCancelsTimeout() { 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(loadTimeout).cancel(); }
@Test public void givenPlayerIsInitialised_whenVideoHasError_thenPlayerResourcesAreReleased_andNotListeners() { player.initialise(); ArgumentCaptor<NoPlayer.ErrorListener> argumentCaptor = ArgumentCaptor.forClass(NoPlayer.ErrorListener.class); verify(listenersHolder).addErrorListener(argumentCaptor.capture()); NoPlayer.ErrorListener errorListener = argumentCaptor.getValue(); errorListener.onError(mock(NoPlayer.PlayerError.class)); verify(listenersHolder).resetState(); verify(loadTimeout).cancel(); verify(heart).stopBeatingHeart(); verify(exoPlayerFacade).release(); verify(listenersHolder, never()).clear(); verify(stateChangedListener, never()).onVideoStopped(); }
@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(); }
@Override public boolean onError(MediaPlayer mp, int what, int extra) { bufferStateListener.onBufferCompleted(); NoPlayer.PlayerError error = ErrorFactory.createErrorFrom(what, extra); errorListener.onError(error); return true; } }
@Override public void onPlayerError(ExoPlaybackException error) { NoPlayer.PlayerError playerError = ExoPlayerErrorMapper.errorFor(error); errorListener.onError(playerError); }
@Override public void onError(NoPlayer.PlayerError error) { for (NoPlayer.ErrorListener listener : listeners) { listener.onError(error); } } }