public async Task <IActionResult> GetProviderIpStats(DomainProviderDateRangeRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ErrorResponse(ModelState.Values)));
            }

            return(Ok(await _aggregateReportService.GetIpStatsDto(request.Domain, request.StartDate, request.EndDate, request.Provider, request.Page.Value, request.PageSize.Value, request.IpFilter, request.HostFilter, request.CategoryFilter)));
        }
Пример #2
0
        public async Task CheckGetIpStatsDtoReturnsIpStatsDto()
        {
            string domain             = "ncsc.gov.uk";
            string ip                 = "192.168.72.11";
            string hostname           = "hostName";
            int    totalHostnameCount = 100;
            int    totalEmails        = 1111;

            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);

            IpStats ipStat = new IpStats(domain, provider, ip, hostname, 0, 1, 2,
                                         3, 4, 5, 6, 7,
                                         8, 9, 10, 11, 30, 31, 32, 33, 34, 35, 100, 36, 37, 38, 39, 12,
                                         13, 14, 15, 16, 17,
                                         18, 19, 20, 21, 22, 23,
                                         24, 25, 26, 27, 28);

            IpStatsResult ipStatsResult = new IpStatsResult(new List <IpStats>()
            {
                ipStat
            }, totalHostnameCount, totalEmails);

            A.CallTo(() => _aggregateReportApiDao.GetIpStats(domain, A <DateTime> ._, A <DateTime> ._, provider, A <int> ._, A <int> ._, null, null, null))
            .Returns(Task.FromResult(ipStatsResult));

            IpStatsDto ipStatsDto = new IpStatsDto(domain, provider, ip, hostname, 0, 1, 2,
                                                   3, 4, 5, 6, 7,
                                                   8, 9, 10, 11, 30, 31, 32, 33, 34, 35, 100, 36, 37, 38, 39, 12,
                                                   13, 14, 15, 16, 17,
                                                   18, 19, 20, 21, 22, 23,
                                                   24, 25, 26, 27, 28, alias, markdown);

            A.CallTo(() => _ipStatsMapper.Map(ipStat, alias, markdown))
            .Returns(ipStatsDto);

            IpStatsDtoResult ipStatsDtoResult = await _aggregateReportService.GetIpStatsDto(domain, DateTime.MinValue, DateTime.MaxValue, alias, 0, 0);

            Assert.AreSame(ipStatsDto, ipStatsDtoResult.IpStats[0]);
            Assert.AreEqual(totalHostnameCount, ipStatsDtoResult.TotalHostnameCount);
            Assert.AreEqual(totalEmails, ipStatsDtoResult.TotalEmails);
        }