Igor Milovanović

.NET, cats and more...


News


Add to Google

eXTReMe Tracker

My Stats

  • Posts - 64
  • Comments - 62
  • Trackbacks - 52

Twitter












Recent Comments


Recent Posts


Article Categories


Archives


Post Categories


Image Galleries


Blogs I read


Communities


Links


September 2004 Entries

A Simple SMTP Server Mock for .NET


A SMTP server mock is basically a fake SMTP server which can be used for unit testing of applications which send email messages. It acts as a real smtp server, except that  the incoming messages are locally stored and not actually delivered .  This can be quite usefull if you are using real data for testing. ;-) 

   1:  [Test]
   2:  public void MailTest ()
   3:  {
   4:      SmtpMock smtpServerMock = new SmtpMock ();
   5:      smtpServerMock.Start();
   6:      System.Web.Mail.SmtpMail.SmtpServer = "localhost";
   7:      System.Web.Mail.SmtpMail.Send("somebody@foo.com", "everybody@bar.com", "This is the subject", "This is the body.");
   8:      smtpServerMock.Stop ();
   9:   
  10:      Assert.AreEqual (1, smtpServerMock.Sessions.Count);
  11:      SmtpSession session = (SmtpSession) smtpServerMock.Sessions[0];
  12:      Assert.IsTrue (session.SessionProtocol.IndexOf("somebody@foo.com") > 0 );
  13:      Assert.IsTrue (session.SessionProtocol.IndexOf("everybody@bar.com") > 0 );
  14:      Assert.IsTrue (session.SessionProtocol.IndexOf("This is the subject") > 0 );
  15:      Assert.IsTrue (session.SessionProtocol.IndexOf("This is the body.") > 0 );
  16:   
  17:  }

Example: Unit-Test with SMTP-Server Mock

As I couldn't find a .NET implementation (take a look at dumbster for java version), I decided to write one myself. The implementation is very simple as it only opens a listener at port 25 and responds to pretty much anything with 250 OK. ;-) . The recieved emails are stored in SessionProtocol (see example).

[1] Dumbster - Fake SMTP Server for Java
[2] SmtpMock.cs

 

posted @ Monday, September 27, 2004 7:12 PM | Feedback (6) | Filed Under [ .NET ]


Blog reloaded


Moving with my blog to www.geekswithblogs.net (Thanks to Jeff Julian) was a great opportunity to take a look to more than half a year of active blogging and to pick out the most interessting articles. They can be found under Article Categories / Blog Backup. I intend to repost the other articles as well, but consider this "low priority" at the moment. ;-)

posted @ Thursday, September 23, 2004 2:55 PM | Feedback (2) | Filed Under [ .NET ]