public void POST_Password_Reset_Email_Is_Sent_When_Valid_Email_Address_Is_Provided() { // Arrange User user = new UserBuilder().WithEmailAddress("*****@*****.**").Build(); var requestFormValues = new Dictionary <string, StringValues>(); requestFormValues.Add("GovUk_Text_EmailAddress", "*****@*****.**"); var controllerBuilder = new ControllerBuilder <PasswordResetController>(); var controller = controllerBuilder .WithRequestFormValues(requestFormValues) .WithDatabaseObjects(user) .WithMockUriHelper() .Build(); // Act controller.PasswordResetPost(new PasswordResetViewModel()); // Assert Assert.AreEqual(1, controllerBuilder.EmailsSent.Count); var email = controllerBuilder.EmailsSent.FirstOrDefault(); Assert.NotNull(email); Assert.AreEqual(EmailTemplates.SendResetPasswordVerificationEmail, email.TemplateId); Assert.AreEqual(user.EmailAddress, email.EmailAddress); }
public void POST_Verification_Email_Is_Sent_After_Creating_User_Account() { // Arrange var requestFormValues = new Dictionary <string, StringValues>(); requestFormValues.Add("GovUk_Text_EmailAddress", "*****@*****.**"); requestFormValues.Add("GovUk_Text_ConfirmEmailAddress", "*****@*****.**"); requestFormValues.Add("GovUk_Text_FirstName", "Test"); requestFormValues.Add("GovUk_Text_LastName", "Example"); requestFormValues.Add("GovUk_Text_JobTitle", "Tester"); requestFormValues.Add("GovUk_Text_Password", "Pa55word"); requestFormValues.Add("GovUk_Text_ConfirmPassword", "Pa55word"); requestFormValues.Add("GovUk_Checkbox_SendUpdates", "true"); requestFormValues.Add("GovUk_Checkbox_AllowContact", "false"); var controllerBuilder = new ControllerBuilder <AccountCreationController>(); var controller = controllerBuilder .WithRequestFormValues(requestFormValues) .WithMockUriHelper() .Build(); // Act var response = (ViewResult)controller.CreateUserAccountPost(new CreateUserAccountViewModel()); // Assert Assert.AreEqual("ConfirmEmailAddress", response.ViewName); Assert.AreEqual(1, controllerBuilder.EmailsSent.Count); NotifyEmail emailSent = controllerBuilder.EmailsSent[0]; Assert.AreEqual("*****@*****.**", emailSent.EmailAddress); Assert.AreEqual(EmailTemplates.AccountVerificationEmail, emailSent.TemplateId); }
public void POST_Password_Reset_Email_Is_Not_Sent_When_One_Has_Been_Sent_Within_Last_10_Minutes() { // Arrange User user = new UserBuilder().WithEmailAddress("*****@*****.**").WithPasswordResetCode("code", VirtualDateTime.Now.AddMinutes(-2)).Build(); var requestFormValues = new Dictionary <string, StringValues>(); requestFormValues.Add("GovUk_Text_EmailAddress", "*****@*****.**"); var controllerBuilder = new ControllerBuilder <PasswordResetController>(); var controller = controllerBuilder .WithRequestFormValues(requestFormValues) .WithDatabaseObjects(user) .WithMockUriHelper() .Build(); // Act Assert.Throws <UserRecentlySentPasswordResetEmailWithoutChangingPasswordException>(() => controller.PasswordResetPost(new PasswordResetViewModel())); }
public void POST_Password_Reset_Email_Is_Not_Sent_When_There_Is_No_User_With_Email_Address_Provided() { // Arrange User user = new UserBuilder().WithEmailAddress("*****@*****.**").Build(); var requestFormValues = new Dictionary <string, StringValues>(); requestFormValues.Add("GovUk_Text_EmailAddress", "*****@*****.**"); var controllerBuilder = new ControllerBuilder <PasswordResetController>(); var controller = controllerBuilder .WithRequestFormValues(requestFormValues) .WithDatabaseObjects(user) .WithMockUriHelper() .Build(); // Act controller.PasswordResetPost(new PasswordResetViewModel()); // Assert Assert.IsEmpty(controllerBuilder.EmailsSent); }