public void ThrowsAccessExceptionIfAccessModeIsPartyAndLockPlaylistRemovalIsTrue() { var songMock = Substitute.For<Song>("TestPath", TimeSpan.Zero); var settings = new CoreSettings { LockPlaylist = true }; using (Library library = new LibraryBuilder().WithPlaylist().WithSettings(settings).Build()) { Guid token = library.LocalAccessControl.RegisterLocalAccessToken(); library.LocalAccessControl.SetLocalPassword(token, "Password"); library.LocalAccessControl.DowngradeLocalAccess(token); library.AddSongToPlaylist(songMock); Assert.Throws<AccessException>(() => library.RemoveFromPlaylist(new[] { 0 }, token)); } }
public async Task WhileSongIsPlayingStopsCurrentSong() { using (Library library = new LibraryBuilder().WithPlaylist().Build()) { Guid token = library.LocalAccessControl.RegisterLocalAccessToken(); library.AddSongsToPlaylist(Helpers.SetupSongMocks(1), token); var awaiter = library.PlaybackState.FirstAsync(x => x == AudioPlayerState.Finished).PublishLast(); awaiter.Connect(); await library.PlaySongAsync(0, token); library.RemoveFromPlaylist(new[] { 0 }, token); await awaiter.Timeout(TimeSpan.FromSeconds(5)); } }
public void BySongReferenceTest() { using (Library library = new LibraryBuilder().WithPlaylist().Build()) { Guid token = library.LocalAccessControl.RegisterLocalAccessToken(); Song[] songs = Helpers.SetupSongMocks(4); library.AddSongsToPlaylist(songs, token); library.RemoveFromPlaylist(new[] { songs[0], songs[2] }, token); Song[] remaining = library.CurrentPlaylist.Select(entry => entry.Song).ToArray(); Assert.Equal(songs[1], remaining[0]); Assert.Equal(songs[3], remaining[1]); } }