예제 #1
0
        public void RecieveSuccess()
        {
            using (var resources = new Resources())
            {
                //Given
                var requestModel = new SmsSuccessModel
                {
                    MessageId = Guid.NewGuid().ToString()
                };

                //When
                var result = resources.Controller.RecieveSuccess(requestModel) as OkResult;

                //Then
                Assert.IsNotNull(result);
                Assert.IsTrue(result.StatusCode == 200);

                //verify calls
                resources.LogHelper.Verify(x => x.LogMessage(It.Is <string>(m =>
                                                                            m == $"SMS was successful for messageId: {requestModel.MessageId}")), Times.Once);

                resources.EventBus.Verify(x => x.PublishEvent(It.Is <SmsSuccessEvent>(m =>
                                                                                      m.MessageId == requestModel.MessageId)), Times.Once);

                resources.LogHelper.VerifyNoOtherCalls();
                resources.EventBus.VerifyNoOtherCalls();
                resources.SmsGateway.VerifyNoOtherCalls();
            }
        }
예제 #2
0
        public IActionResult RecieveSuccess([FromBody] SmsSuccessModel response)
        {
            try
            {
                //publish success event
                _eventBus.PublishEvent(new SmsSuccessEvent
                {
                    MessageId = response.MessageId
                });

                _logHelper.LogMessage($"SMS was successful for messageId: {response.MessageId}");

                return(Ok());
            }
            catch (Exception ex)
            {
                _logHelper.LogException(ex);
                return(BadRequest(ex));
            }
        }