示例#1
0
        private Task <SearchApprenticeshipVacanciesResponse> InternalSearchApprenticeshipVacanciesAsync(
            VacancySearchParameters parameters)
        {
            _logger.Info($"Searching apprenticeships with following parameters: {parameters}");

            var searchClientParameters = GetSearchClientParameters(parameters);

            ApprenticeshipSearchResponse searchClientResponse;

            try
            {
                searchClientResponse = _apprenticeshipSearchClient.Search(searchClientParameters);
            }
            catch (Exception e)
            {
                throw new InfrastructureException(e);
            }

            var searchResponse = new SearchApprenticeshipVacanciesResponse()
            {
                TotalMatched            = searchClientResponse.Total,
                TotalReturned           = searchClientResponse.Results.Count(),
                TotalPages              = searchClientResponse.TotalPages,
                CurrentPage             = parameters.PageNumber,
                SortBy                  = parameters.SortBy,
                ApprenticeshipSummaries = searchClientResponse.Results.Select(GetApprenticeshipSummary)
            };

            return(Task.FromResult(searchResponse));
        }
示例#2
0
        public async Task Setup()
        {
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var pageSize = fixture.Create <int>();

            _expectedTotal           = fixture.Create <int>();
            _expectedCurrentPage     = fixture.Create <int>();
            _expectedSortBy          = SortBy.Distance;
            _vacancySearchParameters = new VacancySearchParameters
            {
                PageSize        = pageSize,
                PageNumber      = _expectedCurrentPage,
                SortBy          = _expectedSortBy,
                Latitude        = 32,
                Longitude       = 2,
                DistanceInMiles = 342
            };
            _expectedTotalPages = Math.Ceiling((double)_expectedTotal / pageSize);

            _apprenticeshipResults = fixture.Create <List <ApprenticeshipSearchResult> >();

            _mockSearchClient = fixture.Freeze <Mock <IApprenticeshipSearchClient> >();

            _mockSearchClient.Setup(c => c.Search(It.IsAny <ApprenticeshipSearchRequestParameters>()))
            .Returns((ApprenticeshipSearchRequestParameters r) => new ApprenticeshipSearchResponse(
                         _expectedTotal,
                         _apprenticeshipResults,
                         Enumerable.Empty <AggregationResult>(),
                         r));

            _apprenticeshipSearchService = fixture.Create <ApprenticeshipSearchService>();

            _actualResponse = await _apprenticeshipSearchService.SearchApprenticeshipVacanciesAsync(_vacancySearchParameters);
        }
示例#3
0
        public async Task Setup()
        {
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            _expectedResponse   = new SearchApprenticeshipVacanciesResponse();
            _validRequest       = new SearchApprenticeshipVacanciesRequest();
            _expectedParameters = new VacancySearchParameters();

            _validatorMock = fixture.Freeze <Mock <IValidator <SearchApprenticeshipVacanciesRequest> > >();
            _validatorMock
            .Setup(validator => validator.ValidateAsync(_validRequest, It.IsAny <CancellationToken>()))
            .ReturnsAsync(new ValidationResult());

            _mockMapper = fixture.Freeze <Mock <IVacancySearchParametersMapper> >();
            _mockMapper
            .Setup(mapper => mapper.Convert(It.IsAny <SearchApprenticeshipVacanciesRequest>()))
            .Returns(_expectedParameters);

            _mockSearchService = fixture.Freeze <Mock <IApprenticeshipSearchService> >();
            _mockSearchService
            .Setup(service => service.SearchApprenticeshipVacanciesAsync(It.IsAny <VacancySearchParameters>()))
            .ReturnsAsync(_expectedResponse);

            _handler = fixture.Create <SearchApprenticeshipVacanciesQueryHandler>();

            _response = await _handler.Handle(_validRequest);
        }
        public void ThenMapsDistanceCorrectly()
        {
            var searchResponse = new SearchApprenticeshipVacanciesResponse {
                SortBy = SortBy.Distance
            };
            var mapResult = _mapper.Map <Vacancy.Api.Types.ApprenticeshipSearchResponse>(searchResponse);

            mapResult.SortBy.Should().Be(Vacancy.Api.Types.SortBy.Distance);
        }