public void ForgotUserPasswordCommandHandler_Does_Nothing_For_Nonexistent_User() { var handler = new ForgotUserPasswordCommandHandler(_repository, _mailClient, new PasswordResetMailTemplate(_appSettings)); var command = new ForgotUserPasswordCommand("*****@*****.**"); var result = handler.Execute(command); result.Success.Should().BeTrue(); _mailClient.SentMessages.Should().BeEmpty(); }
public void ForgotUserPasswordCommandHandler_Succeeds() { var handler = new ForgotUserPasswordCommandHandler(_repository, _mailClient, new PasswordResetMailTemplate(_appSettings)); var command = new ForgotUserPasswordCommand("*****@*****.**"); var user = Substitute.For <User>(); user.Email.Returns("*****@*****.**"); user.Password.Returns(new Password("test")); user.Status.Returns(UserStatus.Active); _context.Users.Add(user); var result = handler.Execute(command); result.Success.Should().BeTrue(); user.Received().GeneratePasswordResetToken(); user.DidNotReceive().PasswordResetRequestFailed(); }
public void ForgotUserPasswordCommandHandler_Sends_Email() { var handler = new ForgotUserPasswordCommandHandler(_repository, _mailClient, new PasswordResetMailTemplate(_appSettings)); var command = new ForgotUserPasswordCommand("*****@*****.**"); var user = Substitute.For <User>(); user.Email.Returns("*****@*****.**"); user.Password.Returns(new Password("test")); user.Status.Returns(UserStatus.Active); _context.Users.Add(user); handler.Execute(command); _mailClient.SentMessages.Should().HaveCount(1); _mailClient.SentMessages[0].Subject.Should().Be("Your password reset request"); _mailClient.SentMessages[0].To.Should().Be("*****@*****.**"); }