public void Should_send_forgotten_password_email_when_email_address_exists() { MailMessage forgottenPasswordEmail = new MailMessage(); MockRepository mocks = new MockRepository(); ISystemUser user = mocks.CreateMock <ISystemUser>(); IForgottenPasswordMailFactory mailFactory = mocks.CreateMock <IForgottenPasswordMailFactory>(); ISystemUserRepository repository = mocks.CreateMock <ISystemUserRepository>(); IEncryptionEngine encryptionEngine = mocks.CreateMock <IEncryptionEngine>(); IMailSender sender = mocks.CreateMock <IMailSender>(); using (mocks.Record()) { Expect.Call(repository.GetByEmailAddress("*****@*****.**")).Return(user); Expect.Call(user.Password).Return("encryptedPassword"); Expect.Call(encryptionEngine.Decrypt("encryptedPassword")).Return("clearTextPassword"); Expect.Call(mailFactory.CreateEmail("*****@*****.**", "clearTextPassword")).Return(forgottenPasswordEmail); sender.SendMail(forgottenPasswordEmail); } using (mocks.Playback()) { IForgottenPasswordMailer mailer = new ForgottenPasswordMailer(encryptionEngine, mailFactory, sender); bool emailWasSent = mailer.SendForgottenPasswordEmail("*****@*****.**", repository); Assert.That(emailWasSent); } mocks.VerifyAll(); }
public void Should_not_send_forgotten_password_email_when_email_address_does_not_exist() { MockRepository mocks = new MockRepository(); ISystemUserRepository repository = mocks.CreateMock <ISystemUserRepository>(); using (mocks.Record()) { Expect.Call(repository.GetByEmailAddress("*****@*****.**")).Return(null); } using (mocks.Playback()) { IForgottenPasswordMailer mailer = new ForgottenPasswordMailer(null, null, null); bool emailWasSent = mailer.SendForgottenPasswordEmail("*****@*****.**", repository); Assert.That(emailWasSent, Is.False); } mocks.VerifyAll(); }