public void PublisherDeterminesStatusAndDispatchesIt() { Message rootMessage = CreateInfoMessage(); Message recordsMessage = CreateInfoMessage(); Message recordsRecordsMessages = CreateInfoMessage(); SpfRecordsEvaluated message = new SpfRecordsEvaluated("testDomain", new SpfRecords(new List <SpfRecord> { new SpfRecord(null, null, null, new List <Message> { recordsRecordsMessages }, false) }, 0, new List <Message> { recordsMessage }), null, null, new List <Message> { rootMessage }, DateTime.MinValue); A.CallTo(() => _domainStatusEvaluator.GetStatus(A <List <Message> > .That.Matches(x => x.Contains(rootMessage) && x.Contains(recordsMessage) && x.Contains(recordsRecordsMessages)))).Returns(Status.Info); _domainStatusPublisher.Publish(message); Expression <Func <DomainStatusEvaluation, bool> > predicate = x => x.Status == Status.Info && x.RecordType == "SPF" && x.Id == "testDomain"; A.CallTo(() => _dispatcher.Dispatch(A <DomainStatusEvaluation> .That.Matches(predicate), "testSnsTopicArn")).MustHaveHappenedOnceExactly(); }
public void NullTermsDoesntErrorGetMessagesOut() { Message rootMessage = CreateInfoMessage(); Message recordsMessage = CreateInfoMessage(); Message spfRecordWithIncludeMessage = CreateInfoMessage(); SpfRecord spfRecordWithInclude = new SpfRecord(null, null, new List <Term> { null }, new List <Message> { spfRecordWithIncludeMessage }, false); SpfRecords rootSpfRecords = new SpfRecords(new List <SpfRecord> { spfRecordWithInclude }, 100, new List <Message> { recordsMessage }); SpfRecordsEvaluated message = new SpfRecordsEvaluated("test.gov.uk", rootSpfRecords, null, null, new List <Message> { rootMessage }, DateTime.UtcNow); A.CallTo(() => _domainStatusEvaluator.GetStatus(A <List <Message> > .That.Matches(x => x.Contains(rootMessage) && x.Contains(recordsMessage) && x.Contains(spfRecordWithIncludeMessage)))).Returns(Status.Error); _domainStatusPublisher.Publish(message); Expression <Func <DomainStatusEvaluation, bool> > predicate = x => x.Status == Status.Error && x.RecordType == "SPF" && x.Id == "test.gov.uk"; A.CallTo(() => _dispatcher.Dispatch(A <DomainStatusEvaluation> .That.Matches(predicate), "testSnsTopicArn")).MustHaveHappenedOnceExactly(); }