public async Task GetProviderById_WhenProviderIdDoesNotExistForProviderVersion_NotFoundReturned() { // 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); IProviderVersionSearchService providerService = CreateProviderVersionSearchService(cacheProvider: cacheProvider, searchRepository: searchRepository); // Act IActionResult notFoundRequest = await providerService.GetProviderById(providerVersionViewModel.ProviderVersionId, string.Empty); await searchRepository.Received(1) .Search(Arg.Any <string>(), Arg.Is <SearchParameters>(c => c.Filter.Contains(providerVersionViewModel.ProviderVersionId))); notFoundRequest .Should() .BeOfType <NotFoundResult>(); }
public async Task GetProviderById_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>(); 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 internalServerResult = await providerService.GetProviderById(providerVersionViewModel.ProviderVersionId, string.Empty); await searchRepository.Received(1) .Search(Arg.Any <string>(), Arg.Is <SearchParameters>(c => c.Filter.Contains(providerVersionViewModel.ProviderVersionId))); internalServerResult .Should() .BeOfType <InternalServerErrorResult>(); }
public async Task GetProviderById_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.GetProviderById(year, month, day, provider.ProviderId); 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 <ProviderVersionSearchResult>(); Assert.AreEqual(((ProviderVersionSearchResult)((OkObjectResult)okRequest).Value).Id, provider.ProviderVersionId + "_" + provider.UKPRN); }
public async Task <IActionResult> GetCurrentProviderForFundingStream(string fundingStreamId, string providerId) { Guard.IsNullOrWhiteSpace(fundingStreamId, nameof(fundingStreamId)); Guard.IsNullOrWhiteSpace(providerId, nameof(providerId)); CurrentProviderVersion currentProviderVersion = await GetCurrentProviderVersion(fundingStreamId); if (currentProviderVersion == null) { LogError("Unable to get current provider for funding stream. " + $"No current provider version information located for {fundingStreamId}"); return(new NotFoundResult()); } return(await _providerVersionSearchPolicy.ExecuteAsync(() => _providerVersionSearch.GetProviderById(currentProviderVersion.ProviderVersionId, providerId))); }
public async Task GetProviderById_WhenProviderIdDoesNotExistsForDate_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(); string providerVersionId = Guid.NewGuid().ToString(); providerVersionService .GetProviderVersionByDate(Arg.Any <int>(), Arg.Any <int>(), Arg.Any <int>()) .Returns <ProviderVersionByDate>(new ProviderVersionByDate { Day = day, Month = month, Year = year, ProviderVersionId = providerVersionId }); IProviderVersionSearchService providerService = CreateProviderVersionSearchService(cacheProvider: cacheProvider, searchRepository: searchRepository, providerVersionService: providerVersionService); // Act IActionResult notFoundRequest = await providerService.GetProviderById(year, month, day, "12345"); await searchRepository.Received(1) .Search(Arg.Any <string>(), Arg.Is <SearchParameters>(c => c.Filter.Contains(providerVersionId))); notFoundRequest .Should() .BeOfType <NotFoundResult>(); }
public async Task <IActionResult> GetProviderByIdFromProviderVersion([FromRoute] int year, [FromRoute] int month, [FromRoute] int day, [FromRoute] string providerId) { return(await _providerVersionSearchService.GetProviderById(year, month, day, providerId)); }
public async Task <IActionResult> GetProviderByIdFromProviderVersion([FromRoute] string providerVersionId, [FromRoute] string providerId) { return(await _providerVersionSearchService.GetProviderById(providerVersionId, providerId)); }