@Test
 public void shouldStopAndDestroyScheduledFutureWhenStopIsCalled() throws Exception {
   setupAudioPlayerManager();
   decoratedMediaManager.play(FILENAME, progressBar, IS_NOT_ASSET);
   decoratedMediaManager.stop();
   verify(decoratedMediaManager.getScheduledFuture()).cancel(true);
 }
 @Test
 public void shouldResetProgressBarWhenStopIsCalled() throws Exception {
   setupAudioPlayerManager();
   decoratedMediaManager.play(FILENAME, progressBar, IS_NOT_ASSET);
   decoratedMediaManager.stop();
   verify(progressBar).setProgress(eq(RESET_PROGRESS_BAR));
 }
 @Test
 public void shouldStopAudioWhenStopIsCalled()
     throws AudioFileException, AudioFileNotSetException {
   setupAudioPlayerManager();
   decoratedMediaManager.play(FILENAME, progressBar, IS_NOT_ASSET);
   decoratedMediaManager.stop();
   verify(getAudioPlayerManager()).stop();
 }
 @Test
 public void shouldCreatedScheduledFutureWhenPlayIsCalled() throws Exception {
   setupAudioPlayerManager();
   decoratedMediaManager.play(FILENAME, progressBar, IS_NOT_ASSET);
   verify(getScheduledExecutorService())
       .scheduleAtFixedRate(
           any(Runnable.class), eq(INITIAL_DELAY), eq(PERIOD), eq(TimeUnit.MILLISECONDS));
 }
 @Test
 public void shouldSetMaxDurationOfProgressBarWhenPlayIsCalled() throws Exception {
   setupAudioPlayerManager();
   decoratedMediaManager.play(FILENAME, progressBar, IS_NOT_ASSET);
   verify(progressBar).setMax(DEFAULT_MAX);
 }
 @Test
 public void shouldPlayAudioWhenPlayIsCalled() throws Exception {
   setupAudioPlayerManager();
   decoratedMediaManager.play(FILENAME, progressBar, IS_NOT_ASSET);
   verify(getAudioPlayerManager()).play(FILENAME, IS_NOT_ASSET);
 }