October 20, 2009

Java - Testing - Mocked SMTP Server

« Spring Velocity Mail | Main | JAX WS Example »

Recently I'm looking for a possibility to test sending of mails in Java. For this use case you need a mocked SMTP server, which works like the Jetty ServletTester. The Dumbster Project offers a mocked SMTP server. The following example describes the usage:

public void testSendOrders() {
    SimpleSmtpServer smtpServer = SimpleSmtpServer.start();

    try {
      sendMessagePerJavaMail(25, "order@developers-blog.org", "Order Number 1", "T-Shirt 123", "rafael.sobek@nirvana.org");
      sendMessagePerJavaMail(25, "order@developers-blog.org", "Order Number 2", "T-Shirt 233", "rafael.sobek@nirvana.org");
    } catch(Exception e) {
      e.printStackTrace();
      fail("Something was wrong: "+e);
    }
    smtpServer.stop();

    assertTrue(server.getReceivedEmailSize() == 2);

    Iterator emailIter = server.getReceivedEmail();

    //first email
    SmtpMessage email = (SmtpMessage)emailIter.next();
    assertTrue(email.getHeaderValue("Subject").equals("Order Number 1"));
    assertTrue(email.getBody().equals("T-Shirt 123"));	

    //second email
    email = (SmtpMessage)emailIter.next();
    assertTrue(email.getHeaderValue("Subject").equals("Order Number 2"));
    assertTrue(email.getBody().equals("T-Shirt 233"));	
  }

Regards
Rafael Sobek

Technorati Tags:

Posted by rafael.sobek at 9:53 PM in Java

 

[Trackback URL for this entry]

Your comment:

(not displayed)
 
 
 

Live Comment Preview:

 
« October »
SunMonTueWedThuFriSat
    123
45678910
11121314151617
18192021222324
25262728293031