public async Task MergedAnimeListShouldContainCorrectlyAssignedUsers() { // given var criteria = new GetCharadesCriteria() { Usernames = new[] { "Ervelan", "SonMati" }, Sources = new[] { EntrySource.Anime }, IncludeKnownAdaptations = false }; // when charadesCompositionService.Object.StartComposing(criteria); while (!charadesCompositionService.Object.IsFinished()) { await charadesCompositionService.Object.MakeNextCharadesEntry(); } // then var charades = charadesCompositionService.Object.GetFinishedCharades(); var setoHana = charades.First(c => c.Series.Title == "Seto no Hanayome"); Assert.Contains("SonMati", setoHana.KnownBy); Assert.Contains("Ervelan", setoHana.KnownBy); var gankutsuou = charades.First(c => c.Series.Title == "Gankutsuou"); Assert.Contains("Ervelan", gankutsuou.KnownBy); Assert.DoesNotContain("SonMati", gankutsuou.KnownBy); var blendS = charades.First(c => c.Series.Title == "Blend S"); Assert.Contains("SonMati", blendS.KnownBy); Assert.DoesNotContain("Ervelan", blendS.KnownBy); }
public async Task MergedMangaListShouldContainCorrectlyAssignedUsers() { // given var criteria = new GetCharadesCriteria() { Usernames = new[] { "Ervelan", "Progeusz" }, Sources = new[] { EntrySource.Manga }, IncludeKnownAdaptations = false }; // when charadesCompositionService.Object.StartComposing(criteria); while (!charadesCompositionService.Object.IsFinished()) { await charadesCompositionService.Object.MakeNextCharadesEntry(); } // then var charades = charadesCompositionService.Object.GetFinishedCharades(); var berserk = charades.First(c => c.Series.Title == "Berserk"); Assert.Contains("Progeusz", berserk.KnownBy); Assert.Contains("Ervelan", berserk.KnownBy); var jojo = charades.First(c => c.Series.Title == "JoJo no Kimyou na Bouken"); Assert.Contains("Ervelan", jojo.KnownBy); Assert.DoesNotContain("Progeusz", jojo.KnownBy); var deathPanda = charades.First(c => c.Series.Title == "The Death Panda"); Assert.Contains("Progeusz", deathPanda.KnownBy); Assert.DoesNotContain("Ervelan", deathPanda.KnownBy); }
public async Task <ICollection <CharadesEntry> > GetCharades(GetCharadesCriteria criteria) { StartComposing(criteria); while (IsFinished()) { await MakeNextCharadesEntry(); } return(charades); }
public void StartComposing(GetCharadesCriteria criteria) { Reset(); usernames = criteria.Usernames; sources.EnqueueRange(criteria.Sources); var allSources = Enum.GetValues(typeof(EntrySource)).Cast <EntrySource>(); var isAllDone = criteria.Sources.Count == allSources.Count(); if (isAllDone) { adaptationStrategy = AdaptationIncluding.All; } else if (criteria.IncludeKnownAdaptations && sources.Count != 0) { adaptationStrategy = AdaptationIncluding.OnlyFromEntries; var otherSources = allSources.Except(criteria.Sources); this.otherSources.EnqueueRange(otherSources); } }
public async Task AnimeAndMangaShouldntCreateSeparateEntries() { // given var criteria = new GetCharadesCriteria() { Usernames = new[] { "Ervelan", "SonMati" }, Sources = new[] { EntrySource.Anime, EntrySource.Manga }, IncludeKnownAdaptations = false }; // when charadesCompositionService.Object.StartComposing(criteria); while (!charadesCompositionService.Object.IsFinished()) { await charadesCompositionService.Object.MakeNextCharadesEntry(); } // then var charades = charadesCompositionService.Object.GetFinishedCharades(); Assert.True(charades.Where(c => c.Series.Title == "Yakusoku no Neverland").Count() == 1); }
public async Task KnownAdaptationsShouldBeIncludedIfNeeded() { // given var criteria = new GetCharadesCriteria() { Usernames = new[] { "Ervelan", "SonMati" }, Sources = new[] { EntrySource.Anime }, IncludeKnownAdaptations = true }; // when charadesCompositionService.Object.StartComposing(criteria); while (!charadesCompositionService.Object.IsFinished()) { await charadesCompositionService.Object.MakeNextCharadesEntry(); } // then var charades = charadesCompositionService.Object.GetFinishedCharades(); var hokutoNoKen = charades.First(c => c.Series.Title == "Hokuto no Ken"); Assert.Contains("SonMati", hokutoNoKen.KnownBy); Assert.Contains("Ervelan", hokutoNoKen.KnownBy); }