Beispiel #1
0
        public ProviderNameSearchResultsAndPagination Map(SFADASApprenticeshipsApiTypesV3ProviderSearchResults document, string searchTerm)
        {
            var pagination = _orientation.GeneratePaginationDetails(document.PageNumber, document.PageSize, document.TotalResults);

            var results = new ProviderNameSearchResultsAndPagination()
            {
                TotalResults  = document.TotalResults,
                ActualPage    = document.PageNumber,
                ResultsToTake = document.PageSize,
                LastPage      = pagination.LastPage,
                HasError      = false,
                ResponseCode  = ProviderNameSearchResponseCodes.Success,
                SearchTerm    = searchTerm,
                Results       = Map(document.Results)
            };

            return(results);
        }
        public async Task ShouldReturnSuccessCodeAndNotError()
        {
            const int    numberOfItemsToReturn = 10;
            const int    pageNumber            = 1;
            const string searchTerm            = "test";
            var          returnedResults       = new ProviderNameSearchResultsAndPagination {
                ActualPage = 1, HasError = false, TotalResults = 1
            };

            _mockNameSearchProvider.Setup(m => m.SearchProviderNameAndAliases(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>())).Returns(Task.FromResult(returnedResults));
            _mockPaginationSettings.Setup(p => p.DefaultResultsAmount).Returns(numberOfItemsToReturn);

            var providerNameSearchService = new ProviderNameSearchService(_mockPaginationSettings.Object, _mockNameSearchProvider.Object, _mockLogger.Object);

            var result = await providerNameSearchService.SearchProviderNameAndAliases(searchTerm, pageNumber, null);

            var expected = $"Provider Name Search complete: SearchTerm: [{searchTerm}], Page: [{result.ActualPage}], Page Size: [{numberOfItemsToReturn}], Total Results: [{result.TotalResults}]";

            _mockLogger.Verify(x => x.Info(expected));
            Assert.IsFalse(result.HasError);
            Assert.AreEqual(ProviderNameSearchResponseCodes.Success, result.ResponseCode);
        }
Beispiel #3
0
        public async Task <ProviderNameSearchResultsAndPagination> SearchProviderNameAndAliases(string searchTerm, int page, int pageSize)
        {
            var results = new ProviderNameSearchResultsAndPagination();

            if (searchTerm.Length < 3)
            {
                _logger.Info(
                    $"Search term causing SearchTermTooShort: [{searchTerm}]");

                results.SearchTerm   = searchTerm;
                results.ResponseCode = ProviderNameSearchResponseCodes.SearchTermTooShort;

                return(results);
            }

            _logger.Info(
                $"Provider Name Search started: SearchTerm: [{searchTerm}], Page: [{page}], Page Size: [{pageSize}]");

            try
            {
                var apiResults = await _searchV3Api.SearchProviderNameAsync(searchTerm, page, pageSize);

                results = _providerNameSearchMapping.Map(apiResults, searchTerm);
            }
            catch (Exception e)
            {
                _logger.Error(e, $"Provider Name Search error: SearchTerm: [{searchTerm}], Page: [{page}], Page Size: [{pageSize}]");
                results.ResponseCode = ProviderNameSearchResponseCodes.SearchFailed;
                results.HasError     = true;
                return(results);
            }

            _logger.Info(
                $"Provider Name Search complete: SearchTerm: [{searchTerm}], Page: [{results.ActualPage}], Page Size: [{pageSize}], Total Results: [{results.TotalResults}]");

            return(results);
        }
        public void Setup()
        {
            _mockProviderNameSearchService = new Mock <IProviderSearchProvider>();
            _mockPaginationSettings        = new Mock <IPaginationSettings>();
            _actualPage      = 1;
            _lastPage        = 2;
            _resultsToTake   = 20;
            _searchTerm      = "coventry";
            _totalResults    = 21;
            _defaultPageSize = 10;

            _responseCode = ProviderNameSearchResponseCodes.Success;

            _searchResults = new List <ProviderNameSearchResult>
            {
                new ProviderNameSearchResult {
                    UkPrn = 12345678, ProviderName = "abc", Aliases = null
                },
                new ProviderNameSearchResult {
                    UkPrn = 87654321, ProviderName = "ab stuff", Aliases = new List <string> {
                        "ab1", "ab2"
                    }
                },
                new ProviderNameSearchResult {
                    UkPrn = 12341234, ProviderName = "Smiths Learning", Aliases = null
                }
            };

            var providerNameSearchResults = new ProviderNameSearchResultsAndPagination
            {
                ActualPage    = _actualPage,
                HasError      = false,
                LastPage      = _lastPage,
                ResponseCode  = _responseCode,
                Results       = _searchResults,
                ResultsToTake = _resultsToTake,
                TotalResults  = _totalResults
            };


            var providerNameFirstPageSearchResults = new ProviderNameSearchResultsAndPagination
            {
                ActualPage    = 1,
                HasError      = false,
                LastPage      = _lastPage,
                ResponseCode  = _responseCode,
                Results       = _searchResults,
                ResultsToTake = _resultsToTake,
                TotalResults  = _totalResults
            };


            var providerNameDefaultPageSizeSearchResults = new ProviderNameSearchResultsAndPagination
            {
                ActualPage    = _actualPage,
                HasError      = false,
                LastPage      = _lastPage,
                ResponseCode  = _responseCode,
                Results       = _searchResults,
                ResultsToTake = _defaultPageSize,
                TotalResults  = _totalResults
            };

            _mockProviderNameSearchService.Setup(
                x => x.SearchProviderNameAndAliases(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>()))
            .Returns(Task.FromResult(providerNameSearchResults));

            _mockProviderNameSearchService.Setup(
                x => x.SearchProviderNameAndAliases(It.IsAny <string>(), 1, It.IsAny <int>()))
            .Returns(Task.FromResult(providerNameFirstPageSearchResults));

            _mockProviderNameSearchService.Setup(
                x => x.SearchProviderNameAndAliases(It.IsAny <string>(), It.IsAny <int>(), _defaultPageSize))
            .Returns(Task.FromResult(providerNameDefaultPageSizeSearchResults));

            _mockPaginationSettings.Setup(x => x.DefaultResultsAmount).Returns(_defaultPageSize);

            _handler = new ProviderNameSearchHandler(
                _mockProviderNameSearchService.Object, _mockPaginationSettings.Object);
        }