Ejemplo n.º 1
0
        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 };
        }
Ejemplo n.º 2
0
        public PartialViewResult AddExistingSong(int albumId, int songId)
        {
            var songContract = Services.Songs.GetSongWithAdditionalNames(songId);
            var link         = new SongInAlbumEditContract(songContract);

            return(PartialView("SongInAlbumEditRow", link));
        }
Ejemplo n.º 3
0
 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)));
 }
Ejemplo n.º 4
0
        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))));
        }
Ejemplo n.º 5
0
        private Song GetSong(SongInAlbumEditContract contract)
        {
            if (contract.SongId == song1.Id)
            {
                return(song1);
            }

            return(new Song(new LocalizedString(contract.SongName, ContentLanguageSelection.Unspecified)));
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        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");
        }
Ejemplo n.º 8
0
        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");
        }
Ejemplo n.º 9
0
 public static bool TrackPropertiesEqual(SongInAlbum first, SongInAlbumEditContract second)
 {
     return(first.DiscNumber == second.DiscNumber && first.TrackNumber == second.TrackNumber);
 }
Ejemplo n.º 10
0
 private void AssertEquals(SongInAlbum first, SongInAlbumEditContract second, string message)
 {
     Album.TrackPropertiesEqual(first, second).Should().BeTrue(message);
     Album.TrackArtistsEqual(first.Song, second).Should().BeTrue(message);
 }
Ejemplo n.º 11
0
 private void AssertEquals(SongInAlbum first, SongInAlbumEditContract second, string message)
 {
     Assert.IsTrue(Album.TrackPropertiesEqual(first, second), message);
     Assert.IsTrue(Album.TrackArtistsEqual(first.Song, second), message);
 }