private static IEnumerable <KeyValuePair <string, object> > MapParameters(DomainDateRecord record)
        {
            yield return(KeyValuePair.Create <string, object>("domain", record.Domain));

            yield return(KeyValuePair.Create <string, object>("date", record.Date.ToString("yyyy-MM-dd")));

            yield return(KeyValuePair.Create <string, object>("spf_pass_dkim_pass_none", record.SpfPassDkimPassNone));

            yield return(KeyValuePair.Create <string, object>("spf_pass_dkim_fail_none", record.SpfPassDkimFailNone));

            yield return(KeyValuePair.Create <string, object>("spf_fail_dkim_pass_none", record.SpfFailDkimPassNone));

            yield return(KeyValuePair.Create <string, object>("spf_fail_dkim_fail_none", record.SpfFailDkimFailNone));

            yield return(KeyValuePair.Create <string, object>("spf_pass_dkim_pass_quarantine", record.SpfPassDkimPassQuarantine));

            yield return(KeyValuePair.Create <string, object>("spf_pass_dkim_fail_quarantine", record.SpfPassDkimFailQuarantine));

            yield return(KeyValuePair.Create <string, object>("spf_fail_dkim_pass_quarantine", record.SpfFailDkimPassQuarantine));

            yield return(KeyValuePair.Create <string, object>("spf_fail_dkim_fail_quarantine", record.SpfFailDkimFailQuarantine));

            yield return(KeyValuePair.Create <string, object>("spf_pass_dkim_pass_reject", record.SpfPassDkimPassReject));

            yield return(KeyValuePair.Create <string, object>("spf_pass_dkim_fail_reject", record.SpfPassDkimFailReject));

            yield return(KeyValuePair.Create <string, object>("spf_fail_dkim_pass_reject", record.SpfFailDkimPassReject));

            yield return(KeyValuePair.Create <string, object>("spf_fail_dkim_fail_reject", record.SpfFailDkimFailReject));
        }
        public void ConvertingToRecordShouldTallyCorrectly(DmarcResult?spfResult, DmarcResult?dkimResult, Policy?disposition, string aggregationField)
        {
            AggregateReportRecordEnriched aggregateReportRecordEnriched = CreateTestRecord(spfResult, dkimResult, disposition, 10000, "digital.ncsc.gov.uk", new DateTime(2001, 01, 01));

            DomainDateRecord result = aggregateReportRecordEnriched.ToDomainDateRecord();

            Assert.AreEqual(new DateTime(2001, 01, 01), result.Date);
            Assert.AreEqual("digital.ncsc.gov.uk", result.Domain);
            Assert.AreEqual(10000, typeof(DomainDateRecord).GetProperty(aggregationField)?.GetValue(result, null));
        }
 private long TallyAllCounts(DomainDateRecord record)
 {
     return(record.SpfPassDkimPassNone + record.SpfPassDkimFailNone + record.SpfFailDkimPassNone + record.SpfFailDkimFailNone +
            record.SpfPassDkimPassQuarantine + record.SpfPassDkimFailQuarantine + record.SpfFailDkimPassQuarantine + record.SpfFailDkimFailQuarantine +
            record.SpfPassDkimPassReject + record.SpfPassDkimFailReject + record.SpfFailDkimPassReject + record.SpfFailDkimFailReject);
 }