public async Task TlsRptExceptionNotThrownWhenAllowNullResultsSetAndEmptyResult() { string domain = "abc.com"; A.CallTo(() => _config.AllowNullResults).Returns(true); A.CallTo(() => _tlsRptRecordsParser.Parse(A <TlsRptRecordInfos> ._)).Returns( new EvaluationResult <TlsRptRecords>(new TlsRptRecords(domain, new List <TlsRptRecord>(), 0))); A.CallTo(() => _evaluator.Evaluate(A <TlsRptRecords> ._)).Returns( new EvaluationResult <TlsRptRecords>(new TlsRptRecords(domain, new List <TlsRptRecord>(), 0))); TlsRptPollResult result = await _tlsRptProcessor.Process(domain); Assert.AreEqual(0, result.TlsRptRecords.Records.Count); }
public async Task <TlsRptPollResult> Process(string domain) { TlsRptRecordInfos tlsRptRecordInfos = await _dnsClient.GetTlsRptRecords(domain); if (!_config.AllowNullResults && (tlsRptRecordInfos.HasError || tlsRptRecordInfos.RecordsInfos.TrueForAll(x => string.IsNullOrWhiteSpace(x.Record)))) { throw new TlsRptPollerException($"Unable to retrieve TLS-RPT records for {domain}."); } if (tlsRptRecordInfos.HasError) { return(new TlsRptPollResult(domain, tlsRptRecordInfos.Error)); } EvaluationResult <TlsRptRecords> parsingResult = _parser.Parse(tlsRptRecordInfos); EvaluationResult <TlsRptRecords> evaluationResult = await _evaluator.Evaluate(parsingResult.Item); return(new TlsRptPollResult(evaluationResult.Item, parsingResult.Errors.Concat(evaluationResult.Errors).ToList())); }