public void RecieveFailed() { using (var resources = new Resources()) { //Given var requestModel = new SmsFailedModel { MessageId = Guid.NewGuid().ToString(), FailedReason = "SMS Failed for some reason" }; //When var result = resources.Controller.RecieveFailed(requestModel) as OkResult; //Then Assert.IsNotNull(result); Assert.IsTrue(result.StatusCode == 200); //verify calls were made resources.LogHelper.Verify(x => x.LogMessage(It.Is <string>(m => m == $"SMS failed for messageId: {requestModel.MessageId}, reason: {requestModel.FailedReason}")), Times.Once); resources.EventBus.Verify(x => x.PublishEvent(It.Is <SmsFailedEvent>(m => m.MessageId == requestModel.MessageId && m.FailedReason == requestModel.FailedReason)), Times.Once); resources.LogHelper.VerifyNoOtherCalls(); resources.EventBus.VerifyNoOtherCalls(); resources.SmsGateway.VerifyNoOtherCalls(); } }
public IActionResult RecieveFailed([FromBody] SmsFailedModel response) { try { //publish failed event _eventBus.PublishEvent(new SmsFailedEvent { MessageId = response.MessageId, FailedReason = response.FailedReason }); _logHelper.LogMessage($"SMS failed for messageId: {response.MessageId}, reason: {response.FailedReason}"); return(Ok()); } catch (Exception ex) { _logHelper.LogException(ex); return(BadRequest(ex)); } }