コード例 #1
0
        public async void ContactPostAfterSendingMailWillRedirectToContactSentAction()
        {
            // Arrange
            var homeController = new HomeController(Mock.Of<IJournalRepository>(), Mock.Of<IMailSender>(), new ContactSettings(), Mock.Of<IUserProfileRepository>(), Mock.Of<IAuthentication>());

            // Act
            var actionResult = (RedirectToRouteResult)await homeController.Contact(new ContactViewModel());

            // Assert
            Assert.Equal("Home", actionResult.RouteValues["controller"]);
            Assert.Equal("ContactSent", actionResult.RouteValues["action"]);
        }
コード例 #2
0
        public void ContactPostWithInvalidModelStateWillNotSendMail()
        {
            // Arrange
            var mailSenderMock = new Mock<IMailSender>();
            var homeController = new HomeController(Mock.Of<IJournalRepository>(), mailSenderMock.Object, new ContactSettings(), Mock.Of<IUserProfileRepository>(), Mock.Of<IAuthentication>());
            homeController.ModelState.AddModelError("key", "error message");

            // Act
            homeController.Contact(new ContactViewModel());

            // Assert
            mailSenderMock.Verify(m => m.Send(It.IsAny<MailMessage>()), Times.Never());
        }
コード例 #3
0
        public async void ContactPostWithErrorInMailSenderReturnsViewWithModelError()
        {
            // Arrange
            var mailSenderMock = new Mock<IMailSender>();
            mailSenderMock.Setup(m => m.Send(It.IsAny<MailMessage>())).Throws<InvalidOperationException>();

            var homeController = new HomeController(Mock.Of<IJournalRepository>(), mailSenderMock.Object, new ContactSettings(), Mock.Of<IUserProfileRepository>(), Mock.Of<IAuthentication>());

            // Act
            await homeController.Contact(new ContactViewModel());

            // Assert
            Assert.False(homeController.ModelState.IsValid);
        }
コード例 #4
0
        public async void ContactPostWithValidModelStateWillSendMailMessage()
        {
            // Arrange
            var mailSenderMock = new Mock<IMailSender>();
            var homeController = new HomeController(Mock.Of<IJournalRepository>(), mailSenderMock.Object, CreateContactSettings(), Mock.Of<IUserProfileRepository>(), Mock.Of<IAuthentication>());

            // Act
            await homeController.Contact(CreateContactViewModel());

            // Assert
            mailSenderMock.Verify(m => m.Send(It.Is<MailMessage>(a =>
                                                                 a.Subject == ContactFormSubject &&
                                                                 a.Body == ContactFormMessage &&
                                                                 a.To[0].Address == ContactFormTo &&
                                                                 a.Sender.Address == ContactFormEmail &&
                                                                 a.Sender.DisplayName == ContactName)));
        }
コード例 #5
0
        public async void ContactPostWithInvalidModelStateWillRenderView()
        {
            // Arrange
            var homeController = new HomeController(Mock.Of<IJournalRepository>(), Mock.Of<IMailSender>(), new ContactSettings(), Mock.Of<IUserProfileRepository>(), Mock.Of<IAuthentication>());
            homeController.ModelState.AddModelError("key", "error message");

            // Act
            var actionResult = await homeController.Contact(new ContactViewModel());

            // Assert
            Assert.IsType<ViewResult>(actionResult);
        }