public void SendAnEmailToTheCorrectEmail() { var emailSender = Substitute.For <IEmailSender>(); var messageFactory = Substitute.For <IMessageFactory>(); var fileContentsProvider = Substitute.For <IFileContentsProvider>(); var sender = new ResetPasswordEmailSender(emailSender, messageFactory, fileContentsProvider); sender.SendEmail("htmlTemplatePath", "textTemplatePath", "*****@*****.**", "http://reset/Password.Url"); messageFactory.Received() .Create(Arg.Any <MailAddress>(), new MailAddress("*****@*****.**"), Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()); }
public void LoadTheTextContentsOfTheEmail_FromTheSpecifiedTextTemplatePath() { var emailSender = Substitute.For <IEmailSender>(); var messageFactory = Substitute.For <IMessageFactory>(); var fileContentsProvider = Substitute.For <IFileContentsProvider>(); var sender = new ResetPasswordEmailSender(emailSender, messageFactory, fileContentsProvider); fileContentsProvider.GetFileContents(null).ReturnsForAnyArgs("file contents"); sender.SendEmail("htmlTemplatePath", "textTemplatePath", "*****@*****.**", "http://reset/Password.Url"); fileContentsProvider.Received().GetFileContents("textTemplatePath"); }
public void SubstituteTheResetPasswordLink_IntoTheTextTemplate() { var emailSender = Substitute.For <IEmailSender>(); var messageFactory = Substitute.For <IMessageFactory>(); var fileContentsProvider = Substitute.For <IFileContentsProvider>(); var sender = new ResetPasswordEmailSender(emailSender, messageFactory, fileContentsProvider); const string contentTemplate = "test {0} email"; string content = string.Format(contentTemplate, ResetPasswordEmailSender.ResetLinkToken); fileContentsProvider.GetFileContents("textTemplatePath").ReturnsForAnyArgs(content); const string resetPasswordUrl = "http://reset/Password.Url"; sender.SendEmail("htmlTemplatePath", "textTemplatePath", "*****@*****.**", resetPasswordUrl); string expectedContent = string.Format(contentTemplate, resetPasswordUrl); messageFactory.Received() .Create(Arg.Any <MailAddress>(), Arg.Any <MailAddress>(), Arg.Any <string>(), Arg.Any <string>(), expectedContent); }