AudioPlayerViewModel extends ViewModel implements MediaPlayer.OnCompletionListener { @Override protected void onCleared() { background(); } AudioPlayerViewModel(MediaPlayerFactory mediaPlayerFactory, Scheduler scheduler); void play(Clip clip); void playInOrder(List<Clip> clips); void stop(); void pause(); LiveData<Boolean> isPlaying(@NonNull String clipID); LiveData<Integer> getPosition(String clipID); void setPosition(String clipID, Integer newPosition); void background(); @Override void onCompletion(MediaPlayer mediaPlayer); LiveData<Exception> getError(); void dismissError();  }
@Test public void onCleared_releasesMediaPlayer() { viewModel.onCleared(); verify(mediaPlayer).release(); }
@Test public void onCleared_cancelsScheduler() { viewModel.onCleared(); assertThat(fakeScheduler.isCancelled(), equalTo(true)); }