summaryrefslogtreecommitdiffstats
path: root/SendGrid/Tests/Transport/TestSMTP.cs
diff options
context:
space:
mode:
Diffstat (limited to 'SendGrid/Tests/Transport/TestSMTP.cs')
-rwxr-xr-xSendGrid/Tests/Transport/TestSMTP.cs68
1 files changed, 68 insertions, 0 deletions
diff --git a/SendGrid/Tests/Transport/TestSMTP.cs b/SendGrid/Tests/Transport/TestSMTP.cs
new file mode 100755
index 0000000..e0e4fe5
--- /dev/null
+++ b/SendGrid/Tests/Transport/TestSMTP.cs
@@ -0,0 +1,68 @@
+using System;
+using System.Net;
+using System.Net.Mail;
+using Moq;
+using NUnit.Framework;
+using SendGridMail;
+using SendGridMail.Transport;
+
+namespace Tests.Transport
+{
+ [TestFixture]
+ public class TestSMTP
+ {
+ [Test]
+ public void TestDeliver()
+ {
+ var mockMessage = new Mock<ISendGrid>();
+ var mime = new MailMessage("test-from@sendgrid.com", "test-to@sendgrid.com", "this is a test", "it is only a test");
+ mockMessage.Setup(foo => foo.CreateMimeMessage()).Returns(mime);
+ var message = mockMessage.Object;
+
+ var mockClient = new Mock<SMTP.ISmtpClient>();
+ mockClient.Setup(foo => foo.Send(mime));
+ var client = mockClient.Object;
+ var credentials = new NetworkCredential("username", "password");
+ var test = SMTP.GenerateInstance(client, credentials);
+ test.Deliver(message);
+
+ mockClient.Verify(foo => foo.Send(mime), Times.Once());
+ mockMessage.Verify(foo => foo.CreateMimeMessage(), Times.Once());
+ }
+
+ [Test]
+ public void TestConstructor()
+ {
+ //Test on defaults of port 25 and
+ var mock = new Mock<SMTP.ISmtpClient>();
+ mock.SetupProperty(foo => foo.EnableSsl);
+ var client = mock.Object;
+ var credentials = new NetworkCredential("username", "password");
+ var test = SMTP.GenerateInstance(client, credentials);
+ mock.Verify(foo => foo.EnableSsl, Times.Never());
+
+ mock = new Mock<SMTP.ISmtpClient>();
+ mock.SetupProperty(foo => foo.EnableSsl);
+ client = mock.Object;
+ credentials = new NetworkCredential("username", "password");
+ test = SMTP.GenerateInstance(client, credentials, port:SMTP.SslPort);
+ mock.VerifySet(foo => foo.EnableSsl = true);
+
+ mock = new Mock<SMTP.ISmtpClient>();
+ mock.SetupProperty(foo => foo.EnableSsl);
+ client = mock.Object;
+ credentials = new NetworkCredential("username", "password");
+ try
+ {
+ test = SMTP.GenerateInstance(client, credentials, port: SMTP.TlsPort);
+ Assert.Fail("should have thrown an unsupported port exception");
+ }
+ catch (NotSupportedException ex)
+ {
+ Assert.AreEqual("TLS not supported", ex.Message);
+ }
+
+
+ }
+ }
+}