Example #1
0
 public async Task SendMailMessageAsynchronously()
 {
     var mailProvider = MailProviderFactory.GetProvider();
     await mailProvider.SendAsync(new MailMessage("*****@*****.**", "*****@*****.**")
     {
         Subject = "Some subject",
         Body    = "Some message"
     });
 }
Example #2
0
        public void SendMailMessage()
        {
            var mailProvider = MailProviderFactory.GetProvider();

            mailProvider.Send(new MailMessage("*****@*****.**", "*****@*****.**")
            {
                Subject = "Some subject",
                Body    = "Some message"
            });
        }
Example #3
0
        /// <summary>
        /// Asynschronously sends an email to a user.
        /// </summary>
        /// <param name="message">The message to send.</param>
        /// <returns>The task representing the asynchronous operation.</returns>
        public Task SendAsync(IdentityMessage message)
        {
            var mailProvider = MailProviderFactory.GetProvider();
            var mail         = new MailMessage();

            mail.To.Add(message.Destination);
            mail.Subject = message.Subject;
            mail.Body    = message.Body;

            return(mailProvider.SendAsync(mail));
        }
        public void ShouldThrowWhenInvalidNumberIsGiven()
        {
            // Arrange

            var mapper        = Substitute.For <IMapper>();
            var configuration = Substitute.For <IConfigurationLoader>();

            configuration.GetConfiguration().Returns(new Dictionary <string, string>());
            var factory = new MailProviderFactory();

            // Act / Assert

            Should.Throw <ArgumentOutOfRangeException>(() => factory.GetProvider(configuration, mapper, (Provider)100));
        }
        public void ShouldThrowWhenMailProviderKeyDoesNotExist()
        {
            // Arrange

            var mapper        = Substitute.For <IMapper>();
            var configuration = Substitute.For <IConfigurationLoader>();

            configuration.GetConfiguration().Returns(new Dictionary <string, string>());

            var factory = new MailProviderFactory();

            // Act / Assert

            Should.Throw <InvalidOperationException>(() => factory.GetProvider(configuration, mapper));
        }
        public void ShouldThrowWhenUnknownProviderIsGiven()
        {
            // Arrange

            var mapper        = Substitute.For <IMapper>();
            var configuration = Substitute.For <IConfigurationLoader>();

            configuration.GetConfiguration().Returns(new Dictionary <string, string>()
            {
                { "MailProvider", "NotARealProvider" }
            });

            var factory = new MailProviderFactory();

            // Act / Assert

            Should.Throw <ArgumentException>(() => factory.GetProvider(configuration, mapper));
        }
        public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequestMessage req, TraceWriter log)
        {
            // Composition root.

            IMailProviderFactory factory       = new MailProviderFactory();
            IConfigurationLoader configuration = new ConfigurationLoader();
            IMapper mapper = null;

            var config = configuration.GetConfiguration();

            if (!config.ContainsKey("MailProvider"))
            {
                return(req.CreateErrorResponse(HttpStatusCode.InternalServerError, "Mail Provider not configured."));
            }

            log.Info($"Using \"{configuration.GetConfiguration()["MailProvider"]}\" provider.");
            var provider = factory.GetProvider(configuration, mapper);

            return(req.CreateResponse(HttpStatusCode.OK));
        }
        public void ShouldReturnCorrectProvider()
        {
            // Arrange

            var mapper        = Substitute.For <IMapper>();
            var configuration = Substitute.For <IConfigurationLoader>();

            configuration.GetConfiguration().Returns(new Dictionary <string, string>()
            {
                { "MailProvider", "SendGrid" }
            });

            var factory = new MailProviderFactory();

            // Act

            var provider = factory.GetProvider(configuration, mapper);

            // Assert

            provider.ShouldNotBeNull();
            provider.ShouldBeOfType <SendGridProvider>();
        }
Example #9
0
        public void GetMailProviderTest()
        {
            var mailProvider = MailProviderFactory.GetProvider();

            Assert.IsNotNull(mailProvider, "Mail provider is null.");
        }