public void SetUp() { _album = new Album(new LocalizedString("Synthesis", ContentLanguageSelection.English)); _producer = new Artist(TranslatedString.Create("Tripshots")) { Id = 1, ArtistType = ArtistType.Producer }; _vocalist = new Artist(TranslatedString.Create("Hatsune Miku")) { Id = 39, ArtistType = ArtistType.Vocaloid }; _producerContract = new ArtistContract(_producer, ContentLanguagePreference.Default); _vocalistContract = new ArtistContract(_vocalist, ContentLanguagePreference.Default); _song1 = new Song(new LocalizedString("Nebula", ContentLanguageSelection.English)) { Id = 2 }; _song1.AddArtist(_producer); _album.AddArtist(_producer); _album.AddArtist(_vocalist); var songInAlbum = new SongInAlbum(_song1, _album, 1, 1); _songInAlbumContract = new SongInAlbumEditContract(songInAlbum, ContentLanguagePreference.Default); _songInAlbumContract.Artists = new[] { _producerContract }; }
public PartialViewResult AddExistingSong(int albumId, int songId) { var songContract = Services.Songs.GetSongWithAdditionalNames(songId); var link = new SongInAlbumEditContract(songContract); return(PartialView("SongInAlbumEditRow", link)); }
public static bool TrackArtistsEqual(Song first, SongInAlbumEditContract second) { if (first == null || second.IsCustomTrack) { return(true); // Cannot edit artists for custom tracks. } return(first.ArtistList.All(a => second.Artists.Any(a2 => a.Id == a2.Id)) && second.Artists.All(a => first.ArtistList.Any(a2 => a.Id == a2.Id))); }
private Task <Song> GetSong(SongInAlbumEditContract contract) { if (contract.SongId == _song1.Id) { return(Task.FromResult(_song1)); } return(Task.FromResult(new Song(new LocalizedString(contract.SongName, ContentLanguageSelection.Unspecified)))); }
private Song GetSong(SongInAlbumEditContract contract) { if (contract.SongId == song1.Id) { return(song1); } return(new Song(new LocalizedString(contract.SongName, ContentLanguageSelection.Unspecified))); }
public ActionResult AddNewSong(int albumId, string newSongName) { if (string.IsNullOrWhiteSpace(newSongName)) { log.Warn("Song name for album was null or whitespace"); return(HttpStatusCodeResult(HttpStatusCode.BadRequest, "Song name cannot be null or whitespace")); } var link = new SongInAlbumEditContract(newSongName.Trim()); return(PartialView("SongInAlbumEditRow", link)); }
public async Task SyncSongs_Removed() { _album.AddSong(_song1, 1, 1); var newSongs = new SongInAlbumEditContract[0]; var result = await SyncSongs(newSongs); result.Should().NotBeNull("result is not null"); result.Changed.Should().BeTrue("is changed"); result.Added.Length.Should().Be(0, "none added"); result.Edited.Length.Should().Be(0, "none edited"); result.Removed.Length.Should().Be(1, "1 removed"); result.Unchanged.Length.Should().Be(0, "none unchanged"); AssertEquals(result.Removed.First(), _songInAlbumContract, "removed song matches contract"); }
public void SyncSongs_Removed() { album.AddSong(song1, 1, 1); var newSongs = new SongInAlbumEditContract[0]; var result = SyncSongs(newSongs); Assert.IsNotNull(result, "result is not null"); Assert.IsTrue(result.Changed, "is changed"); Assert.AreEqual(0, result.Added.Length, "none added"); Assert.AreEqual(0, result.Edited.Length, "none edited"); Assert.AreEqual(1, result.Removed.Length, "1 removed"); Assert.AreEqual(0, result.Unchanged.Length, "none unchanged"); AssertEquals(result.Removed.First(), songInAlbumContract, "removed song matches contract"); }
public static bool TrackPropertiesEqual(SongInAlbum first, SongInAlbumEditContract second) { return(first.DiscNumber == second.DiscNumber && first.TrackNumber == second.TrackNumber); }
private void AssertEquals(SongInAlbum first, SongInAlbumEditContract second, string message) { Album.TrackPropertiesEqual(first, second).Should().BeTrue(message); Album.TrackArtistsEqual(first.Song, second).Should().BeTrue(message); }
private void AssertEquals(SongInAlbum first, SongInAlbumEditContract second, string message) { Assert.IsTrue(Album.TrackPropertiesEqual(first, second), message); Assert.IsTrue(Album.TrackArtistsEqual(first.Song, second), message); }