public async Task StopsCurrentMediaPlayerWhenSwitchingAndPlaying() { var audioPlayer = new AudioPlayer(); var oldMediaPlayer = Substitute.For<IMediaPlayerCallback>(); var newMediaPlayer = Substitute.For<IMediaPlayerCallback>(); audioPlayer.RegisterAudioPlayerCallback(oldMediaPlayer); var song = Helpers.SetupSongMock(); await audioPlayer.LoadAsync(song); await audioPlayer.PlayAsync(); audioPlayer.RegisterAudioPlayerCallback(newMediaPlayer); var song2 = Helpers.SetupSongMock(); await audioPlayer.LoadAsync(song2); await audioPlayer.PlayAsync(); oldMediaPlayer.Received(1).StopAsync(); }
public async Task StopsCurrentPlayback() { var audioPlayer = new AudioPlayer(); var states = audioPlayer.PlaybackState.CreateCollection(); var mediaPlayer = Substitute.For<IMediaPlayerCallback>(); mediaPlayer.Finished.Returns(Observable.Never<Unit>()); audioPlayer.RegisterAudioPlayerCallback(mediaPlayer); await audioPlayer.LoadAsync(Helpers.SetupSongMock()); await audioPlayer.PlayAsync(); await audioPlayer.LoadAsync(Helpers.SetupSongMock()); Assert.Equal(new[] { AudioPlayerState.None, AudioPlayerState.Stopped, AudioPlayerState.Playing, AudioPlayerState.Stopped }, states); }