public void TestThat_ResetPassword_SendsAnEmailToTheUser_WhenAValidUserIsFound_FromAnEmailAddress() { var userProfileRepository = Substitute.For <IUserProfileRepository>(); userProfileRepository.GetUserProfileByEmailAddress("*****@*****.**").Returns(new UserProfile { UserName = "******", EmailAddress = "*****@*****.**" }); var resetPasswordEmailSender = Substitute.For <IResetPasswordEmailSender>(); var controller = new ResetPasswordController(userProfileRepository, Substitute.For <IResetPasswordThingy>(), resetPasswordEmailSender); controller.SetupWithHttpContextAndUrlHelper(); var model = new ResetPasswordStepOneModel { EmailAddress = "*****@*****.**" }; controller.ResetPassword(model); resetPasswordEmailSender.Received().SendEmail(Arg.Any <string>(), Arg.Any <string>(), "*****@*****.**", Arg.Any <string>()); }
public void TestThat_ResetPassword_GeneratesAPasswordResetTokenForTheUser_WhenAValidUserIsFound_FromAUserName() { var userProfileRepository = Substitute.For <IUserProfileRepository>(); userProfileRepository.GetUserProfileByUserName("bob").Returns(new UserProfile { UserName = "******", EmailAddress = "*****@*****.**" }); var resetPasswordThingy = Substitute.For <IResetPasswordThingy>(); var controller = new ResetPasswordController(userProfileRepository, resetPasswordThingy, Substitute.For <IResetPasswordEmailSender>()); controller.SetupWithHttpContextAndUrlHelper(); var model = new ResetPasswordStepOneModel { UserName = "******" }; controller.ResetPassword(model); resetPasswordThingy.Received().GeneratePasswordResetToken("bob", Arg.Any <int>()); }