public async Task SearchProviders_WhenNoProviderVersionSetAsMaster_NotFoundReturned(int day, int month, int year) { // Arrange ProviderVersionViewModel providerVersionViewModel = CreateProviderVersion(); Provider provider = GetProvider(); providerVersionViewModel.Providers = providerVersionViewModel.Providers.Concat(new[] { provider }); providerVersionViewModel.VersionType = ProviderVersionType.Custom; ICacheProvider cacheProvider = CreateCacheProvider(); SearchResults <ProvidersIndex> searchResults = new SearchResults <ProvidersIndex>(); ISearchRepository <ProvidersIndex> searchRepository = CreateSearchRepository(); searchRepository .Search(Arg.Any <string>(), Arg.Any <SearchParameters>()) .Returns(searchResults); IProviderVersionService providerVersionService = CreateProviderVersionService(); providerVersionService .GetMasterProviderVersion() .Returns <MasterProviderVersion>((MasterProviderVersion)null); IProviderVersionSearchService providerService = CreateProviderVersionSearchService(cacheProvider: cacheProvider, searchRepository: searchRepository, providerVersionService: providerVersionService); // Act IActionResult notFoundResult = await providerService.SearchProviders(year, month, day, new Models.SearchModel()); notFoundResult .Should() .BeOfType <NotFoundResult>(); }
public async Task SearchProviders_WhenProviderIdExistsForDate_ProviderReturned(int day, int month, int year) { // Arrange ProviderVersionViewModel providerVersionViewModel = CreateProviderVersion(); Provider provider = GetProvider(); providerVersionViewModel.Providers = providerVersionViewModel.Providers.Concat(new[] { provider }); providerVersionViewModel.VersionType = ProviderVersionType.Custom; ICacheProvider cacheProvider = CreateCacheProvider(); SearchResults <ProvidersIndex> searchResults = new SearchResults <ProvidersIndex> { Results = new List <Repositories.Common.Search.SearchResult <ProvidersIndex> > { new Repositories.Common.Search.SearchResult <ProvidersIndex> { Result = new ProvidersIndex { ProviderVersionId = provider.ProviderVersionId, UKPRN = provider.UKPRN } } } }; IProviderVersionService providerVersionService = CreateProviderVersionService(); ISearchRepository <ProvidersIndex> searchRepository = CreateSearchRepository(); searchRepository .Search(Arg.Any <string>(), Arg.Any <SearchParameters>()) .Returns(searchResults); IProviderVersionSearchService providerService = CreateProviderVersionSearchService(cacheProvider: cacheProvider, searchRepository: searchRepository, providerVersionService: providerVersionService); providerVersionService .GetProviderVersionByDate(Arg.Any <int>(), Arg.Any <int>(), Arg.Any <int>()) .Returns <ProviderVersionByDate>(new ProviderVersionByDate { Day = day, Month = month, Year = year, ProviderVersionId = provider.ProviderVersionId }); // Act IActionResult okRequest = await providerService.SearchProviders(year, month, day, new Models.SearchModel { Filters = new Dictionary <string, string[]> { { "providerId", new List <string> { provider.ProviderId }.ToArray() } } }); await searchRepository.Received(1) .Search(Arg.Any <string>(), Arg.Is <SearchParameters>(c => c.Filter.Contains(provider.ProviderId))); okRequest .Should() .BeOfType <OkObjectResult>(); ((OkObjectResult)okRequest).Value .Should() .BeOfType <ProviderVersionSearchResults>(); }
public async Task SearchProviders_WhenSearchingAndProvidersExistInMaster_ReturnProviders() { // Arrange ProviderVersionViewModel providerVersionViewModel = CreateProviderVersion(); Provider provider = GetProvider(); providerVersionViewModel.Providers = providerVersionViewModel.Providers.Concat(new[] { provider }); providerVersionViewModel.VersionType = ProviderVersionType.Custom; ICacheProvider cacheProvider = CreateCacheProvider(); SearchResults <ProvidersIndex> searchResults = new SearchResults <ProvidersIndex> { Results = new List <Repositories.Common.Search.SearchResult <ProvidersIndex> > { new Repositories.Common.Search.SearchResult <ProvidersIndex> { Result = new ProvidersIndex { ProviderVersionId = provider.ProviderVersionId, UKPRN = provider.UKPRN } } } }; ISearchRepository <ProvidersIndex> searchRepository = CreateSearchRepository(); searchRepository .Search(Arg.Any <string>(), Arg.Any <SearchParameters>()) .Returns(searchResults); IProviderVersionSearchService providerService = CreateProviderVersionSearchService(cacheProvider: cacheProvider, searchRepository: searchRepository); // Act IActionResult okRequest = await providerService.SearchProviders(provider.ProviderVersionId); await searchRepository.Received(1) .Search(Arg.Any <string>(), Arg.Is <SearchParameters>(c => c.Filter.Contains(provider.ProviderVersionId))); okRequest .Should() .BeOfType <OkObjectResult>(); ((OkObjectResult)okRequest).Value .Should() .BeOfType <ProviderVersionSearchResults>(); }
public async Task <IActionResult> SearchCurrentProviderVersionsForFundingStream(string fundingStreamId, SearchModel search) { Guard.ArgumentNotNull(search, nameof(search)); Guard.IsNullOrWhiteSpace(fundingStreamId, nameof(fundingStreamId)); CurrentProviderVersion currentProviderVersion = await GetCurrentProviderVersion(fundingStreamId); if (currentProviderVersion == null) { LogError("Unable to search current provider for funding stream. " + $"No current provider version information located for {fundingStreamId}"); return(new NotFoundResult()); } return(await _providerVersionSearchPolicy.ExecuteAsync(() => _providerVersionSearch.SearchProviders(currentProviderVersion.ProviderVersionId, search))); }
public async Task SearchProviders_WhenSearchThrowsError_InternalServerErrorThrown() { // Arrange ProviderVersionViewModel providerVersionViewModel = CreateProviderVersion(); Provider provider = GetProvider(); providerVersionViewModel.Providers = providerVersionViewModel.Providers.Concat(new[] { provider }); providerVersionViewModel.VersionType = ProviderVersionType.Custom; ICacheProvider cacheProvider = CreateCacheProvider(); SearchResults <ProvidersIndex> searchResults = new SearchResults <ProvidersIndex> { Results = new List <Repositories.Common.Search.SearchResult <ProvidersIndex> > { new Repositories.Common.Search.SearchResult <ProvidersIndex> { Result = new ProvidersIndex { ProviderVersionId = provider.ProviderVersionId, UKPRN = provider.UKPRN } } } }; ISearchRepository <ProvidersIndex> searchRepository = CreateSearchRepository(); searchRepository .When(s => s.Search(Arg.Any <string>(), Arg.Any <SearchParameters>())) .Do(x => { throw new FailedToQuerySearchException("Test Message", null); }); IProviderVersionSearchService providerService = CreateProviderVersionSearchService(cacheProvider: cacheProvider, searchRepository: searchRepository); // Act IActionResult okRequest = await providerService.SearchProviders(provider.ProviderVersionId); await searchRepository.Received(1) .Search(Arg.Any <string>(), Arg.Is <SearchParameters>(c => c.Filter.Contains(provider.ProviderVersionId))); okRequest .Should() .BeOfType <InternalServerErrorResult>(); }
public async Task <IActionResult> SearchProvidersInProviderVersionAssociatedWithDate([FromRoute] int year, [FromRoute] int month, [FromRoute] int day, [FromBody] SearchModel searchModel) { return(await _providerVersionSearchService.SearchProviders(year, month, day, searchModel)); }
public async Task <IActionResult> SearchProvidersInProviderVersion([FromRoute] string providerVersionId, [FromBody] SearchModel searchModel) { return(await _providerVersionSearchService.SearchProviders(providerVersionId, searchModel)); }