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);
        }
Exemple #4
0
        private TlsRptRecordsEvaluated CreateTlsRptRecordsEvaluatedWithRecords(params Message[] messages)
        {
            TlsRptRecordsEvaluated recordsEvaluated = new TlsRptRecordsEvaluated("", null, messages.ToList(), DateTime.MinValue);

            return(recordsEvaluated);
        }