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);
        }
Пример #2
0
        public async Task GetMangaGenresAsync_WithFilter_ShouldParseFilteredGenres(GenresFilter filter, int expectedGenreCount)
        {
            // When
            var result = await _jikan.GetMangaGenresAsync(filter);

            // Then
            result.Data.Should().HaveCount(expectedGenreCount);
        }
Пример #3
0
        public async Task GetMangaGenresAsync_InvalidFilter_ShouldThrowValidationException(GenresFilter filter)
        {
            // When
            var func = _jikan.Awaiting(x => x.GetMangaGenresAsync(filter));

            // Then
            await func.Should().ThrowExactlyAsync <JikanValidationException>();
        }