]> source.dussan.org Git - sonarqube.git/commitdiff
Fix EmailNotificationChannelTest
authorEvgeny Mandrikov <mandrikov@gmail.com>
Mon, 24 Oct 2011 15:24:17 +0000 (19:24 +0400)
committerEvgeny Mandrikov <mandrikov@gmail.com>
Tue, 25 Oct 2011 11:17:46 +0000 (15:17 +0400)
* Use SubEthaSMTP instead of Dumbster
* Enable test on Mac OS X

plugins/sonar-email-notifications-plugin/pom.xml
plugins/sonar-email-notifications-plugin/src/test/java/org/sonar/plugins/emailnotifications/EmailNotificationChannelTest.java

index a8a470e13035f721bf9adfcc3dc598b1ba5600ef..4d05e48b535b1c8e653b8cd7207473f4f9e9d2d0 100644 (file)
@@ -40,9 +40,9 @@
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>dumbster</groupId>
-      <artifactId>dumbster</artifactId>
-      <version>1.6</version>
+      <groupId>org.subethamail</groupId>
+      <artifactId>subethasmtp</artifactId>
+      <version>3.1.6</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
index b02fbf860012946dc90f99b447635ec29a72f6a7..39880f2f53f4d71510a2f2d029c6c800494513b1 100644 (file)
@@ -21,38 +21,38 @@ package org.sonar.plugins.emailnotifications;
 
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.nullValue;
+import static org.hamcrest.Matchers.startsWith;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.fail;
-import static org.junit.Assume.assumeThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.io.IOException;
 import java.net.ServerSocket;
+import java.util.List;
+
+import javax.mail.internet.MimeMessage;
 
-import org.apache.commons.lang.SystemUtils;
 import org.apache.commons.mail.EmailException;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.sonar.plugins.emailnotifications.api.EmailMessage;
