public void Test_EnablingUnsubscribe_text_html_bypass()
        {
            var mail = BasicMailBuilder
                       .EnableUnsubscribe(
                "If you would like to unsubscribe and stop receiving these emails click here: <% %>.",
                "If you would like to unsubscribe and stop receiving these emails <% click here %>.")
                       .Build();

            Assert.IsFalse(string.IsNullOrEmpty(mail.Header.JsonString()));
        }
        public void Test_AddHeader()
        {
            var mail = BasicMailBuilder
                       .AddHeader("X-TEST", "MAILBUILDER")
                       .Build();

            var message = new SendGridMessage();

            message.Headers.Add("X-TEST", "MAILBUILDER");
            Assert.IsTrue(mail.Headers.All(e => message.Headers.Contains(e)));
        }
        public void Test_Cc_email_display()
        {
            var mail = BasicMailBuilder
                       .Cc("*****@*****.**", "Jack Fetcher")
                       .Build();

            var message = new SendGridMessage();

            message.Cc = new MailAddress[] { new MailAddress("*****@*****.**", "Jack Fetcher") };
            CollectionAssert.AreEquivalent(message.Cc, mail.Cc);
        }
        public void Test_Bcc_email()
        {
            var mail = BasicMailBuilder
                       .Bcc("*****@*****.**")
                       .Build();

            var message = new SendGridMessage();

            message.Bcc = new MailAddress[] { new MailAddress("*****@*****.**") };
            CollectionAssert.AreEquivalent(message.Bcc, mail.Bcc);
        }
        public void Test_Cc_mailaddress()
        {
            var address = new MailAddress("*****@*****.**");
            var mail    = BasicMailBuilder
                          .Cc(address)
                          .Build();

            var message = new SendGridMessage();

            message.Cc = new MailAddress[] { address };
            CollectionAssert.AreEquivalent(message.Cc, mail.Cc);
        }
        public void Test_EnablingTemplate()
        {
            var mail = BasicMailBuilder
                       .EnableTemplate("<% body %>")
                       .Build();

            var message = new SendGridMessage();

            message.EnableTemplate("<% body %>");
            Assert.IsFalse(string.IsNullOrEmpty(message.Header.JsonString()));
            Assert.AreEqual(message.Header.JsonString(), mail.Header.JsonString());
        }
        public void Test_EnablingSpamCheck_2_url()
        {
            var mail = BasicMailBuilder
                       .EnableSpamCheck(score: 2, url: "http://spamcheck.example.com")
                       .Build();

            var message = new SendGridMessage();

            message.EnableSpamCheck(score: 2, url: "http://spamcheck.example.com");
            Assert.IsFalse(string.IsNullOrEmpty(message.Header.JsonString()));
            Assert.AreEqual(message.Header.JsonString(), mail.Header.JsonString());
        }
        public void Test_EnablingSpamCheck()
        {
            var mail = BasicMailBuilder
                       .EnableSpamCheck()
                       .Build();

            var message = new SendGridMessage();

            message.EnableSpamCheck();
            Assert.IsFalse(string.IsNullOrEmpty(message.Header.JsonString()));
            Assert.AreEqual(message.Header.JsonString(), mail.Header.JsonString());
        }
        public void Test_EnablingGoogleAnalytics()
        {
            var mail = BasicMailBuilder
                       .EnableGoogleAnalytics("source", "medium", "term", content: "content", campaign: "campaign")
                       .Build();

            var message = new SendGridMessage();

            message.EnableGoogleAnalytics("source", "medium", "term", content: "content", campaign: "campaign");
            Assert.IsFalse(string.IsNullOrEmpty(message.Header.JsonString()));
            Assert.AreEqual(message.Header.JsonString(), mail.Header.JsonString());
        }
        public void Test_EnablingFooter_text_html()
        {
            var mail = BasicMailBuilder
                       .EnableFooter(text: "text", html: "html")
                       .Build();

            var message = new SendGridMessage();

            message.EnableFooter(text: "text", html: "html");
            Assert.IsFalse(string.IsNullOrEmpty(message.Header.JsonString()));
            Assert.AreEqual(message.Header.JsonString(), mail.Header.JsonString());
        }
        public void Test_EnablingClickTracking_true()
        {
            var mail = BasicMailBuilder
                       .EnableClickTracking(true)
                       .Build();

            var message = new SendGridMessage();

            message.EnableClickTracking(true);
            Assert.IsFalse(string.IsNullOrEmpty(message.Header.JsonString()));
            Assert.AreEqual(message.Header.JsonString(), mail.Header.JsonString());
        }
        public void Test_EnablingBcc()
        {
            var mail = BasicMailBuilder
                       .EnableBcc("*****@*****.**")
                       .Build();

            var message = new SendGridMessage();

            message.EnableBcc("*****@*****.**");
            Assert.IsFalse(string.IsNullOrEmpty(message.Header.JsonString()));
            Assert.AreEqual(message.Header.JsonString(), mail.Header.JsonString());
        }
        public void Test_DisablingFooter()
        {
            var mail = BasicMailBuilder
                       .DisableFooter()
                       .Build();

            var message = new SendGridMessage();

            message.DisableFooter();
            Assert.IsFalse(string.IsNullOrEmpty(message.Header.JsonString()));
            Assert.AreEqual(message.Header.JsonString(), mail.Header.JsonString());
        }
        public void Test_EnablingUnsubscribe_replace()
        {
            var mail = BasicMailBuilder
                       .EnableUnsubscribe("replace")
                       .Build();

            var message = new SendGridMessage();

            message.EnableUnsubscribe("replace");
            Assert.IsFalse(string.IsNullOrEmpty(message.Header.JsonString()));
            Assert.AreEqual(message.Header.JsonString(), mail.Header.JsonString());
        }
        public void Test_SetCategory()
        {
            var category = "test";
            var mail     = BasicMailBuilder
                           .SetCategory(category)
                           .Build();

            var message = new SendGridMessage();

            message.SetCategory(category);
            Assert.IsFalse(string.IsNullOrEmpty(message.Header.JsonString()));
            Assert.AreEqual(message.Header.JsonString(), mail.Header.JsonString());
        }
        public void Test_AttachFile_filepath()
        {
            var filename = Path.GetTempFileName();
            var mail     = BasicMailBuilder
                           .AttachFile(filename)
                           .Build();

            var message = new SendGridMessage();

            message.AddAttachment(filename);
            CollectionAssert.AreEquivalent(message.Attachments, mail.Attachments);
            CollectionAssert.AreEquivalent(message.StreamedAttachments, mail.StreamedAttachments);
        }
        public void Test_IncludeUniqueArg()
        {
            var mail = BasicMailBuilder
                       .IncludeUniqueArg("key", "value")
                       .Build();

            var message = new SendGridMessage();

            message.AddUniqueArgs(new Dictionary <string, string>()
            {
                { "key", "value" }
            });
            Assert.IsFalse(string.IsNullOrEmpty(message.Header.JsonString()));
            Assert.AreEqual(message.Header.JsonString(), mail.Header.JsonString());
        }
        public void Test_AddHeaders()
        {
            var mail = BasicMailBuilder
                       .AddHeaders(new Dictionary <string, string>()
            {
                { "X-TEST", "MAILBUILDER" },
                { "X-TEST-2", "SENDGRID" }
            })
                       .Build();

            var message = new SendGridMessage();

            message.Headers.Add("X-TEST", "MAILBUILDER");
            message.Headers.Add("X-TEST-2", "SENDGRID");
            Assert.IsTrue(mail.Headers.All(e => message.Headers.Contains(e)));
        }
        public void Test_SetCategories()
        {
            var categories = new List <string>()
            {
                "test", "email"
            };
            var mail = BasicMailBuilder
                       .SetCategories(categories)
                       .Build();

            var message = new SendGridMessage();

            message.SetCategories(categories);
            Assert.IsFalse(string.IsNullOrEmpty(message.Header.JsonString()));
            Assert.AreEqual(message.Header.JsonString(), mail.Header.JsonString());
        }
        public void Test_Substitute()
        {
            var tag          = "{this}";
            var replacements = new List <string>()
            {
                "that", "that other", "and one other"
            };
            var mail = BasicMailBuilder
                       .Substitute(tag, replacements)
                       .Build();

            var message = new SendGridMessage();

            message.AddSubstitution(tag, replacements);
            Assert.IsFalse(string.IsNullOrEmpty(message.Header.JsonString()));
            Assert.AreEqual(message.Header.JsonString(), mail.Header.JsonString());
        }
        public void Test_EmbedImage_filepath_cid()
        {
            var filename = Path.GetTempFileName();
            var cid      = "*****@*****.**";
            var mail     = BasicMailBuilder
                           .EmbedImage(filename, cid)
                           .Build();

            var message = new SendGridMessage();

            message.AddAttachment(filename);
            message.EmbedImage(new FileInfo(filename).Name, cid);

            CollectionAssert.AreEquivalent(message.GetEmbeddedImages().ToList(), mail.GetEmbeddedImages().ToList());
            CollectionAssert.AreEquivalent(message.Attachments, mail.Attachments);
            CollectionAssert.AreEquivalent(message.StreamedAttachments, mail.StreamedAttachments);
        }
        public void Test_EnablingUnsubscribe_text_html()
        {
            var mail = BasicMailBuilder
                       .EnableUnsubscribe(
                "If you would like to unsubscribe and stop receiving these emails click here: <% %>.",
                "If you would like to unsubscribe and stop receiving these emails click <% here %>.")
                       .Build();

            var message = new SendGridMessage();

            message.EnableUnsubscribe(
                "If you would like to unsubscribe and stop receiving these emails click here: <% %>.",
                "If you would like to unsubscribe and stop receiving these emails click <% here %>.");

            Assert.IsFalse(string.IsNullOrEmpty(message.Header.JsonString()));
            Assert.AreEqual(message.Header.JsonString(), mail.Header.JsonString());
        }
        public void Test_AttachFile_attachment()
        {
            var filename   = Path.GetTempFileName();
            var attachment = new Attachment(filename);
            var mail       = BasicMailBuilder
                             .AttachFile(attachment)
                             .Build();

            var message = new SendGridMessage();

            message.AddAttachment(attachment.ContentStream, attachment.Name);
            Assert.AreEqual(1, message.StreamedAttachments.Count);
            Assert.AreEqual(1, mail.StreamedAttachments.Count);
            Assert.IsTrue(message.StreamedAttachments.ContainsKey(attachment.Name));
            Assert.IsTrue(mail.StreamedAttachments.ContainsKey(attachment.Name));
            Assert.AreEqual(message.StreamedAttachments[attachment.Name].Length, mail.StreamedAttachments[attachment.Name].Length);
        }
        public void Test_EmbedImage_linkedresource()
        {
            var filename       = Path.GetTempFileName();
            var attachment     = new Attachment(filename);
            var linkedResource = new LinkedResource(filename);

            var mail = BasicMailBuilder
                       .EmbedImage(linkedResource)
                       .Build();

            var message = new SendGridMessage();

            message.AddAttachment(attachment.ContentStream, attachment.Name);
            message.EmbedImage(linkedResource.ContentId, linkedResource.ContentId);
            CollectionAssert.AreEquivalent(message.GetEmbeddedImages().ToList(), mail.GetEmbeddedImages().ToList());
            Assert.AreEqual(1, message.StreamedAttachments.Count);
            Assert.AreEqual(1, mail.StreamedAttachments.Count);
            Assert.AreEqual(message.StreamedAttachments.First().Value.Length, mail.StreamedAttachments.First().Value.Length);
        }
        public void Test_Bcc_mailaddresscollection()
        {
            var netMailMessage = new MailMessage();

            netMailMessage.Bcc.Add("[email protected],[email protected],[email protected]");

            var mail = BasicMailBuilder
                       .Bcc(netMailMessage.Bcc)
                       .Build();

            var message = new SendGridMessage();

            message.Bcc = new MailAddress[] {
                netMailMessage.Bcc[0],
                netMailMessage.Bcc[1],
                netMailMessage.Bcc[2],
            };
            CollectionAssert.AreEquivalent(message.Bcc, mail.Bcc);
        }
        public void Test_Cc_mailaddresscollection()
        {
            var netMailMessage = new MailMessage();

            netMailMessage.CC.Add("[email protected],[email protected],[email protected]");

            var mail = BasicMailBuilder
                       .Cc(netMailMessage.CC)
                       .Build();

            var message = new SendGridMessage();

            message.Cc = new MailAddress[] {
                netMailMessage.CC[0],
                netMailMessage.CC[1],
                netMailMessage.CC[2],
            };
            CollectionAssert.AreEquivalent(message.Cc, mail.Cc);
        }
        public void Test_Cc_listmailaddress()
        {
            var addresses = new List <MailAddress>()
            {
                new MailAddress("*****@*****.**"),
                new MailAddress("*****@*****.**")
            };
            var mail = BasicMailBuilder
                       .Cc(addresses)
                       .Build();

            var message = new SendGridMessage();

            message.Cc = new MailAddress[] {
                addresses[0],
                addresses[1]
            };
            CollectionAssert.AreEquivalent(message.Cc, mail.Cc);
        }
        public void Test_Cc_liststring()
        {
            var addresses = new List <string>()
            {
                "*****@*****.**",
                "*****@*****.**"
            };

            var mail = BasicMailBuilder
                       .Cc(addresses)
                       .Build();

            var message = new SendGridMessage();

            message.Cc = new MailAddress[] {
                new MailAddress(addresses[0]),
                new MailAddress(addresses[1])
            };
            CollectionAssert.AreEquivalent(message.Cc, mail.Cc);
        }
        public void Test_AttachFile_listattachment()
        {
            var filenames = new string[] { Path.GetTempFileName(), Path.GetTempFileName() };
            List <Attachment> attachments = filenames.ToList().ConvertAll <Attachment>((x) => { return(new Attachment(x)); });
            var mail = BasicMailBuilder
                       .AttachFiles(attachments)
                       .Build();

            var message = new SendGridMessage();

            message.AddAttachment(attachments[0].ContentStream, attachments[0].Name);
            message.AddAttachment(attachments[1].ContentStream, attachments[1].Name);
            Assert.AreEqual(2, message.StreamedAttachments.Count);
            Assert.AreEqual(2, mail.StreamedAttachments.Count);
            Assert.IsTrue(message.StreamedAttachments.ContainsKey(attachments[0].Name));
            Assert.IsTrue(message.StreamedAttachments.ContainsKey(attachments[1].Name));
            Assert.IsTrue(mail.StreamedAttachments.ContainsKey(attachments[0].Name));
            Assert.IsTrue(mail.StreamedAttachments.ContainsKey(attachments[1].Name));
            Assert.AreEqual(message.StreamedAttachments[attachments[0].Name].Length, mail.StreamedAttachments[attachments[0].Name].Length);
            Assert.AreEqual(message.StreamedAttachments[attachments[1].Name].Length, mail.StreamedAttachments[attachments[1].Name].Length);
        }
        public void Test_EmbedImage_linkedresourcecollection()
        {
            var filename   = Path.GetTempFileName();
            var attachment = new Attachment(filename);
            var av         = AlternateView.CreateAlternateViewFromString("Testing");

            av.LinkedResources.Add(new LinkedResource(filename));

            var mail = BasicMailBuilder
                       .EmbedImages(av.LinkedResources)
                       .Build();

            var message = new SendGridMessage();

            message.AddAttachment(attachment.ContentStream, attachment.Name);
            message.EmbedImage(av.LinkedResources[0].ContentId, av.LinkedResources[0].ContentId);
            CollectionAssert.AreEquivalent(message.GetEmbeddedImages().ToList(), mail.GetEmbeddedImages().ToList());
            Assert.AreEqual(1, message.StreamedAttachments.Count);
            Assert.AreEqual(1, mail.StreamedAttachments.Count);
            Assert.AreEqual(message.StreamedAttachments.First().Value.Length, mail.StreamedAttachments.First().Value.Length);
        }