private MxHostTestDetails MarkTestToSkip(MxHostTestDetails host) { using (_log.BeginScope(new Dictionary <string, object> { [TlsHostLogPropertyName] = host.Test.Id })) { host.SkipTesting = _recentlyProcessedLedger.Contains(host.NormalizedHostname); _log.LogInformation($"Host {host.Test.Id} will be {(host.SkipTesting ? "skipped" : "processed")}"); return(host); } }
public async Task HostsAreProcessed() { var testPending = CreateMxHostTestPending(); List <TlsTestPending> list = new List <TlsTestPending> { testPending }; A.CallTo(() => _mxQueueProcessor.GetMxHosts()) .Returns(Task.FromResult(list)).Once() .Then .Returns(Task.FromResult(new List <TlsTestPending>())); A.CallTo(() => _recentlyProcessedLedger.Contains(A <string> ._)).Returns(false); A.CallTo(() => _mxQueueProcessor.DeleteMessage(A <string> ._, A <string> ._)).Returns(Task.CompletedTask); var testResult = CreateMxHostTestResult(); A.CallTo(() => _mxHostTester.Test(testPending)).Returns(Task.FromResult(testResult)).Once(); A.CallTo(() => _processingFilter.Reserve(A <string> ._)).Returns(true); A.CallTo(() => _publisher.Publish(A <Message> ._, A <string> ._)).Returns(Task.CompletedTask); Task process = _mxSecurityTesterProcessor.Process(cancellationTokenSource.Token); await _pipelineStartBlock.SendAsync(null); cancellationTokenSource.Cancel(); await process; A.CallTo(() => _mxQueueProcessor.GetMxHosts()).MustHaveHappenedOnceExactly(); A.CallTo(() => _mxHostTester.Test(testPending)).MustHaveHappenedOnceExactly(); A.CallTo(() => _publisher.Publish(testResult, A <string> ._)).MustHaveHappenedOnceExactly(); A.CallTo(() => _mxQueueProcessor.DeleteMessage("MessageId1", "ReceiptHandle1")).MustHaveHappenedOnceExactly(); A.CallTo(() => _processingFilter.Reserve("host.domain1.gov.uk")).MustHaveHappenedOnceExactly(); A.CallTo(() => _processingFilter.ReleaseReservation("host.domain1.gov.uk")).MustHaveHappenedOnceExactly(); A.CallTo(() => _recentlyProcessedLedger.Set("host.domain1.gov.uk")).MustHaveHappenedOnceExactly(); }