public async Task SearchAnimeAsync_EmptyQueryWithConfigWithInvalidEnums_ShouldThrowValidationException( AiringStatus?airingStatus, AnimeAgeRating?rating, AnimeType?mangaType, AnimeSearchOrderBy?orderBy, SortDirection?sortDirection, AnimeGenreSearch?genreSearch ) { // Given var searchConfig = new AnimeSearchConfig() { Status = airingStatus.GetValueOrDefault(), Rating = rating.GetValueOrDefault(), Type = mangaType.GetValueOrDefault(), OrderBy = orderBy.GetValueOrDefault(), SortDirection = sortDirection.GetValueOrDefault(), Genres = genreSearch.HasValue ? new[] { genreSearch.Value } : Array.Empty <AnimeGenreSearch>() }; // When var func = _jikan.Awaiting(x => x.SearchAnimeAsync(searchConfig)); // Then await func.Should().ThrowExactlyAsync <JikanValidationException>(); }
public async Task SearchAnime_BlameMechaConfig_ShouldFilterBleachMecha() { var searchConfig = new AnimeSearchConfig(); searchConfig.Genres.Add(GenreSearch.Mecha); AnimeSearchResult returnedAnime = await jikan.SearchAnime("Blame", searchConfig); Assert.Contains("Blame! Movie", returnedAnime.Results.Select(x => x.Title)); }
public async Task SearchAnime_OnePieceAiringQuery_ShouldReturnAiringOnePieceAnime() { AnimeSearchConfig searchConfig = new AnimeSearchConfig() { Status = AiringStatus.Airing }; AnimeSearchResult onePieceAnime = await jikan.SearchAnime("one p", searchConfig); Assert.Equal("One Piece", onePieceAnime.Results.First().Title); }
public async Task SearchAnime_TVConfig_ShouldReturnNotNullSearchAnime(string query) { var searchConfig = new AnimeSearchConfig { Type = AnimeType.TV }; AnimeSearchResult returnedAnime = await jikan.SearchAnime(query, searchConfig); Assert.NotNull(returnedAnime); }
public async Task SearchAnime_DanganronpaTVConfig_ShouldReturnDanganronpaAnime() { var searchConfig = new AnimeSearchConfig { Type = AnimeType.TV }; AnimeSearchResult danganronpaAnime = await jikan.SearchAnime("danganronpa", searchConfig); Assert.Equal(1, danganronpaAnime.ResultLastPage); }
public async Task SearchAnime_OneSortByIdConfig_ShouldSortByIdHachimitsuFirst() { var searchConfig = new AnimeSearchConfig { OrderBy = AnimeSearchSortable.Id, SortDirection = SortDirection.Ascending }; AnimeSearchResult returnedAnime = await jikan.SearchAnime("one", searchConfig); Assert.Equal("Hachimitsu to Clover", returnedAnime.Results.First().Title); }
public async Task SearchAnime_VioletIncorrectProducerConfig_ShouldNotFilter() { var searchConfig = new AnimeSearchConfig { ProducerId = -1 }; AnimeSearchResult returnedAnime = await jikan.SearchAnime("violet", searchConfig); Assert.Contains("Violence Jack: Jigoku Gai-hen", returnedAnime.Results.Select(x => x.Title)); Assert.Contains("Violet Evergarden", returnedAnime.Results.Select(x => x.Title)); }
public async Task SearchAnimeAsync_NonEmptyQuery_ShouldReturnNotNullSearchAnime(string query) { // Given var config = new AnimeSearchConfig { Query = query }; // When var returnedAnime = await _jikan.SearchAnimeAsync(query); // Then returnedAnime.Should().NotBeNull(); }
public async Task SearchAnime_BlameMechaConfig_ShouldFilterBleachMecha() { // Given var searchConfig = new AnimeSearchConfig(); searchConfig.Genres.Add(GenreSearch.Mecha); // When AnimeSearchResult returnedAnime = await _jikan.SearchAnime("Blame", searchConfig); // Then returnedAnime.Results.Select(x => x.Title).Should().Contain("Blame! Movie"); }
public async Task SearchAnimeAsync_InvalidPageSize_ShouldThrowValidationException(int pageSize) { // Given var config = new AnimeSearchConfig { PageSize = pageSize }; // When var func = _jikan.Awaiting(x => x.SearchAnimeAsync(config)); // Then await func.Should().ThrowExactlyAsync <JikanValidationException>(); }
public async Task SearchAnime_FairyTailTVAbove8Config_ShouldFilterFairyTailAnimeScore() { var searchConfig = new AnimeSearchConfig { Type = AnimeType.TV, Score = 8 }; AnimeSearchResult fairyTailAnime = await jikan.SearchAnime("Fairy Tail", searchConfig); Assert.Equal("Fairy Tail (2014)", fairyTailAnime.Results.First().Title); Assert.Equal("Fairy Tail: Final Series", fairyTailAnime.Results.Skip(1).First().Title); }
public async Task SearchAnime_VioletProducerKyotoAnimationConfig_ShouldReturnVEGAsTop3() { var searchConfig = new AnimeSearchConfig { ProducerId = 2 }; AnimeSearchResult returnedAnime = await jikan.SearchAnime("violet", searchConfig); Assert.Contains("Evergarden", returnedAnime.Results.First().Title); Assert.Contains("Evergarden", returnedAnime.Results.Skip(1).First().Title); Assert.Contains("Evergarden", returnedAnime.Results.Skip(2).First().Title); }
public async Task SearchAnime_BleachAfter2017Config_ShouldFilterBleachAfter2017() { System.DateTime configDate = new System.DateTime(2018, 1, 1); var searchConfig = new AnimeSearchConfig { StartDate = configDate }; AnimeSearchResult returnedAnime = await jikan.SearchAnime("Bleach", searchConfig); Assert.Contains("Full Metal Panic! Invisible Victory", returnedAnime.Results.Select(x => x.Title)); Assert.Contains("Beatless", returnedAnime.Results.Select(x => x.Title)); }
public async Task SearchAnime_BlameMechaMovieConfig_ShouldFilterBleachMechaMovie() { var searchConfig = new AnimeSearchConfig { Type = AnimeType.Movie }; searchConfig.Genres.Add(GenreSearch.Mecha); AnimeSearchResult returnedAnime = await jikan.SearchAnime("Blame", searchConfig); Assert.Equal("Blame! Movie", returnedAnime.Results.First().Title); }
public async Task SearchAnime_InvalidQueryWithConfig_ShouldThrowValidationException(string query) { // Given var searchConfig = new AnimeSearchConfig { Type = AnimeType.TV }; // When Func <Task <AnimeSearchResult> > func = _jikan.Awaiting(x => x.SearchAnime(query, searchConfig)); // Then await func.Should().ThrowExactlyAsync <JikanValidationException>(); }
public async Task SearchAnimeAsync_IncorrectProducerConfig_ShouldReturnEmpty() { // Given var searchConfig = new AnimeSearchConfig { ProducerIds = { -1 } }; // When var returnedAnime = await _jikan.SearchAnimeAsync(searchConfig); // Then returnedAnime.Data.Should().BeEmpty(); }
public async Task SearchAnime_TVConfig_ShouldReturnNotNullSearchAnime(string query) { // Given var searchConfig = new AnimeSearchConfig { Type = AnimeType.TV }; // When AnimeSearchResult returnedAnime = await _jikan.SearchAnime(query, searchConfig); // Then returnedAnime.Should().Be(returnedAnime); }
public async Task SearchAnime_DanganronpaTVConfig_ShouldReturnDanganronpaAnime() { // Given var searchConfig = new AnimeSearchConfig { Type = AnimeType.TV }; // When AnimeSearchResult danganronpaAnime = await _jikan.SearchAnime("danganronpa", searchConfig); // Then danganronpaAnime.ResultLastPage.Should().Be(2); }
public async Task SearchAnime_OnePieceAiringQuery_ShouldReturnAiringOnePieceAnime() { // Given AnimeSearchConfig searchConfig = new AnimeSearchConfig() { Status = AiringStatus.Airing }; // When AnimeSearchResult onePieceAnime = await _jikan.SearchAnime("one p", searchConfig); // Then onePieceAnime.Results.First().Title.Should().Be("One Piece"); }
public async Task SearchAnime_OneSortByMembersConfig_ShouldSortByPopularityOPMFirst() { var searchConfig = new AnimeSearchConfig { OrderBy = AnimeSearchSortable.Members, SortDirection = SortDirection.Descending }; AnimeSearchResult returnedAnime = await jikan.SearchAnime("one", searchConfig); Assert.Contains("One Piece", returnedAnime.Results.Select(x => x.Title)); Assert.Contains("One Punch Man", returnedAnime.Results.Select(x => x.Title)); Assert.Equal("One Punch Man", returnedAnime.Results.First().Title); }
public async Task SearchAnime_OneSortByIdConfig_ShouldSortByIdHachimitsuFirst() { // Given var searchConfig = new AnimeSearchConfig { OrderBy = AnimeSearchSortable.Id, SortDirection = SortDirection.Ascending }; // When AnimeSearchResult returnedAnime = await _jikan.SearchAnime("one", searchConfig); // Then returnedAnime.Results.First().Title.Should().Be("Hachimitsu to Clover"); }
public async Task SearchAnimeAsync_BlameSciFiConfig_ShouldFilterBleachSciFi() { // Given var searchConfig = new AnimeSearchConfig { Query = "Blame" }; searchConfig.Genres.Add(AnimeGenreSearch.SciFi); // When var anime = await _jikan.SearchAnimeAsync(searchConfig); // Then anime.Data.Select(x => x.Title).Should().Contain("Blame! Movie"); }
public async Task SearchAnimeAsync_TVConfig_ShouldReturnNotNullSearchAnime(string query) { // Given var config = new AnimeSearchConfig { Query = query, Type = AnimeType.TV }; // When var returnedAnime = await _jikan.SearchAnimeAsync(config); // Then returnedAnime.Should().NotBeNull(); }
public async Task SearchAnime_EmptyQueryActionTvAnimeFirstPage_ShouldFindAfroSamuraiAndAjin() { var searchConfig = new AnimeSearchConfig { Type = AnimeType.TV, Genres = new List <GenreSearch> { GenreSearch.Action } }; AnimeSearchResult returnedAnime = await jikan.SearchAnime(searchConfig, 1); Assert.Contains("Ajin", returnedAnime.Results.Select(x => x.Title)); Assert.Contains("Afro Samurai", returnedAnime.Results.Select(x => x.Title)); }
public async Task SearchAnimeAsync_ProducerKyotoAnimationConfig_ShouldReturnFMPAndLuckyStar() { // Given var searchConfig = new AnimeSearchConfig { ProducerIds = { 2 } }; // When var returnedAnime = await _jikan.SearchAnimeAsync(searchConfig); // Then returnedAnime.Data.Should().Contain(x => x.Title.Contains("Full Metal Panic? Fumoffu")); returnedAnime.Data.Should().Contain(x => x.Title.Contains("Lucky☆Star")); }
public async Task SearchAnimeAsync_DanganronpaTVConfig_ShouldReturnDanganronpaAnime() { // Given var config = new AnimeSearchConfig { Query = "danganronpa", Type = AnimeType.TV }; // When var anime = await _jikan.SearchAnimeAsync(config); // Then anime.Pagination.LastVisiblePage.Should().Be(1); }
public async Task SearchAnime_OneQueryActionCompletedAnimeSecondPage_ShouldReturnNotEmptyCollection() { var searchConfig = new AnimeSearchConfig { Status = AiringStatus.Completed, Genres = new List <GenreSearch> { GenreSearch.Action } }; AnimeSearchResult returnedAnime = await jikan.SearchAnime("one", 2, searchConfig); Assert.NotNull(returnedAnime); Assert.NotEmpty(returnedAnime.Results); }
public async Task SearchAnime_EmptyQueryActionTvAnimeSecondPage_ShouldFindAzurLaneAndBaccano() { var searchConfig = new AnimeSearchConfig { Type = AnimeType.TV, Genres = new List <GenreSearch> { GenreSearch.Action } }; AnimeSearchResult returnedAnime = await jikan.SearchAnime(searchConfig, 2); Assert.Contains("Azur Lane", returnedAnime.Results.Select(x => x.Title)); Assert.Contains("Baccano!", returnedAnime.Results.Select(x => x.Title)); }
public async Task SearchAnimeAsync_OneSortByIdConfig_ShouldSortByIdHachimitsuFirst() { // Given var searchConfig = new AnimeSearchConfig { Query = "one", OrderBy = AnimeSearchOrderBy.Id, SortDirection = SortDirection.Ascending }; // When var returnedAnime = await _jikan.SearchAnimeAsync(searchConfig); // Then returnedAnime.Data.First().Title.Should().Be("Hachimitsu to Clover"); }
public async Task SearchAnimeAsync_OnePieceAiringQuery_ShouldReturnAiringOnePieceAnime() { // Given var config = new AnimeSearchConfig() { Query = "one p", Status = AiringStatus.Airing, Type = AnimeType.TV }; // When var onePieceAnime = await _jikan.SearchAnimeAsync(config); // Then onePieceAnime.Data.First().Title.Should().Be("One Piece"); }