예제 #1
0
        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);
            }
        }
예제 #3
0
        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>();
        }