public async Task <IActionResult> GetSubdomainStats(DomainProviderDateRangeRequest request) { if (!ModelState.IsValid) { return(BadRequest(new ErrorResponse(ModelState.Values))); } return(Ok(await _aggregateReportService.GetSubdomainStatsDto(request.Domain, request.Provider, request.StartDate, request.EndDate, request.Page.Value, request.PageSize.Value, request.CategoryFilter))); }
public async Task CheckGetSubdomainStatsDtoReturnsSubdomainStatsDto() { string domain = "ncsc.gov.uk"; string subdomain = "digital.ncsc.gov.uk"; int totalCount = 20; string provider = "testProvider"; string alias = "testAlias"; string markdown = "testMarkdown"; A.CallTo(() => _providerDetailsProvider.GetProviderAliasIn(alias)) .Returns(provider); A.CallTo(() => _providerDetailsProvider.GetProviderAliasOut(provider)) .Returns(alias); A.CallTo(() => _providerDetailsProvider.GetProviderMarkdown(provider)) .Returns(markdown); SubdomainStats domainStats = new SubdomainStats(domain, provider, subdomain, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 20, 21, 22); SubdomainStatsResult subdomainStatsResult = new SubdomainStatsResult(domainStats, new List <SubdomainStats>() { domainStats }, totalCount); A.CallTo(() => _aggregateReportApiDao.GetSubdomainStats(domain, provider, A <DateTime> ._, A <DateTime> ._, A <int> ._, A <int> ._, null)) .Returns(Task.FromResult(subdomainStatsResult)); SubdomainStatsDto subdomainStatsDto = new SubdomainStatsDto(domain, provider, subdomain, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 20, 21, 22, alias, markdown); A.CallTo(() => _subdomainStatsMapper.Map(domainStats, alias, markdown)) .Returns(subdomainStatsDto); SubdomainStatsDtoResult subdomainStatsDtoResults = await _aggregateReportService.GetSubdomainStatsDto(domain, alias, DateTime.MinValue, DateTime.MaxValue, 0, 0); Assert.AreSame(subdomainStatsDto, subdomainStatsDtoResults.DomainStatsDto); Assert.AreSame(subdomainStatsDto, subdomainStatsDtoResults.SubdomainStatsDto[0]); Assert.AreEqual(totalCount, subdomainStatsDtoResults.TotalCount); }