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); } }