Esempio n. 1
0
        public async Task HandleTlsRptRecordsPolledAndUpdateWhenNoRecordsExistUpdatesHistoryState()
        {
            List <string> tlsRptRecords1 = CreateRecords().Records.Select(x => x.Record).ToList();

            A.CallTo(() => _entityDao.Get(Id)).Returns(new TlsRptEntityHistoryState(Id));

            TlsRptRecordsPolled tlsRptRecordsEvaluated =
                new TlsRptRecordsPolled(Id, CreateRecords(), null);

            await _historyEntity.Handle(tlsRptRecordsEvaluated);

            A.CallTo(() => _entityDao.Save(A <TlsRptEntityHistoryState> .That.Matches(_ =>
                                                                                      _.TlsRptHistory.Count == 1 &&
                                                                                      _.TlsRptHistory[0].EndDate == null &&
                                                                                      _.TlsRptHistory[0].TlsRptRecords.SequenceEqual(tlsRptRecords1)))).MustHaveHappenedOnceExactly();

            A.CallTo(() => _tlsRptRuaService.Process(A <string> ._, A <string> ._)).MustHaveHappenedOnceExactly();
        }
        public async Task Handle(TlsRptRecordsPolled message)
        {
            string messageId = message.Id.ToLower();

            TlsRptEntityHistoryState tlsRptEntityHistory = await LoadHistoryState(messageId);

            List <string> records = new List <string>();

            message.TlsRptRecords?.Records.ForEach(x => records.Add(x.Record));

            if (tlsRptEntityHistory.UpdateHistory(records, message.Timestamp))
            {
                _log.LogInformation("TLS-RPT record has changed for {Id}", messageId);

                await _dao.Save(tlsRptEntityHistory);

                records.ForEach(x => _ruaService.Process(messageId, x));
            }
            else
            {
                _log.LogInformation("No TLS-RPT Record change for {Id}", messageId);
            }
        }