public Expression <Func <Contract, bool> > ComposeFilter(ContractFilterCriteria gameFilterCriteria) { Expression <Func <Contract, bool> > expression = contract => contract.Status == Status.Approved; if (gameFilterCriteria.EditionName != null) { expression = new NameFilter().AddFilter(gameFilterCriteria, expression); } if (gameFilterCriteria.Genres != null && gameFilterCriteria.Genres.Count != 0) { expression = new GenresFilter().AddFilter(gameFilterCriteria, expression); } if (gameFilterCriteria.Publishers != null && gameFilterCriteria.Publishers.Count != 0) { expression = new PublishersFilter().AddFilter(gameFilterCriteria, expression); } if (gameFilterCriteria.Periodicities != null && gameFilterCriteria.Periodicities.Count != 0) { expression = new PeriodicityFilter().AddFilter(gameFilterCriteria, expression); } return(expression); }
public async Task GetMangaGenresAsync_WithFilter_ShouldParseFilteredGenres(GenresFilter filter, int expectedGenreCount) { // When var result = await _jikan.GetMangaGenresAsync(filter); // Then result.Data.Should().HaveCount(expectedGenreCount); }
public async Task GetMangaGenresAsync_InvalidFilter_ShouldThrowValidationException(GenresFilter filter) { // When var func = _jikan.Awaiting(x => x.GetMangaGenresAsync(filter)); // Then await func.Should().ThrowExactlyAsync <JikanValidationException>(); }