public void ThrowsAccessExceptionWithGuestTokenAndMultipleSongs() { var songs = new[] { Substitute.For<Song>("TestPath", TimeSpan.Zero), Substitute.For<Song>("TestPath", TimeSpan.Zero) }; using (Library library = new LibraryBuilder().WithPlaylist().Build()) { Guid token = library.LocalAccessControl.RegisterLocalAccessToken(); library.LocalAccessControl.SetLocalPassword(token, "Password"); library.LocalAccessControl.DowngradeLocalAccess(token); Assert.Throws<AccessException>(() => library.AddSongsToPlaylist(songs, token)); } }
public async Task UpdateRemovesMissingSongsFromPlaylists() { var existingSong = new LocalSong("C://Existing.mp3", TimeSpan.Zero); var missingSong = new LocalSong("C://Missing.mp3", TimeSpan.Zero); var songs = new[] { existingSong, missingSong }; var playlist1 = new Playlist("Playlist 1"); playlist1.AddSongs(songs); var playlist2 = new Playlist("Playlist 2"); playlist2.AddSongs(songs); var libraryReader = Substitute.For<ILibraryReader>(); libraryReader.LibraryExists.Returns(true); libraryReader.ReadSongSourcePath().Returns("C://"); libraryReader.ReadPlaylists().Returns(new[] { playlist1, playlist2 }); libraryReader.ReadSongs().Returns(songs); var fileSystem = new MockFileSystem(new Dictionary<string, MockFileData> { { existingSong.OriginalPath, new MockFileData("DontCare") } }); using (Library library = new LibraryBuilder().WithFileSystem(fileSystem).WithReader(libraryReader).Build()) { await library.AwaitInitializationAndUpdate(); Assert.Equal(1, library.Playlists[0].Count()); Assert.Equal(1, library.Playlists[1].Count()); } }