Example #1
0
        private async void OnPlaySongList(PlaySongsListEventArgs e, CancellationToken cancellationToken)
        {
            StopPlaying();

            await playlist.SetPlaylistSongs(e.Songs, cancellationToken);

            await StartPlaying(cancellationToken);
        }
        private void OnPlaySongsList(PlaySongsListEventArgs e)
        {
            var disc = e.Disc;

            if (disc != null)
            {
                SwitchToDisc(disc);
            }
        }
        public void PlayDisc_SendsPlaySongsListEventForActiveDiscSongs()
        {
            // Arrange

            var disc = new DiscModel {
                Id = new ItemId("Some Disc")
            };
            var discFolder = new FolderModel {
                Id = new ItemId("Some Folder")
            };

            discFolder.AddDiscs(disc);

            var activeSong1 = new SongModel {
                Id = new ItemId("Active Song 1")
            };
            var activeSong2 = new SongModel {
                Id = new ItemId("Active Song 2")
            };
            var deletedSong = new SongModel {
                Id = new ItemId("Deleted Songs"), DeleteDate = new DateTime(2021, 07, 25)
            };

            disc.AddSongs(activeSong1, deletedSong, activeSong2);

            var mocker = new AutoMocker();
            var target = mocker.CreateInstance <LibraryExplorerViewModel>();

            PlaySongsListEventArgs playSongsListEvent = null;

            Messenger.Default.Register <PlaySongsListEventArgs>(this, e => e.RegisterEvent(ref playSongsListEvent));

            // Act

            target.PlayDisc(disc);

            // Assert

            var expectedSongs = new[]
            {
                activeSong1,
                activeSong2,
            };

            playSongsListEvent.Should().NotBeNull();
            playSongsListEvent.Songs.Should().BeEquivalentTo(expectedSongs, x => x.WithStrictOrdering());
        }