public void ProviderShouldBeOverridenWhenSpfandDkimFailAndOnBlocklist(DmarcResult spfResult, DmarcResult dkimResult, int blocklistCount, string expectedProvider)
        {
            AggregateReportRecordEnriched     aggregateReportRecordEnriched = CreateTestRecord(spfResult, dkimResult, blockListCount: blocklistCount);
            List <DomainDateProviderIpRecord> result = aggregateReportRecordEnriched.ToDomainDateProviderIpRecord();

            Assert.AreEqual(expectedProvider, result[0].Provider);
        }
        public void ConvertingToRecordShouldTallyCorrectly(DmarcResult?spfResult, DmarcResult?dkimResult, Policy?disposition, string aggregationField)
        {
            AggregateReportRecordEnriched aggregateReportRecordEnriched = CreateTestRecord(spfResult, dkimResult, disposition, 10000);

            List <DomainDateProviderIpRecord> result = aggregateReportRecordEnriched.ToDomainDateProviderIpRecord();

            Assert.AreEqual(10000, TallyAllCounts(result[0]));
            Assert.AreEqual(10000, typeof(DomainDateProviderIpRecord).GetProperty(aggregationField)?.GetValue(result[0], null));
        }
        public void ConvertingToRecordsShouldCreateAllProvidersRecord()
        {
            AggregateReportRecordEnriched aggregateReportRecordEnriched = CreateTestRecord(hostSourceIp: "192.168.123.123", hostname: "mail.outbound.provider.com", hostProvider: "Test Provider");

            List <DomainDateProviderIpRecord> result = aggregateReportRecordEnriched.ToDomainDateProviderIpRecord();

            Assert.AreEqual(2, result.Count);

            Assert.AreEqual("Test Provider", result[0].Provider);
            Assert.AreEqual("mail.outbound.provider.com", result[0].Hostname);
            Assert.AreEqual("192.168.123.123", result[0].Ip);

            Assert.AreEqual("All Providers", result[1].Provider);
            Assert.AreEqual("mail.outbound.provider.com", result[1].Hostname);
            Assert.AreEqual("192.168.123.123", result[1].Ip);
        }