public ProviderResultsRepository(IResultsApiClientProxy apiClient, ICacheProvider cacheProvider) { Guard.ArgumentNotNull(apiClient, nameof(apiClient)); Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider)); _apiClient = apiClient; _cacheProvider = cacheProvider; }
public ProviderService(ICacheProvider cacheProvider, IResultsApiClientProxy resultsApiClient, IMapper mapper) { Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider)); Guard.ArgumentNotNull(resultsApiClient, nameof(resultsApiClient)); Guard.ArgumentNotNull(mapper, nameof(mapper)); _cacheProvider = cacheProvider; _resultsApiClient = resultsApiClient; _mapper = mapper; }
public async Task FetchCoreProviderData_WhenInCache_ThenReturnsCacheValue() { // Arrange IResultsApiClientProxy resultsApiClient = CreateResultsApiClient(); resultsApiClient .PostAsync <ProviderSearchResults, SearchModel>(Arg.Is("results/providers-search"), Arg.Any <SearchModel>()) .Returns(new ProviderSearchResults { TotalCount = 3 }); List <ProviderSummary> cachedProviderSummaries = new List <ProviderSummary> { new ProviderSummary { Id = "one" }, new ProviderSummary { Id = "two" }, new ProviderSummary { Id = "three" } }; ICacheProvider cacheProvider = CreateCacheProvider(); cacheProvider .GetAsync <string>(Arg.Is(CacheKeys.AllProviderSummaryCount)) .Returns("3"); cacheProvider .ListRangeAsync <ProviderSummary>(Arg.Is(CacheKeys.AllProviderSummaries), Arg.Is(0), Arg.Is(3)) .Returns(cachedProviderSummaries); cacheProvider .ListLengthAsync <ProviderSummary>(Arg.Is(CacheKeys.AllProviderSummaries)) .Returns(3); IProviderService providerService = CreateProviderService(cacheProvider: cacheProvider, resultsApiClient: resultsApiClient); // Act IEnumerable <ProviderSummary> results = await providerService.FetchCoreProviderData(); // Assert results.Should().Contain(cachedProviderSummaries); }
public async Task FetchCoreProviderData_WhenNotInCache_ThenReturnsSearchValue() { // Arrange IResultsApiClientProxy resultsApiClient = CreateResultsApiClient(); resultsApiClient .PostAsync <ProviderSearchResults, SearchModel>(Arg.Is("results/providers-search"), Arg.Any <SearchModel>()) .Returns(new ProviderSearchResults { TotalCount = 3, Results = new List <ProviderSearchResult> { new ProviderSearchResult { ProviderId = "one" }, new ProviderSearchResult { ProviderId = "two" }, new ProviderSearchResult { ProviderId = "three" } } }); ICacheProvider cacheProvider = CreateCacheProvider(); cacheProvider .GetAsync <string>(Arg.Is(CacheKeys.AllProviderSummaryCount)) .Returns("0"); IProviderService providerService = CreateProviderService(cacheProvider: cacheProvider, resultsApiClient: resultsApiClient); // Act IEnumerable <ProviderSummary> results = await providerService.FetchCoreProviderData(); // Assert results .Should() .HaveCount(3); results.Should().Contain(r => r.Id == "one"); results.Should().Contain(r => r.Id == "two"); results.Should().Contain(r => r.Id == "three"); }
public async Task FetchCoreProviderData_WhenNotInCache_ThenAddsToCache() { // Arrange IResultsApiClientProxy resultsApiClient = CreateResultsApiClient(); resultsApiClient .PostAsync <ProviderSearchResults, SearchModel>(Arg.Is("results/providers-search"), Arg.Any <SearchModel>()) .Returns(new ProviderSearchResults { TotalCount = 3, Results = new List <ProviderSearchResult> { new ProviderSearchResult { ProviderId = "one" }, new ProviderSearchResult { ProviderId = "two" }, new ProviderSearchResult { ProviderId = "three" } } }); ICacheProvider cacheProvider = CreateCacheProvider(); cacheProvider .GetAsync <string>(Arg.Is(CacheKeys.AllProviderSummaryCount)) .Returns("0"); IProviderService providerService = CreateProviderService(cacheProvider: cacheProvider, resultsApiClient: resultsApiClient); // Act IEnumerable <ProviderSummary> results = await providerService.FetchCoreProviderData(); // Assert await cacheProvider .Received(1) .KeyDeleteAsync <ProviderSummary>(Arg.Is(CacheKeys.AllProviderSummaries)); await cacheProvider .Received(1) .CreateListAsync(Arg.Is <List <ProviderSummary> >(l => l.Count == 3), Arg.Is(CacheKeys.AllProviderSummaries)); }
private IProviderService CreateProviderService(ICacheProvider cacheProvider = null, IResultsApiClientProxy resultsApiClient = null) { return(new ProviderService( cacheProvider ?? CreateCacheProvider(), resultsApiClient ?? CreateResultsApiClient(), CreateMapper())); }
public ResultsRepository(IResultsApiClientProxy apiClient) { Guard.ArgumentNotNull(apiClient, nameof(apiClient)); _resultsApiClient = apiClient; }
public ResultsRepository(IResultsApiClientProxy apiClientProxy) { _apiClientProxy = apiClientProxy; }