Ejemplo n.º 1
0
        public void Post_ReturnsActionResult_With200Status_For_Valid_Message_Valid_Phone()
        {
            // assign
            Mock <ITwilioService> twilioServiceMock = new Mock <ITwilioService>();

            twilioServiceMock
            .Setup(x => x.SendMessage("hello world", "12345"))
            .Returns(new SendMessageResponse());

            var smsController = new SmsController(twilioServiceMock.Object);

            SendMessageRequest smsMessageRequest = new SendMessageRequest
            {
                Message  = "hello world",
                MobileNo = "12345"
            };

            // act
            var result = smsController.Post(smsMessageRequest);

            // assert
            var viewResult = Assert.IsType <OkObjectResult>(result);

            Assert.Equal(200, viewResult.StatusCode);
        }
Ejemplo n.º 2
0
        public void Post_ReturnsActionResult_With200Status()
        {
            var smsController = new SmsController();
            var result        = smsController.Post("");

            // Assert
            var viewResult = Assert.IsType <OkResult>(result);

            Assert.Equal(200, viewResult.StatusCode);
        }
Ejemplo n.º 3
0
        public void SmsController_EmptyPostMessage_ShouldReturnBadRequest()
        {
            // Arrange
            var repository = new MockSmsRepository();
            var controller = new SmsController(repository);

            // Act
            var actionResult = controller.Post(null);

            // Assert
            Assert.IsTrue(actionResult is BadRequestErrorMessageResult);
        }
Ejemplo n.º 4
0
        public void Post_ReturnsActionResult_With200Status()
        {
            var smsController = new SmsController();
            var result        = smsController.Post(new Models.SmsRequest {
                Number = "+380976579827", Content = "Test"
            });

            // Assert
            var viewResult = Assert.IsType <OkObjectResult>(result);

            Assert.Equal(200, viewResult.StatusCode);
        }
Ejemplo n.º 5
0
        public void SmsController_ValidPostMessage_ShouldReturnCreated()
        {
            // Arrange
            var repository = new MockSmsRepository();
            var controller = new SmsController(repository);
            var model      = new SendSmsBindingModel {
                To = Guid.NewGuid().ToString(), Message = Guid.NewGuid().ToString()
            };

            // Act
            var actionResult = controller.Post(model);

            // Assert
            Assert.IsTrue(actionResult is CreatedNegotiatedContentResult <SmsMessage>);
        }
Ejemplo n.º 6
0
        public void SmsController_ValidPostMessage_ShouldSaveToTableAndQueue()
        {
            // Arrange
            var repository = new MockSmsRepository();
            var controller = new SmsController(repository);
            var model      = new SendSmsBindingModel {
                To = Guid.NewGuid().ToString(), Message = Guid.NewGuid().ToString()
            };

            // Act
            var actionResult = controller.Post(model);

            // Assert
            Assert.AreEqual(1, repository.QueueLength, "failed to save to queue");
            Assert.AreEqual(1, repository.TableSize, "failed to save to table");
        }
Ejemplo n.º 7
0
        public void PostWithInvalidMobileNumberReturnsBadRequest(string invalidMobileNumber)
        {
            // Arrange
            var sut     = new SmsController(new SmsServiceMock());
            var sendSms = new SendSms
            {
                MobileNumber = invalidMobileNumber,
                Message      = "안녕하세요"
            };

            // Act
            ActionResult actual = sut.Post(sendSms);

            // Assert
            Assert.IsType <BadRequestResult>(actual);
        }
Ejemplo n.º 8
0
        public void PostWithValidDataReturnsOkResult()
        {
            // Arrange
            var sut     = new SmsController(new SmsServiceMock());
            var sendSms = new SendSms
            {
                MobileNumber = "010-1234-1234",
                Message      = "안녕하세요"
            };

            // Act
            ActionResult actual = sut.Post(sendSms);

            // Assert
            Assert.IsType <OkResult>(actual);
        }
Ejemplo n.º 9
0
        public void SmsController_ValidPostMessage_ShouldReturnCompleteResponse()
        {
            // Arrange
            var repository = new MockSmsRepository();
            var controller = new SmsController(repository);
            var model      = new SendSmsBindingModel {
                To = Guid.NewGuid().ToString(), Message = Guid.NewGuid().ToString()
            };

            // Act
            var actionResult = controller.Post(model);
            var result       = (actionResult as CreatedNegotiatedContentResult <SmsMessage>).Content;

            // Assert
            Assert.IsTrue(result.Created > DateTime.MinValue, "created too late");
            Assert.IsTrue(Guid.Empty != result.Guid, "no guid generated");
        }
        public async Task ThenShouldReturnHttpOKStatus()
        {
            var orchestratorResponse = new OrchestratorResponse {
                Code = NotificationOrchestratorCodes.Post.Success
            };
            var mockNotificationOrchestrator = new Mock <INotificationOrchestrator>();

            mockNotificationOrchestrator.Setup(x => x.SendSms(It.IsAny <Sms>())).Returns(Task.FromResult(orchestratorResponse));

            var sut = new SmsController(mockNotificationOrchestrator.Object);

            sut.ControllerContext = TestHelpers.CreateControllerContextWithUser();

            var request = new Sms();
            HttpResponseMessage controllerResponse = await sut.Post(request);

            Assert.AreEqual(HttpStatusCode.OK, controllerResponse.StatusCode);
        }
Ejemplo n.º 11
0
        public void PostWithValidDataCorrectlySendsMessage()
        {
            // Arrange
            var smsServiceMock = new SmsServiceMock();
            var sut            = new SmsController(smsServiceMock);
            var sendSms        = new SendSms
            {
                MobileNumber = "010-1234-1234",
                Message      = "안녕하세요"
            };

            // Act
            sut.Post(sendSms);

            // Assert
            Assert.Equal(sendSms.Message, smsServiceMock.Message);
            Assert.Equal(sendSms.MobileNumber, smsServiceMock.Receiver.Value);
        }
Ejemplo n.º 12
0
        public void Post_ReturnsActionResult_With400Status_For_Validation_Failure()
        {
            // assign
            Mock <ITwilioService> twilioServiceMock = new Mock <ITwilioService>();

            var smsController = new SmsController(twilioServiceMock.Object);

            SendMessageRequest smsMessageRequest = new SendMessageRequest
            {
                Message  = "hello world",
                MobileNo = "INVALID"
            };

            smsController.ModelState.AddModelError("MobileNo", "fakeError");

            // act
            var result = smsController.Post(smsMessageRequest);

            // assert
            var viewResult = Assert.IsType <BadRequestObjectResult>(result);

            Assert.Equal(400, viewResult.StatusCode);
        }