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"]); }
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()); }
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); }
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))); }
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); }