Example #1
0
        public void GetRelatedSongs()
        {
            var matchingArtist = Save(CreateEntry.Song());

            Save(matchingArtist.AddArtist(song.Artists.First().Artist));

            Save(song.AddTag(tag).Result);
            var matchingTag = Save(CreateEntry.Song());

            Save(matchingTag.AddTag(tag));

            Save(user.AddSongToFavorites(song, SongVoteRating.Like));
            var matchingLike = Save(CreateEntry.Song());

            Save(user.AddSongToFavorites(matchingLike, SongVoteRating.Like));

            // Unrelated song
            Save(CreateEntry.Song());

            var result = queries.GetRelatedSongs(song.Id, SongOptionalFields.AdditionalNames);

            Assert.IsNotNull(result, "result");
            Assert.AreEqual(1, result.ArtistMatches.Length, "Number of artist matches");
            Assert.AreEqual(matchingArtist.Id, result.ArtistMatches.First().Id, "Matching artist");
            Assert.AreEqual(1, result.TagMatches.Length, "Number of tag matches");
            Assert.AreEqual(matchingTag.Id, result.TagMatches.First().Id, "Matching tag");
            Assert.AreEqual(1, result.LikeMatches.Length, "Number of like matches");
            Assert.AreEqual(matchingLike.Id, result.LikeMatches.First().Id, "Matching like");
        }
Example #2
0
        public void GetRelatedSongs()
        {
            var matchingArtist = Save(CreateEntry.Song());

            Save(matchingArtist.AddArtist(_song.Artists.First().Artist));

            Save(_song.AddTag(_tag).Result);
            var matchingTag = Save(CreateEntry.Song());

            Save(matchingTag.AddTag(_tag).Result);

            Save(_user.AddSongToFavorites(_song, SongVoteRating.Like));
            var matchingLike = Save(CreateEntry.Song());

            Save(_user.AddSongToFavorites(matchingLike, SongVoteRating.Like));

            // Unrelated song
            Save(CreateEntry.Song());

            var result = _queries.GetRelatedSongs(_song.Id, SongOptionalFields.AdditionalNames);

            result.Should().NotBeNull("result");
            result.ArtistMatches.Length.Should().Be(1, "Number of artist matches");
            result.ArtistMatches.First().Id.Should().Be(matchingArtist.Id, "Matching artist");
            result.TagMatches.Length.Should().Be(1, "Number of tag matches");
            result.TagMatches.First().Id.Should().Be(matchingTag.Id, "Matching tag");
            result.LikeMatches.Length.Should().Be(1, "Number of like matches");
            result.LikeMatches.First().Id.Should().Be(matchingLike.Id, "Matching like");
        }
Example #3
0
        public void AddTag_NewTag()
        {
            var tag    = CreateEntry.Tag("rock");
            var result = song.AddTag(tag);

            Assert.IsNotNull(result, "result");
            Assert.IsTrue(result.IsNew, "Is new");
            Assert.AreEqual(tag, result.Result.Tag, "Added tag");
            Assert.AreEqual(1, song.Tags.Usages.Count, "Number of tag usages for song");
            Assert.AreEqual(1, tag.UsageCount, "Number of usages for tag");
        }
Example #4
0
        public void RemoveTagUsage()
        {
            var tag   = repository.Save(CreateEntry.Tag("rock"));
            var tag2  = repository.Save(CreateEntry.Tag("metal"));
            var usage = repository.Save(entry.AddTag(tag).Result);

            repository.Save(entry.AddTag(tag2).Result);

            queries.RemoveTagUsage <SongTagUsage, Song>(usage.Id, repository.OfType <Song>());

            Assert.AreEqual(1, entry.Tags.Usages.Count, "Number of tag usages for entry");
            Assert.AreEqual(0, tag.UsageCount, "Number of usages for tag");
            Assert.IsFalse(entry.Tags.HasTag(tag), "Tag was removed from entry");
        }