public void ConvertingToRecordShouldTallyCorrectly(DmarcResult?spfResult, DmarcResult?dkimResult, Policy?disposition, string aggregationField) { AggregateReportRecordEnriched aggregateReportRecordEnriched = CreateTestRecord(spfResult, dkimResult, disposition, 10000, date: new DateTime(2001, 01, 01)); List <DomainDateRecord> result = aggregateReportRecordEnriched.ToDomainDateRecords(); Assert.AreEqual(2, result.Count); Assert.AreEqual(new DateTime(2001, 01, 01), result[0].Date); Assert.AreEqual("digital.ncsc.gov.uk", result[0].Domain); Assert.AreEqual(10000, TallyAllCounts(result[0])); Assert.AreEqual(10000, typeof(DomainDateRecord).GetProperty(aggregationField)?.GetValue(result[0], null)); Assert.AreEqual(new DateTime(2001, 01, 01), result[1].Date); Assert.AreEqual("ncsc.gov.uk", result[1].Domain); Assert.AreEqual(10000, TallyAllCounts(result[1])); Assert.AreEqual(10000, typeof(DomainDateRecord).GetProperty(aggregationField)?.GetValue(result[1], null)); }
public void ConvertingToRecordShouldSplitIntoSubdomains() { AggregateReportRecordEnriched aggregateReportRecordEnriched = CreateTestRecord(headerFrom: "a.b.c.d.e.gov.uk", organisationDomain: "e.gov.uk", date: new DateTime(2001, 01, 01)); List <DomainDateRecord> result = aggregateReportRecordEnriched.ToDomainDateRecords(); Assert.AreEqual(5, result.Count); Assert.AreEqual(new DateTime(2001, 01, 01), result[0].Date); Assert.AreEqual(new DateTime(2001, 01, 01), result[1].Date); Assert.AreEqual(new DateTime(2001, 01, 01), result[2].Date); Assert.AreEqual(new DateTime(2001, 01, 01), result[3].Date); Assert.AreEqual(new DateTime(2001, 01, 01), result[4].Date); Assert.AreEqual("a.b.c.d.e.gov.uk", result[0].Domain); Assert.AreEqual("b.c.d.e.gov.uk", result[1].Domain); Assert.AreEqual("c.d.e.gov.uk", result[2].Domain); Assert.AreEqual("d.e.gov.uk", result[3].Domain); Assert.AreEqual("e.gov.uk", result[4].Domain); }