@Test public void shouldSendThreadedEmail() throws Exception { configure(); EmailMessage emailMessage = new EmailMessage() .setMessageId("reviews/view/1") .setFrom("Full Username") .setTo("user@nowhere") .setSubject("Review #3") .setMessage("I'll take care of this violation."); channel.deliver(emailMessage); List<WiserMessage> messages = server.getMessages(); assertThat(messages).hasSize(1); MimeMessage email = messages.get(0).getMimeMessage(); assertThat(email.getHeader("Content-Type", null)).isEqualTo("text/plain; charset=UTF-8"); assertThat(email.getHeader("In-Reply-To", null)) .isEqualTo("<reviews/view/[email protected]>"); assertThat(email.getHeader("References", null)) .isEqualTo("<reviews/view/[email protected]>"); assertThat(email.getHeader("List-ID", null)) .isEqualTo("SonarQube <sonar.nemo.sonarsource.org>"); assertThat(email.getHeader("List-Archive", null)).isEqualTo("http://nemo.sonarsource.org"); assertThat(email.getHeader("From", ",")) .isEqualTo("\"Full Username (SonarQube)\" <server@nowhere>"); assertThat(email.getHeader("To", null)).isEqualTo("<user@nowhere>"); assertThat(email.getHeader("Subject", null)).isEqualTo("[SONARQUBE] Review #3"); assertThat((String) email.getContent()).startsWith("I'll take care of this violation."); }
@Test public void shouldSendNonThreadedEmail() throws Exception { configure(); EmailMessage emailMessage = new EmailMessage().setTo("user@nowhere").setSubject("Foo").setMessage("Bar"); channel.deliver(emailMessage); List<WiserMessage> messages = server.getMessages(); assertThat(messages).hasSize(1); MimeMessage email = messages.get(0).getMimeMessage(); assertThat(email.getHeader("Content-Type", null)).isEqualTo("text/plain; charset=UTF-8"); assertThat(email.getHeader("In-Reply-To", null)).isNull(); assertThat(email.getHeader("References", null)).isNull(); assertThat(email.getHeader("List-ID", null)) .isEqualTo("SonarQube <sonar.nemo.sonarsource.org>"); assertThat(email.getHeader("List-Archive", null)).isEqualTo("http://nemo.sonarsource.org"); assertThat(email.getHeader("From", null)).isEqualTo("SonarQube <server@nowhere>"); assertThat(email.getHeader("To", null)).isEqualTo("<user@nowhere>"); assertThat(email.getHeader("Subject", null)).isEqualTo("[SONARQUBE] Foo"); assertThat((String) email.getContent()).startsWith("Bar"); }
@Test public void shouldNotSendEmailWhenHostnameNotConfigured() throws Exception { EmailMessage emailMessage = new EmailMessage().setTo("user@nowhere").setSubject("Foo").setMessage("Bar"); channel.deliver(emailMessage); assertThat(server.getMessages()).isEmpty(); }
@Test public void shouldNotThrowAnExceptionWhenUnableToSendEmail() throws Exception { configure(); server.stop(); EmailMessage emailMessage = new EmailMessage().setTo("user@nowhere").setSubject("Foo").setMessage("Bar"); channel.deliver(emailMessage); }