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"); }
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"); }
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"); }
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"); }