public async Task ItShouldReturnTheFirstResultWhenTheSpfStateExists() { SpfInfoResponse state = new SpfInfoResponse("ncsc.gov.uk", SpfState.Created); A.CallTo(() => _spfService.GetSpfForDomain(A <string> ._)) .Returns(Task.FromResult(state)); ObjectResult response = (ObjectResult)await _sut.GetSpf(new SpfDomainRequest { Domain = "ncsc.gov.uk" }); Assert.AreSame(response.Value, state); }
public async Task PublishesDomainMissingMessageWhenDomainDoesNotExist() { A.CallTo(() => _dao.GetSpfForDomain("testDomain")) .Returns(Task.FromResult <SpfInfoResponse>(null)); SpfInfoResponse result = await _spfService.GetSpfForDomain("testDomain"); A.CallTo(() => _messagePublisher.Publish(A <DomainMissing> ._, A <string> ._)) .MustHaveHappenedOnceExactly(); Assert.AreEqual(null, result); }
public async Task <SpfInfoResponse> GetSpfForDomain(string requestDomain) { SpfInfoResponse response = await _dao.GetSpfForDomain(requestDomain); if (response is null) { await _messagePublisher.Publish(new DomainMissing(requestDomain), _config.MicroserviceOutputSnsTopicArn); } return(response); }
public async Task DoesNotPublishDomainMissingMessageWhenDomainExists() { SpfInfoResponse spfInfoResponse = new SpfInfoResponse("", SpfState.Created); A.CallTo(() => _dao.GetSpfForDomain("testDomain")) .Returns(Task.FromResult(spfInfoResponse)); SpfInfoResponse result = await _spfService.GetSpfForDomain("testDomain"); A.CallTo(() => _messagePublisher.Publish(A <DomainMissing> ._, A <string> ._)) .MustNotHaveHappened(); Assert.AreSame(spfInfoResponse, result); }
public async Task <IActionResult> GetSpf(SpfDomainRequest request) { if (!ModelState.IsValid) { return(BadRequest(new ErrorResponse(ModelState.Values))); } SpfInfoResponse response = await _spfService.GetSpfForDomain(request.Domain); if (response == null) { return(new NotFoundObjectResult(new ErrorResponse($"No Spf found for {request.Domain}", ErrorStatus.Information))); } return(new ObjectResult(response)); }