public async Task NullMailer_MailerFromFactory_WithSafetySettings() { var factory = new MailerFactory(null, null); factory.AddSafetyMailer <NullMailer, NullMailerSettings>( new SafetyMailerSettings() { SafeRecipientEmailAddress = "*****@*****.**", }, _mailerSettings); var mailer = factory.GetMailer(); mailer.AddMessage(new MailerMessage() .To("*****@*****.**") .From(_mailerSettings.FromEmailAddress, _mailerSettings.FromDisplayName) .WithSubject("Some Topic") .WithBody <ContentBody>(b => b.PlainTextContent = "something")); var results = await mailer.SendAllAsync(); var recipient = results .Should() .HaveCount(1) .And.Subject.First(); recipient.ToDisplayName .Should().NotBeNullOrWhiteSpace() .And.Be("(safe) [email protected] [[email protected]]"); recipient.ToEmailAddress .Should().NotBeNullOrWhiteSpace() .And.Be("*****@*****.**"); }
public FactoryMailFixture() { var loggerFactory = new LoggerFactory(new[] { new DebugLoggerProvider() }, new LoggerFilterOptions() { MinLevel = LogLevel.Debug }); Mail = new MailerFactory(loggerFactory, Store); var mkSettings = SetupMailerOptions(out bool isMailServerAlive).Value; if (isMailServerAlive) { Mail.AddMkSmtpMailer(mkSettings); } else { SmtpClient GetClientFunc() { var c = Substitute.For <SmtpClient>(); c.SendAsync(Arg.Any <MimeMessage>(), Arg.Any <CancellationToken>()) .Returns(Task.CompletedTask); return(c); } Mail.AddMkSmtpMailer(GetClientFunc, mkSettings); } }
public FactoryMailFixture() { var loggerFactory = new LoggerFactory(); loggerFactory.AddDebug(LogLevel.Debug); Mail = new MailerFactory(loggerFactory, Store); var mkSettings = SetupMailerOptions(out bool isMailServerAlive).Value; if (isMailServerAlive) { Mail.AddMkSmtpMailer(mkSettings); } else { Func <SmtpClient> getClientFunc = () => { var c = Substitute.For <SmtpClient>(); c .SendAsync(Arg.Any <MimeMessage>(), Arg.Any <CancellationToken>()) .Returns(Task.CompletedTask); return(c); }; Mail.AddMkSmtpMailer(getClientFunc, mkSettings); } }
/// <summary> /// Registers a null mailer with the factory. /// </summary> /// <param name="factory">The factory.</param> /// <param name="mailerSettings">The mailer settings.</param> /// <param name="logger">The logger.</param> /// <param name="store">The store.</param> public static void AddNullMailer( this MailerFactory factory, NullMailerSettings mailerSettings, ILogger <NullMailer> logger = null, IHistoryStore store = null) { factory.Register <NullMailer, NullMailerSettings>(mailerSettings, logger ?? factory.DefaultLoggerFactory?.CreateLogger <NullMailer>(), factory.ConfigureHistoryStoreLogger(store)); }
public void Factory_Registrations_WithDefaultLoggerFactory() { var factory = new MailerFactory(new LoggerFactory()); factory.Register <NullMailer, NullMailerSettings>( new NullMailerSettings { ReplyToEmailAddress = "*****@*****.**" } ); var nm = factory.GetMailer().Should().BeOfType <NullMailer>().Which; nm.Settings.ReplyToEmailAddress.Should().Be("*****@*****.**"); nm.Logger.Should().BeAssignableTo <ILogger>().And.NotBeOfType <NullLogger>(); nm.HistoryStore.Should().BeOfType <NullHistoryStore>(); }
public void Factory_Registrations_Minimal() { var factory = new MailerFactory(); factory.Register <NullMailer, NullMailerSettings>( new NullMailerSettings { ReplyToEmailAddress = "*****@*****.**" } ); var nm = factory.GetMailer().Should().BeOfType <NullMailer>().Which; nm.Settings.ReplyToEmailAddress.Should().Be("*****@*****.**"); nm.Logger.Should().BeOfType <NullLogger>(); nm.HistoryStore.Should().BeOfType <NullHistoryStore>(); }
public void Factory_Registrations_ExplicitValues() { var factory = new MailerFactory(); factory.Register <NullMailer, NullMailerSettings>( new NullMailerSettings { ReplyToEmailAddress = "*****@*****.**" }, new LoggerFactory().CreateLogger(typeof(NullMailer)), new InMemoryHistoryStore() ); var nm = factory.GetMailer().Should().BeOfType <NullMailer>().Which; nm.Settings.ReplyToEmailAddress.Should().Be("*****@*****.**"); nm.Logger.Should().BeAssignableTo <ILogger>().And.NotBeOfType <NullLogger>(); nm.HistoryStore.Should().BeOfType <InMemoryHistoryStore>(); }
public void Factory_Registrations_WithSafetyMailerSettings() { var factory = new MailerFactory(new LoggerFactory()); factory.Register <SafetyMailer <NullMailer>, SafetyMailerSettings, NullMailer, NullMailerSettings>( new SafetyMailerSettings() { SafeRecipientEmailAddress = "*****@*****.**" }, new NullMailerSettings { ReplyToEmailAddress = "*****@*****.**" } ); var nm = factory.GetMailer().Should().BeOfType <SafetyMailer <NullMailer> >().Which; nm.Mailer.Settings.ReplyToEmailAddress.Should().Be("*****@*****.**"); nm.Mailer.Logger.Should().BeAssignableTo <ILogger>().And.NotBeOfType <NullLogger>(); nm.Mailer.HistoryStore.Should().BeOfType <NullHistoryStore>(); }