-
-import com.dumbster.smtp.SimpleSmtpServer;
-import com.dumbster.smtp.SmtpMessage;
+import org.subethamail.wiser.Wiser;
+import org.subethamail.wiser.WiserMessage;
 
 public class EmailNotificationChannelTest {
 
   private static int port;
 
-  private SimpleSmtpServer server;
+  private Wiser server;
 
   private EmailConfiguration configuration;
   private EmailNotificationChannel channel;
 
   @BeforeClass
   public static void selectPort() {
-    assumeThat(SystemUtils.IS_OS_MAC_OSX, is(false));
     port = getNextAvailablePort();
   }
 
@@ -69,16 +69,17 @@ public class EmailNotificationChannelTest {
 
   @Before
   public void setUp() {
-    server = SimpleSmtpServer.start(port);
+    server = new Wiser();
+    server.setPort(port);
+    server.start();
+
     configuration = mock(EmailConfiguration.class);
     channel = new EmailNotificationChannel(configuration, null, null);
   }
 
   @After
   public void tearDown() {
-    if (!server.isStopped()) {
-      server.stop();
-    }
+    server.stop();
   }
 
   @Test
@@ -86,15 +87,15 @@ public class EmailNotificationChannelTest {
     configure();
     channel.sendTestEmail("user@nowhere", "Test Message from Sonar", "This is a test message from Sonar.");
 
-    assertThat(server.getReceivedEmailSize(), is(1));
-    SmtpMessage email = (SmtpMessage) server.getReceivedEmail().next();
-
-    assertThat(email.getHeaderValue("Content-Type"), is("text/plain; charset=UTF-8"));
+    List<WiserMessage> messages = server.getMessages();
+    assertThat(messages.size(), is(1));
 
-    assertThat(email.getHeaderValue("From"), is("Sonar <server@nowhere>"));
-    assertThat(email.getHeaderValue("To"), is("<user@nowhere>"));
-    assertThat(email.getHeaderValue("Subject"), is("[SONAR] Test Message from Sonar"));
-    assertThat(email.getBody(), is("This is a test message from Sonar."));
+    MimeMessage email = messages.get(0).getMimeMessage();
+    assertThat(email.getHeader("Content-Type", null), is("text/plain; charset=UTF-8"));
+    assertThat(email.getHeader("From", ","), is("Sonar <server@nowhere>"));
+    assertThat(email.getHeader("To", null), is("<user@nowhere>"));
+    assertThat(email.getHeader("Subject", null), is("[SONAR] Test Message from Sonar"));
+    assertThat((String) email.getContent(), startsWith("This is a test message from Sonar."));
   }
 
   @Test
@@ -117,7 +118,7 @@ public class EmailNotificationChannelTest {
         .setSubject("Foo")
         .setMessage("Bar");
     channel.deliver(emailMessage);
-    assertThat(server.getReceivedEmailSize(), is(0));
+    assertThat(server.getMessages().size(), is(0));
   }
 
   @Test
@@ -131,21 +132,23 @@ public class EmailNotificationChannelTest {
         .setMessage("I'll take care of this violation.");
     channel.deliver(emailMessage);
 
-    assertThat(server.getReceivedEmailSize(), is(1));
-    SmtpMessage email = (SmtpMessage) server.getReceivedEmail().next();
+    List<WiserMessage> messages = server.getMessages();
+    assertThat(messages.size(), is(1));
 
-    assertThat(email.getHeaderValue("Content-Type"), is("text/plain; charset=UTF-8"));
+    MimeMessage email = messages.get(0).getMimeMessage();
 
-    assertThat(email.getHeaderValue("In-Reply-To"), is("<reviews/view/1@nemo.sonarsource.org>"));
-    assertThat(email.getHeaderValue("References"), is("<reviews/view/1@nemo.sonarsource.org>"));
+    assertThat(email.getHeader("Content-Type", null), is("text/plain; charset=UTF-8"));
 
-    assertThat(email.getHeaderValue("List-ID"), is("Sonar <sonar.nemo.sonarsource.org>"));
-    assertThat(email.getHeaderValue("List-Archive"), is("http://nemo.sonarsource.org"));
+    assertThat(email.getHeader("In-Reply-To", null), is("<reviews/view/1@nemo.sonarsource.org>"));
+    assertThat(email.getHeader("References", null), is("<reviews/view/1@nemo.sonarsource.org>"));
 
-    assertThat(email.getHeaderValue("From"), is("\"Full Username (Sonar)\" <server@nowhere>"));
-    assertThat(email.getHeaderValue("To"), is("<user@nowhere>"));
-    assertThat(email.getHeaderValue("Subject"), is("[SONAR] Review #3"));
-    assertThat(email.getBody(), is("I'll take care of this violation."));
+    assertThat(email.getHeader("List-ID", null), is("Sonar <sonar.nemo.sonarsource.org>"));
+    assertThat(email.getHeader("List-Archive", null), is("http://nemo.sonarsource.org"));
+
+    assertThat(email.getHeader("From", ","), is("\"Full Username (Sonar)\" <server@nowhere>"));
+    assertThat(email.getHeader("To", null), is("<user@nowhere>"));
+    assertThat(email.getHeader("Subject", null), is("[SONAR] Review #3"));
+    assertThat((String) email.getContent(), startsWith("I'll take care of this violation."));
   }
 
   @Test
@@ -157,21 +160,23 @@ public class EmailNotificationChannelTest {
         .setMessage("Bar");
     channel.deliver(emailMessage);
 
-    assertThat(server.getReceivedEmailSize(), is(1));
-    SmtpMessage email = (SmtpMessage) server.getReceivedEmail().next();
+    List<WiserMessage> messages = server.getMessages();
+    assertThat(messages.size(), is(1));
+
+    MimeMessage email = messages.get(0).getMimeMessage();
 
-    assertThat(email.getHeaderValue("Content-Type"), is("text/plain; charset=UTF-8"));
+    assertThat(email.getHeader("Content-Type", null), is("text/plain; charset=UTF-8"));
 
-    assertThat(email.getHeaderValue("In-Reply-To"), nullValue());
-    assertThat(email.getHeaderValue("References"), nullValue());
+    assertThat(email.getHeader("In-Reply-To", null), nullValue());
+    assertThat(email.getHeader("References", null), nullValue());
 
-    assertThat(email.getHeaderValue("List-ID"), is("Sonar <sonar.nemo.sonarsource.org>"));
-    assertThat(email.getHeaderValue("List-Archive"), is("http://nemo.sonarsource.org"));
+    assertThat(email.getHeader("List-ID", null), is("Sonar <sonar.nemo.sonarsource.org>"));
+    assertThat(email.getHeader("List-Archive", null), is("http://nemo.sonarsource.org"));
 
-    assertThat(email.getHeaderValue("From"), is("Sonar <server@nowhere>"));
-    assertThat(email.getHeaderValue("To"), is("<user@nowhere>"));
-    assertThat(email.getHeaderValue("Subject"), is("[SONAR] Foo"));
-    assertThat(email.getBody(), is("Bar"));
+    assertThat(email.getHeader("From", null), is("Sonar <server@nowhere>"));
+    assertThat(email.getHeader("To", null), is("<user@nowhere>"));
+    assertThat(email.getHeader("Subject", null), is("[SONAR] Foo"));
+    assertThat((String) email.getContent(), startsWith("Bar"));
   }
 
   @Test