public void ShouldReturnFrameworksCount()
        {
            var vacancySearchProvider = new ApprenticeshipsSearchProvider(_elasticsearchClientFactory, _mapper, _configurationService, _logger.Object);

            var vacancies = vacancySearchProvider.FindVacancies(GetCommonSearchParameters());

            vacancies.AggregationResults.Should().HaveCount(c => c > 0);
        }
        public void ShouldSortByPostedDate()
        {
            var vacancySearchProvider = new ApprenticeshipsSearchProvider(_elasticsearchClientFactory, _mapper, _configurationService, _logger.Object);

            var searchParameters = GetPostedDateSearchParameters();

            var vacancies = vacancySearchProvider.FindVacancies(searchParameters);

            vacancies.Results.Should().BeInDescendingOrder(r => r.PostedDate);
        }
        //, Ignore("Failing because an exception")
        public void ShouldSearchAllEngland()
        {
            //TODO: this test could be too fragile
            var vacancySearchProvider = new ApprenticeshipsSearchProvider(_elasticsearchClientFactory, _mapper, _configurationService, _logger.Object);

            var searchParameters = GetEnglandSearchParameters("it");

            var vacancies = vacancySearchProvider.FindVacancies(searchParameters);

            vacancies.Results.Where(r => r.Distance > 40).Should().NotBeEmpty();
        }
        public void ShouldSearchBySector()
        {
            var vacancySearchProvider = new ApprenticeshipsSearchProvider(_elasticsearchClientFactory, _mapper, _configurationService, _logger.Object);

            var searchParameters = GetCommonSearchParameters();

            searchParameters.CategoryCode = RetailAndCommercialEnterprise;

            var vacancies = vacancySearchProvider.FindVacancies(searchParameters);

            vacancies.AggregationResults.Should().HaveCount(c => c > 0);
        }
Example #5
0
        public void ShouldSearchBySectorAndFramework()
        {
            var vacancySearchProvider = new ApprenticeshipsSearchProvider(_elasticsearchClientFactory, _mapper,
                                                                          SearchConfiguration.Instance, _logger.Object);

            var searchParameters = GetCommonSearchParameters();

            searchParameters.Sector     = RetailAndCommercialEnterprise;
            searchParameters.Frameworks = new[] { "582" };

            var vacancies = vacancySearchProvider.FindVacancies(searchParameters);

            vacancies.AggregationResults.Should().HaveCount(n => n > 1);
        }
Example #6
0
        public SearchResponse Search(SearchRequest request)
        {
            var searchFactorConfiguration = new SearchFactorConfiguration
            {
                DescriptionFactors = GetFactorsFromRequest(SearchFactorKeys.Description, request),
                EmployerFactors    = GetFactorsFromRequest(SearchFactorKeys.Employer, request),
                JobTitleFactors    = GetFactorsFromRequest(SearchFactorKeys.JobTitle, request),
                ProviderFactors    = GetFactorsFromRequest(SearchFactorKeys.Provider, request)
            };

            var configurationService = new VacancySearchConfigurationService(
                _configurationService, searchFactorConfiguration);

            var elasticsearchClientFactory = new ElasticsearchClientFactory(
                configurationService, _logService);

            var searchProvider = new ApprenticeshipsSearchProvider(
                elasticsearchClientFactory, _mapper, configurationService, _logService);

            var parameters = new ApprenticeshipSearchParameters
            {
                PageNumber  = 1,
                PageSize    = 50,
                SearchField = GetSearchFieldFromRequest(request),
                Keywords    = request.SearchTerms,
                SortType    = VacancySearchSortType.Relevancy
            };

            var indexDate  = new DateTime(2020, 01, 01, 12, 00, 00);
            var indexAlias = elasticsearchClientFactory.GetIndexNameForType(typeof(ApprenticeshipSummary));
            var indexName  = string.Format("{0}.{1}", indexAlias, indexDate.ToUniversalTime().ToString("yyyy-MM-dd-HH"));

            var vacancies = searchProvider.FindVacancies(parameters, indexName);

            return(new SearchResponse
            {
                Request = request,
                SearchResults = vacancies.Results.ToArray(),
                Total = vacancies.Total,
                SearchFactorConfiguration = configurationService.Get <SearchFactorConfiguration>(),
                Parameters = parameters
            });
        }