diff options
author | Tyler Bischel <tyler.bischel@sendgrid.com> | 2012-01-10 13:40:15 -0800 |
---|---|---|
committer | Tyler Bischel <tyler.bischel@sendgrid.com> | 2012-01-10 13:40:15 -0800 |
commit | e7e7ea043de835793b9d65e6176e6148d0b51e29 (patch) | |
tree | 04490de0b36b3fcbdc4433a678b30cd18f31dc8c | |
parent | e40ecaea2026a525650c02f6b84526c68762fbcb (diff) | |
download | sendgrid-csharp-e7e7ea043de835793b9d65e6176e6148d0b51e29.zip sendgrid-csharp-e7e7ea043de835793b9d65e6176e6148d0b51e29.tar.gz sendgrid-csharp-e7e7ea043de835793b9d65e6176e6148d0b51e29.tar.bz2 |
fixed namespace weirdness, made changes to .gitignore
-rwxr-xr-x[-rw-r--r--] | .gitignore | 5 | ||||
-rwxr-xr-x | SendGrid/Example/Example.csproj | 6 | ||||
-rwxr-xr-x | SendGrid/Example/Program.cs | 1 | ||||
-rwxr-xr-x | SendGrid/SendGrid.sln | 2 | ||||
-rwxr-xr-x | SendGrid/SendGrid/Transport/ITransport.cs | 14 | ||||
-rwxr-xr-x | SendGrid/SendGridMail/Header.cs (renamed from SendGrid/SendGrid/Header.cs) | 2 | ||||
-rwxr-xr-x | SendGrid/SendGridMail/IHeader.cs (renamed from SendGrid/SendGrid/IHeader.cs) | 2 | ||||
-rwxr-xr-x | SendGrid/SendGridMail/ISendGrid.cs (renamed from SendGrid/SendGrid/ISendGrid.cs) | 2 | ||||
-rwxr-xr-x | SendGrid/SendGridMail/Mail.csproj (renamed from SendGrid/SendGrid/Mail.csproj) | 4 | ||||
-rwxr-xr-x | SendGrid/SendGridMail/Properties/AssemblyInfo.cs (renamed from SendGrid/SendGrid/Properties/AssemblyInfo.cs) | 6 | ||||
-rwxr-xr-x | SendGrid/SendGridMail/SendGrid.cs (renamed from SendGrid/SendGrid/SendGrid.cs) | 12 | ||||
-rwxr-xr-x | SendGrid/SendGridMail/Transport/ITransport.cs | 14 | ||||
-rwxr-xr-x | SendGrid/SendGridMail/Transport/REST.cs (renamed from SendGrid/SendGrid/Transport/REST.cs) | 4 | ||||
-rwxr-xr-x | SendGrid/SendGridMail/Transport/SMTP.cs (renamed from SendGrid/SendGrid/Transport/SMTP.cs) | 21 | ||||
-rwxr-xr-x | SendGrid/Tests/TestHeader.cs | 4 | ||||
-rwxr-xr-x | SendGrid/Tests/TestSendgridMessageSetup.cs | 19 | ||||
-rwxr-xr-x | SendGrid/Tests/Tests.csproj | 3 | ||||
-rwxr-xr-x | SendGrid/Tests/Transport/TestSMTP.cs | 8 |
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);
}
}
}
|