summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-x[-rw-r--r--].gitignore5
-rwxr-xr-xSendGrid/Example/Example.csproj6
-rwxr-xr-xSendGrid/Example/Program.cs1
-rwxr-xr-xSendGrid/SendGrid.sln2
-rwxr-xr-xSendGrid/SendGrid/Transport/ITransport.cs14
-rwxr-xr-xSendGrid/SendGridMail/Header.cs (renamed from SendGrid/SendGrid/Header.cs)2
-rwxr-xr-xSendGrid/SendGridMail/IHeader.cs (renamed from SendGrid/SendGrid/IHeader.cs)2
-rwxr-xr-xSendGrid/SendGridMail/ISendGrid.cs (renamed from SendGrid/SendGrid/ISendGrid.cs)2
-rwxr-xr-xSendGrid/SendGridMail/Mail.csproj (renamed from SendGrid/SendGrid/Mail.csproj)4
-rwxr-xr-xSendGrid/SendGridMail/Properties/AssemblyInfo.cs (renamed from SendGrid/SendGrid/Properties/AssemblyInfo.cs)6
-rwxr-xr-xSendGrid/SendGridMail/SendGrid.cs (renamed from SendGrid/SendGrid/SendGrid.cs)12
-rwxr-xr-xSendGrid/SendGridMail/Transport/ITransport.cs14
-rwxr-xr-xSendGrid/SendGridMail/Transport/REST.cs (renamed from SendGrid/SendGrid/Transport/REST.cs)4
-rwxr-xr-xSendGrid/SendGridMail/Transport/SMTP.cs (renamed from SendGrid/SendGrid/Transport/SMTP.cs)21
-rwxr-xr-xSendGrid/Tests/TestHeader.cs4
-rwxr-xr-xSendGrid/Tests/TestSendgridMessageSetup.cs19
-rwxr-xr-xSendGrid/Tests/Tests.csproj3
-rwxr-xr-xSendGrid/Tests/Transport/TestSMTP.cs8
18 files changed, 94 insertions, 35 deletions
diff --git a/.gitignore b/.gitignore
index 0a733fc..1b9d523 100644..100755
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,8 @@ SendGrid/SendGrid/obj/
SendGrid/Tests/bin/
SendGrid/Tests/obj/
SendGrid/_ReSharper.SendGrid/
+SendGrid/Example/bin/
+SendGrid/Example/obj/
+SendGrid/*/bin/
+SendGrid/*/obj/
+SendGrid/*.suo \ No newline at end of file
diff --git a/SendGrid/Example/Example.csproj b/SendGrid/Example/Example.csproj
index 8ce66d2..7272179 100755
--- a/SendGrid/Example/Example.csproj
+++ b/SendGrid/Example/Example.csproj
@@ -47,6 +47,12 @@
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\SendGridMail\Mail.csproj">
+ <Project>{3C687BEF-FF50-44AD-8315-2D4237281AF8}</Project>
+ <Name>Mail</Name>
+ </ProjectReference>
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/SendGrid/Example/Program.cs b/SendGrid/Example/Program.cs
index abf67f0..dde4452 100755
--- a/SendGrid/Example/Program.cs
+++ b/SendGrid/Example/Program.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Net.Mail;
using System.Text;
+using SendGrid.Transport;
namespace Example
{
diff --git a/SendGrid/SendGrid.sln b/SendGrid/SendGrid.sln
index 9b0b5b6..cf551e2 100755
--- a/SendGrid/SendGrid.sln
+++ b/SendGrid/SendGrid.sln
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mail", "SendGrid\Mail.csproj", "{3C687BEF-FF50-44AD-8315-2D4237281AF8}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mail", "SendGridMail\Mail.csproj", "{3C687BEF-FF50-44AD-8315-2D4237281AF8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "Tests\Tests.csproj", "{0319E73A-7039-4858-B047-1EDF88BB6BD1}"
EndProject
diff --git a/SendGrid/SendGrid/Transport/ITransport.cs b/SendGrid/SendGrid/Transport/ITransport.cs
deleted file mode 100755
index 3f29f14..0000000
--- a/SendGrid/SendGrid/Transport/ITransport.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-namespace SendGrid.Transport
-{
- /// <summary>
- ///
- /// </summary>
- public interface ITransport
- {
- /// <summary>
- ///
- /// </summary>
- /// <param name="message"></param>
- void Deliver(ISendGrid message);
- }
-}
diff --git a/SendGrid/SendGrid/Header.cs b/SendGrid/SendGridMail/Header.cs
index 13f4e90..2af4acd 100755
--- a/SendGrid/SendGrid/Header.cs
+++ b/SendGrid/SendGridMail/Header.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Net.Mail;
using System.Text;
-namespace SendGrid
+namespace SendGridMail
{
public class Header : IHeader
{
diff --git a/SendGrid/SendGrid/IHeader.cs b/SendGrid/SendGridMail/IHeader.cs
index 6756ed5..a9464ed 100755
--- a/SendGrid/SendGrid/IHeader.cs
+++ b/SendGrid/SendGridMail/IHeader.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Net.Mail;
using System.Text;
-namespace SendGrid
+namespace SendGridMail
{
public interface IHeader
{
diff --git a/SendGrid/SendGrid/ISendGrid.cs b/SendGrid/SendGridMail/ISendGrid.cs
index 9a9d2c2..e8e5fb2 100755
--- a/SendGrid/SendGrid/ISendGrid.cs
+++ b/SendGrid/SendGridMail/ISendGrid.cs
@@ -6,7 +6,7 @@ using System.Net.Mail;
using System.Net.Mime;
using System.Text;
-namespace SendGrid
+namespace SendGridMail
{
public enum TransportType
{
diff --git a/SendGrid/SendGrid/Mail.csproj b/SendGrid/SendGridMail/Mail.csproj
index 2c2a642..b5a9a9d 100755
--- a/SendGrid/SendGrid/Mail.csproj
+++ b/SendGrid/SendGridMail/Mail.csproj
@@ -8,8 +8,8 @@
<ProjectGuid>{3C687BEF-FF50-44AD-8315-2D4237281AF8}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>SendGrid</RootNamespace>
- <AssemblyName>SendGrid</AssemblyName>
+ <RootNamespace>SendGridMail</RootNamespace>
+ <AssemblyName>SendGridMail</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
diff --git a/SendGrid/SendGrid/Properties/AssemblyInfo.cs b/SendGrid/SendGridMail/Properties/AssemblyInfo.cs
index 9d0b25e..0cefaba 100755
--- a/SendGrid/SendGrid/Properties/AssemblyInfo.cs
+++ b/SendGrid/SendGridMail/Properties/AssemblyInfo.cs
@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
-[assembly: AssemblyTitle("SendGrid")]
+[assembly: AssemblyTitle("SendGridMail")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("SendGrid")]
+[assembly: AssemblyProduct("SendGridMail")]
[assembly: AssemblyCopyright("Copyright © 2012")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -22,6 +22,8 @@ using System.Runtime.InteropServices;
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("193fa200-8430-4206-aacd-2d2bb2dfa6cf")]
+[assembly: InternalsVisibleTo("Tests")]
+
// Version information for an assembly consists of the following four values:
//
// Major Version
diff --git a/SendGrid/SendGrid/SendGrid.cs b/SendGrid/SendGridMail/SendGrid.cs
index c49019f..33f809b 100755
--- a/SendGrid/SendGrid/SendGrid.cs
+++ b/SendGrid/SendGridMail/SendGrid.cs
@@ -8,7 +8,7 @@ using System.Net.Mime;
using System.Runtime.InteropServices.ComTypes;
using System.Text;
-namespace SendGrid
+namespace SendGridMail
{
public class SendGrid : ISendGrid
{
@@ -86,6 +86,7 @@ namespace SendGrid
Html = html;
}
+ #region Properties
public MailAddress From
{
get
@@ -168,7 +169,9 @@ namespace SendGrid
public String Text { get; set; }
public TransportType Transport { get; set; }
+ #endregion
+ #region Methods for setting data
public void AddTo(String address)
{
var mailAddress = new MailAddress(address);
@@ -296,7 +299,9 @@ namespace SendGrid
{
throw new NotImplementedException();
}
+ #endregion
+ #region SMTP API Functions
public void DisableGravatar()
{
this.header.Disable(this._filters["Gravatar"]);
@@ -441,15 +446,16 @@ namespace SendGrid
{
this.header.Enable(this._filters["BypassListManagement"]);
}
+ #endregion
public MailMessage CreateMimeMessage()
{
String smtpapi = Header.AsJson();
if (!String.IsNullOrEmpty(smtpapi))
- this.message.Headers.Add("X-SmtpApi", "{" + smtpapi + "}");
+ message.Headers.Add("X-SmtpApi", "{" + smtpapi + "}");
- return this.message;
+ return message;
}
public void Mail()
diff --git a/SendGrid/SendGridMail/Transport/ITransport.cs b/SendGrid/SendGridMail/Transport/ITransport.cs
new file mode 100755
index 0000000..26fccf4
--- /dev/null
+++ b/SendGrid/SendGridMail/Transport/ITransport.cs
@@ -0,0 +1,14 @@
+namespace SendGridMail.Transport
+{
+ /// <summary>
+ ///
+ /// </summary>
+ public interface ITransport
+ {
+ /// <summary>
+ /// Delivers a message using the protocol of the derived class
+ /// </summary>
+ /// <param name="message">the message to be delivered</param>
+ void Deliver(ISendGrid message);
+ }
+}
diff --git a/SendGrid/SendGrid/Transport/REST.cs b/SendGrid/SendGridMail/Transport/REST.cs
index 8e6baf8..dd37567 100755
--- a/SendGrid/SendGrid/Transport/REST.cs
+++ b/SendGrid/SendGridMail/Transport/REST.cs
@@ -8,7 +8,7 @@ using System.Text;
using System.Web;
using System.Xml;
-namespace SendGrid.Transport
+namespace SendGridMail.Transport
{
public class REST : ITransport
{
@@ -28,7 +28,7 @@ namespace SendGrid.Transport
_queryParameters["api_key"] = credentials.Password;
_format = XmlFormat;
- _restEndpoint = url + "." + this._format;
+ _restEndpoint = url + "." + _format;
}
public void Deliver(ISendGrid message)
diff --git a/SendGrid/SendGrid/Transport/SMTP.cs b/SendGrid/SendGridMail/Transport/SMTP.cs
index 0b8b684..606afcd 100755
--- a/SendGrid/SendGrid/Transport/SMTP.cs
+++ b/SendGrid/SendGridMail/Transport/SMTP.cs
@@ -2,7 +2,7 @@
using System.Net;
using System.Net.Mail;
-namespace SendGrid.Transport
+namespace SendGridMail.Transport
{
/// <summary>
/// Transport class for delivering messages via SMTP
@@ -72,16 +72,29 @@ namespace SendGrid.Transport
/// <param name="credentials">Sendgrid user credentials</param>
/// <param name="host">MTA recieving this message. By default, sent through SendGrid.</param>
/// <param name="port">SMTP port 25 is the default. Port 465 can be used for Secure SMTP.</param>
- public static SMTP SmtpFactory(NetworkCredential credentials, String host = SmtpServer, Int32 port = Port)
+ public static SMTP GenerateInstance(NetworkCredential credentials, String host = SmtpServer, Int32 port = Port)
{
var client = new SmtpWrapper(host, port, credentials, SmtpDeliveryMethod.Network);
return new SMTP(client, credentials, host, port);
}
/// <summary>
+ /// For Unit Testing Only!
+ /// </summary>
+ /// <param name="client"></param>
+ /// <param name="credentials"></param>
+ /// <param name="host"></param>
+ /// <param name="port"></param>
+ /// <returns></returns>
+ internal static SMTP GenerateInstance(ISmtpClient client, NetworkCredential credentials, String host = SmtpServer, Int32 port = Port)
+ {
+ return new SMTP(client, credentials, host, port);
+ }
+
+ /// <summary>
/// Interface to allow testing
/// </summary>
- private interface ISmtpClient
+ internal interface ISmtpClient
{
bool EnableSsl { get; set; }
void Send(MailMessage mime);
@@ -90,7 +103,7 @@ namespace SendGrid.Transport
/// <summary>
/// Implementation of SmtpClient wrapper, separated to allow dependency injection
/// </summary>
- private class SmtpWrapper : ISmtpClient
+ internal class SmtpWrapper : ISmtpClient
{
private readonly SmtpClient _client;
public bool EnableSsl
diff --git a/SendGrid/Tests/TestHeader.cs b/SendGrid/Tests/TestHeader.cs
index 323e394..e4a0814 100755
--- a/SendGrid/Tests/TestHeader.cs
+++ b/SendGrid/Tests/TestHeader.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using Moq;
using NUnit.Framework;
-using SendGrid;
+using SendGridMail;
namespace Tests
{
@@ -17,7 +17,7 @@ namespace Tests
var foo = new Mock<IHeader>();
foo.Setup(m => m.Enable("foo"));
- var bar = new SendGrid.SendGrid(foo.Object);
+ var bar = new SendGrid(foo.Object);
Assert.AreEqual(1, 2, "I suck");
}
diff --git a/SendGrid/Tests/TestSendgridMessageSetup.cs b/SendGrid/Tests/TestSendgridMessageSetup.cs
new file mode 100755
index 0000000..ff67cb2
--- /dev/null
+++ b/SendGrid/Tests/TestSendgridMessageSetup.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using NUnit.Framework;
+using SendGridMail;
+
+namespace Tests
+{
+ [TestFixture]
+ public class TestSendgridMessageSetup
+ {
+ [Test]
+ public void TestAddTo()
+ {
+ var foo = new SendGrid();
+ }
+ }
+}
diff --git a/SendGrid/Tests/Tests.csproj b/SendGrid/Tests/Tests.csproj
index 08adf52..86ce660 100755
--- a/SendGrid/Tests/Tests.csproj
+++ b/SendGrid/Tests/Tests.csproj
@@ -54,6 +54,7 @@
<ItemGroup>
<Compile Include="TestHeader.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="TestSendgridMessageSetup.cs" />
<Compile Include="Transport\TestREST.cs" />
<Compile Include="Transport\TestSMTP.cs" />
</ItemGroup>
@@ -63,7 +64,7 @@
</None>
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\SendGrid\Mail.csproj">
+ <ProjectReference Include="..\SendGridMail\Mail.csproj">
<Project>{3C687BEF-FF50-44AD-8315-2D4237281AF8}</Project>
<Name>Mail</Name>
</ProjectReference>
diff --git a/SendGrid/Tests/Transport/TestSMTP.cs b/SendGrid/Tests/Transport/TestSMTP.cs
index 45398ee..fcfb050 100755
--- a/SendGrid/Tests/Transport/TestSMTP.cs
+++ b/SendGrid/Tests/Transport/TestSMTP.cs
@@ -1,8 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Net;
using System.Text;
+using Moq;
using NUnit.Framework;
+using SendGridMail.Transport;
namespace Tests.Transport
{
@@ -12,7 +15,10 @@ namespace Tests.Transport
[Test]
public void Deliver()
{
-
+ var mock = new Mock<SMTP.ISmtpClient>();
+ var client = mock.Object;
+ var credentials = new NetworkCredential("username", "password");
+ SMTP.GenerateInstance(client, credentials);
}
}
}