public async Task HandleTlsRptRecordsEvaluatedAndNewEvaluationUpdatesStateAndPublishes() { A.CallTo(() => _tlsRptEntityDao.Get(Id)).Returns( new TlsRptEntityState(Id, 2, TlsRptState.PollPending, DateTime.Now) { LastUpdated = DateTime.Now.AddDays(-1), TlsRptRecords = CreateTlsRptRecords() }); TlsRptEntityState entityState = CreateTlsRptEntityState(); entityState.Messages.Add(new Message(Guid.NewGuid(), MessageSources.TlsRptEvaluator, MessageType.error, "EvaluationError", string.Empty)); entityState.TlsRptRecords.Records[0].Tags[0].Explanation = "Explanation"; TlsRptRecordsEvaluated recordsEvaluated = new TlsRptRecordsEvaluated(Id, entityState.TlsRptRecords, new List <Message> { new Message(Guid.NewGuid(), MessageSources.TlsRptEvaluator, MessageType.error, "EvaluationError", string.Empty) }, DateTime.MinValue); await _tlsRptEntity.Handle(recordsEvaluated); A.CallTo(() => _dispatcher.Dispatch(A <TlsRptRecordEvaluationsChanged> .That.Matches( _ => _.Messages[0].Text.Equals(entityState.Messages[0].Text) && _.Records.Records[0].Tags[0].Explanation.Equals(entityState.TlsRptRecords.Records[0].Tags[0].Explanation)), A <string> ._)) .MustHaveHappenedOnceExactly(); A.CallTo(() => _tlsRptEntityDao.Save(A <TlsRptEntityState> ._)).MustHaveHappenedOnceExactly(); }
private TlsRptRecordsEvaluated CreateTlsRptRecordsEvaluated(params string[] recordStrings) { IEnumerable <TlsRptRecord> records = recordStrings.Select(x => new TlsRptRecord(x, x.Split(";").ToList(), null)); TlsRptRecordsEvaluated recordsEvaluated = new TlsRptRecordsEvaluated("", new TlsRptRecords("", records.ToList(), 0), null, DateTime.MinValue); return(recordsEvaluated); }
public async Task Handle(TlsRptRecordsEvaluated message) { string messageId = message.Id.ToLower(); TlsRptEntityState state = await LoadState(messageId, nameof(message)); _changeNotifiersComposite.Handle(state, message); Message updateTlsRptEvaluation = state.UpdateTlsRptEvaluation(message.Records, message.Messages, message.Timestamp); state.Version++; await _dao.Save(state); _dispatcher.Dispatch(updateTlsRptEvaluation, _tlsRptEntityConfig.SnsTopicArn); }
private TlsRptRecordsEvaluated CreateTlsRptRecordsEvaluatedWithRecords(params Message[] messages) { TlsRptRecordsEvaluated recordsEvaluated = new TlsRptRecordsEvaluated("", null, messages.ToList(), DateTime.MinValue); return(recordsEvaluated); }