/** * Test method for {@link AbstractMediaRouteController#isPlaying()}. * * <p>Checks that it returns the correct value for all possible playback states. */ @Test @Feature({"MediaRemote"}) public void testIsPlaying() { // Using a spy here to override some methods. AbstractMediaRouteController mediaRouteCtrl = spy(new DummyMediaRouteController()); // Default assertFalse(mediaRouteCtrl.isPlaying()); mediaRouteCtrl.setPlayerStateForMediaItemState(MediaItemStatus.PLAYBACK_STATE_BUFFERING); assertTrue(mediaRouteCtrl.isPlaying()); mediaRouteCtrl.setPlayerStateForMediaItemState(MediaItemStatus.PLAYBACK_STATE_CANCELED); assertFalse(mediaRouteCtrl.isPlaying()); mediaRouteCtrl.setPlayerStateForMediaItemState(MediaItemStatus.PLAYBACK_STATE_ERROR); assertFalse(mediaRouteCtrl.isPlaying()); mediaRouteCtrl.setPlayerStateForMediaItemState(MediaItemStatus.PLAYBACK_STATE_FINISHED); assertFalse(mediaRouteCtrl.isPlaying()); mediaRouteCtrl.setPlayerStateForMediaItemState(MediaItemStatus.PLAYBACK_STATE_INVALIDATED); assertFalse(mediaRouteCtrl.isPlaying()); doReturn(0L).when(mediaRouteCtrl).getPosition(); doReturn(5000L).when(mediaRouteCtrl).getDuration(); mediaRouteCtrl.setPlayerStateForMediaItemState(MediaItemStatus.PLAYBACK_STATE_PAUSED); assertFalse(mediaRouteCtrl.isPlaying()); doReturn(5000L).when(mediaRouteCtrl).getPosition(); doReturn(5000L).when(mediaRouteCtrl).getDuration(); mediaRouteCtrl.setPlayerStateForMediaItemState(MediaItemStatus.PLAYBACK_STATE_PAUSED); assertFalse(mediaRouteCtrl.isPlaying()); mediaRouteCtrl.setPlayerStateForMediaItemState(MediaItemStatus.PLAYBACK_STATE_PENDING); assertFalse(mediaRouteCtrl.isPlaying()); mediaRouteCtrl.setPlayerStateForMediaItemState(MediaItemStatus.PLAYBACK_STATE_PLAYING); assertTrue(mediaRouteCtrl.isPlaying()); }