コード例 #1
0
        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();
            }
        }
コード例 #2
0
        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));
            }
        }