mirror of
https://github.com/SonarSource/sonarqube.git
synced 2024-07-28 08:17:45 +02:00
Fix EmailNotificationChannelTest
* Use SubEthaSMTP instead of Dumbster * Enable test on Mac OS X
This commit is contained in:
parent
4cade605cd
commit
176e46458b
@ -40,9 +40,9 @@
|
|||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>dumbster</groupId>
|
<groupId>org.subethamail</groupId>
|
||||||
<artifactId>dumbster</artifactId>
|
<artifactId>subethasmtp</artifactId>
|
||||||
<version>1.6</version>
|
<version>3.1.6</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
@ -21,38 +21,38 @@ package org.sonar.plugins.emailnotifications;
|
|||||||
|
|
||||||
import static org.hamcrest.Matchers.is;
|
import static org.hamcrest.Matchers.is;
|
||||||
import static org.hamcrest.Matchers.nullValue;
|
import static org.hamcrest.Matchers.nullValue;
|
||||||
|
import static org.hamcrest.Matchers.startsWith;
|
||||||
import static org.junit.Assert.assertThat;
|
import static org.junit.Assert.assertThat;
|
||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
import static org.junit.Assume.assumeThat;
|
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.ServerSocket;
|
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.apache.commons.mail.EmailException;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.sonar.plugins.emailnotifications.api.EmailMessage;
|
import org.sonar.plugins.emailnotifications.api.EmailMessage;
|
||||||
|
import org.subethamail.wiser.Wiser;
|
||||||
import com.dumbster.smtp.SimpleSmtpServer;
|
import org.subethamail.wiser.WiserMessage;
|
||||||
import com.dumbster.smtp.SmtpMessage;
|
|
||||||
|
|
||||||
public class EmailNotificationChannelTest {
|
public class EmailNotificationChannelTest {
|
||||||
|
|
||||||
private static int port;
|
private static int port;
|
||||||
|
|
||||||
private SimpleSmtpServer server;
|
private Wiser server;
|
||||||
|
|
||||||
private EmailConfiguration configuration;
|
private EmailConfiguration configuration;
|
||||||
private EmailNotificationChannel channel;
|
private EmailNotificationChannel channel;
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void selectPort() {
|
public static void selectPort() {
|
||||||
assumeThat(SystemUtils.IS_OS_MAC_OSX, is(false));
|
|
||||||
port = getNextAvailablePort();
|
port = getNextAvailablePort();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,16 +69,17 @@ public class EmailNotificationChannelTest {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
server = SimpleSmtpServer.start(port);
|
server = new Wiser();
|
||||||
|
server.setPort(port);
|
||||||
|
server.start();
|
||||||
|
|
||||||
configuration = mock(EmailConfiguration.class);
|
configuration = mock(EmailConfiguration.class);
|
||||||
channel = new EmailNotificationChannel(configuration, null, null);
|
channel = new EmailNotificationChannel(configuration, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void tearDown() {
|
public void tearDown() {
|
||||||
if (!server.isStopped()) {
|
server.stop();
|
||||||
server.stop();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -86,15 +87,15 @@ public class EmailNotificationChannelTest {
|
|||||||
configure();
|
configure();
|
||||||
channel.sendTestEmail("user@nowhere", "Test Message from Sonar", "This is a test message from Sonar.");
|
channel.sendTestEmail("user@nowhere", "Test Message from Sonar", "This is a test message from Sonar.");
|
||||||
|
|
||||||
assertThat(server.getReceivedEmailSize(), is(1));
|
List<WiserMessage> messages = server.getMessages();
|
||||||
SmtpMessage email = (SmtpMessage) server.getReceivedEmail().next();
|
assertThat(messages.size(), is(1));
|
||||||
|
|
||||||
assertThat(email.getHeaderValue("Content-Type"), is("text/plain; charset=UTF-8"));
|
MimeMessage email = messages.get(0).getMimeMessage();
|
||||||
|
assertThat(email.getHeader("Content-Type", null), is("text/plain; charset=UTF-8"));
|
||||||
assertThat(email.getHeaderValue("From"), is("Sonar <server@nowhere>"));
|
assertThat(email.getHeader("From", ","), is("Sonar <server@nowhere>"));
|
||||||
assertThat(email.getHeaderValue("To"), is("<user@nowhere>"));
|
assertThat(email.getHeader("To", null), is("<user@nowhere>"));
|
||||||
assertThat(email.getHeaderValue("Subject"), is("[SONAR] Test Message from Sonar"));
|
assertThat(email.getHeader("Subject", null), is("[SONAR] Test Message from Sonar"));
|
||||||
assertThat(email.getBody(), is("This is a test message from Sonar."));
|
assertThat((String) email.getContent(), startsWith("This is a test message from Sonar."));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -117,7 +118,7 @@ public class EmailNotificationChannelTest {
|
|||||||
.setSubject("Foo")
|
.setSubject("Foo")
|
||||||
.setMessage("Bar");
|
.setMessage("Bar");
|
||||||
channel.deliver(emailMessage);
|
channel.deliver(emailMessage);
|
||||||
assertThat(server.getReceivedEmailSize(), is(0));
|
assertThat(server.getMessages().size(), is(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -131,21 +132,23 @@ public class EmailNotificationChannelTest {
|
|||||||
.setMessage("I'll take care of this violation.");
|
.setMessage("I'll take care of this violation.");
|
||||||
channel.deliver(emailMessage);
|
channel.deliver(emailMessage);
|
||||||
|
|
||||||
assertThat(server.getReceivedEmailSize(), is(1));
|
List<WiserMessage> messages = server.getMessages();
|
||||||
SmtpMessage email = (SmtpMessage) server.getReceivedEmail().next();
|
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.getHeader("Content-Type", null), is("text/plain; charset=UTF-8"));
|
||||||
assertThat(email.getHeaderValue("References"), is("<reviews/view/1@nemo.sonarsource.org>"));
|
|
||||||
|
|
||||||
assertThat(email.getHeaderValue("List-ID"), is("Sonar <sonar.nemo.sonarsource.org>"));
|
assertThat(email.getHeader("In-Reply-To", null), is("<reviews/view/1@nemo.sonarsource.org>"));
|
||||||
assertThat(email.getHeaderValue("List-Archive"), is("http://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.getHeader("List-ID", null), is("Sonar <sonar.nemo.sonarsource.org>"));
|
||||||
assertThat(email.getHeaderValue("To"), is("<user@nowhere>"));
|
assertThat(email.getHeader("List-Archive", null), is("http://nemo.sonarsource.org"));
|
||||||
assertThat(email.getHeaderValue("Subject"), is("[SONAR] Review #3"));
|
|
||||||
assertThat(email.getBody(), is("I'll take care of this violation."));
|
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
|
@Test
|
||||||
@ -157,21 +160,23 @@ public class EmailNotificationChannelTest {
|
|||||||
.setMessage("Bar");
|
.setMessage("Bar");
|
||||||
channel.deliver(emailMessage);
|
channel.deliver(emailMessage);
|
||||||
|
|
||||||
assertThat(server.getReceivedEmailSize(), is(1));
|
List<WiserMessage> messages = server.getMessages();
|
||||||
SmtpMessage email = (SmtpMessage) server.getReceivedEmail().next();
|
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"), nullValue());
|
assertThat(email.getHeader("Content-Type", null), is("text/plain; charset=UTF-8"));
|
||||||
assertThat(email.getHeaderValue("References"), nullValue());
|
|
||||||
|
|
||||||
assertThat(email.getHeaderValue("List-ID"), is("Sonar <sonar.nemo.sonarsource.org>"));
|
assertThat(email.getHeader("In-Reply-To", null), nullValue());
|
||||||
assertThat(email.getHeaderValue("List-Archive"), is("http://nemo.sonarsource.org"));
|
assertThat(email.getHeader("References", null), nullValue());
|
||||||
|
|
||||||
assertThat(email.getHeaderValue("From"), is("Sonar <server@nowhere>"));
|
assertThat(email.getHeader("List-ID", null), is("Sonar <sonar.nemo.sonarsource.org>"));
|
||||||
assertThat(email.getHeaderValue("To"), is("<user@nowhere>"));
|
assertThat(email.getHeader("List-Archive", null), is("http://nemo.sonarsource.org"));
|
||||||
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
|
@Test
|
||||||
|
Loading…
Reference in New Issue
Block a user