1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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);
}
}
}
}
|