Example #1
0
        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);
        }
        public async Task <SubdomainStatsDtoResult> GetSubdomainStatsDto(string domain, string provider, DateTime startDate, DateTime endDate, int page, int pageSize, string categoryFilter = null)
        {
            provider = _providerDetailsProvider.GetProviderAliasIn(provider);

            string providerAlias    = _providerDetailsProvider.GetProviderAliasOut(provider);
            string providerMarkdown = _providerDetailsProvider.GetProviderMarkdown(provider);

            SubdomainStatsResult subdomainStatsResult = await _aggregateReportApiDao.GetSubdomainStats(domain, provider, startDate, endDate, page, pageSize, categoryFilter);

            List <SubdomainStatsDto> subdomainStatsDto = new List <SubdomainStatsDto>();

            foreach (SubdomainStats subdomain in subdomainStatsResult.SubdomainStats)
            {
                SubdomainStatsDto subdomainDto = _subdomainStatsMapper.Map(subdomain, providerAlias, providerMarkdown);
                subdomainStatsDto.Add(subdomainDto);
            }


            SubdomainStatsDtoResult subdomainStatsDtoResult = new SubdomainStatsDtoResult(
                _subdomainStatsMapper.Map(subdomainStatsResult.DomainStats, providerAlias, providerMarkdown),
                subdomainStatsDto, subdomainStatsResult.TotalCount);

            return(subdomainStatsDtoResult);
        }