@After public void tearDown() { smtpServer.stop(); }
public void setup() { final ChainedProperties props = ChainedProperties.getChainedProperties( "email.conf", ClassLoaderUtil.getClassLoader( null, getClass(), false )); wiser = new Wiser(); wiser.setHostname(props.getProperty( "mail.smtp.host", "localhost" )); wiser.setPort(Integer.parseInt(props.getProperty("mail.smtp.port", "2345"))); wiser.start(); try { Thread.sleep(1000); } catch (Throwable t) { // Do nothing } }
@Test public void shouldSendTestEmail() throws Exception { configure(); underTest.sendTestEmail("user@nowhere", "Test Message from SonarQube", "This is a test message from SonarQube."); List<WiserMessage> messages = smtpServer.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("From", ",")).isEqualTo("SonarQube from NoWhere <server@nowhere>"); assertThat(email.getHeader("To", null)).isEqualTo("<user@nowhere>"); assertThat(email.getHeader("Subject", null)).isEqualTo("[SONARQUBE] Test Message from SonarQube"); assertThat((String) email.getContent()).startsWith("This is a test message from SonarQube."); }
@Test(timeout=10000) public void testTaskReminderWithoutNotification() throws Exception { CountDownTaskEventListener countDownListener = new CountDownTaskEventListener(1, false, true); addCountDownListner(countDownListener); Map<String, Object> vars = new HashMap<String, Object>(); vars.put("now", new Date()); Reader reader = new InputStreamReader(getClass().getResourceAsStream(MvelFilePath.ReminderWithoutNotification)); InternalTask task = (InternalTask) TaskFactory.evalTask(reader, vars); System.out.println("testTaskReminderWithoutNotification " + task.getTaskData().getStatus()); assertNull(task.getDeadlines()); long taskId = taskService.addTask(task, new HashMap<String, Object>()); taskService.executeReminderForTask(taskId, "Luke Cage"); countDownListener.waitTillCompleted(); assertEquals(1, wiser.getMessages().size()); String receiver = wiser.getMessages().get(0).getEnvelopeReceiver(); assertEquals("tony@domain.com", receiver); MimeMessage msg = ((WiserMessage) wiser.getMessages().get(0)).getMimeMessage(); assertEquals("You have a task ( Simple Test Task ) of process ( taskReminder )", msg.getSubject()); }
@Test public void shouldNotSendEmailWhenHostnameNotConfigured() { EmailMessage emailMessage = new EmailMessage() .setTo("user@nowhere") .setSubject("Foo") .setMessage("Bar"); boolean delivered = underTest.deliver(emailMessage); assertThat(smtpServer.getMessages()).isEmpty(); assertThat(delivered).isFalse(); }
private void configure() { when(configuration.getSmtpHost()).thenReturn("localhost"); when(configuration.getSmtpPort()).thenReturn(smtpServer.getServer().getPort()); when(configuration.getFrom()).thenReturn("server@nowhere"); when(configuration.getFromName()).thenReturn("SonarQube from NoWhere"); when(configuration.getPrefix()).thenReturn("[SONARQUBE]"); when(configuration.getServerBaseURL()).thenReturn("http://nemo.sonarsource.org"); }
@Before public void setup() { final ChainedProperties props = ChainedProperties.getChainedProperties( "email.conf", ClassLoaderUtil.getClassLoader( null, getClass(), false )); wiser = new Wiser(); wiser.setHostname(props.getProperty("mail.smtp.host", "localhost")); wiser.setPort(Integer.parseInt(props.getProperty("mail.smtp.port", "2345"))); wiser.start(); try { Thread.sleep(1000); } catch (Throwable t) { // Do nothing } pds = setupPoolingDataSource(); emf = Persistence.createEntityManagerFactory("org.jbpm.services.task"); this.taskService = (InternalTaskService) HumanTaskServiceFactory.newTaskServiceConfigurator() .entityManagerFactory(emf) .getTaskService(); }
@Test public void shouldSendNonThreadedEmail() throws Exception { configure(); EmailMessage emailMessage = new EmailMessage() .setTo("user@nowhere") .setSubject("Foo") .setMessage("Bar"); boolean delivered = underTest.deliver(emailMessage); List<WiserMessage> messages = smtpServer.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 from NoWhere <server@nowhere>"); assertThat(email.getHeader("To", null)).isEqualTo("<user@nowhere>"); assertThat(email.getHeader("Subject", null)).isEqualTo("[SONARQUBE] Foo"); assertThat((String) email.getContent()).startsWith("Bar"); assertThat(delivered).isTrue(); }
@Test(timeout=10000) public void testTaskReminderWithNotificationByTaskNostarted() throws Exception { CountDownTaskEventListener countDownListener = new CountDownTaskEventListener(1, false, true); addCountDownListner(countDownListener); Map<String, Object> vars = new HashMap<String, Object>(); vars.put("now", new Date()); Reader reader = new InputStreamReader(getClass().getResourceAsStream(MvelFilePath .ReminderWithNotificationReserved)); InternalTask task = (InternalTask) TaskFactory.evalTask(reader, vars); System.out.println("testTaskReminderWithNotificationByTaskNostarted " + task.getTaskData().getStatus()); assertEquals(1, task.getDeadlines().getEndDeadlines().size()); assertEquals(1, task.getDeadlines().getStartDeadlines().size()); long taskId = taskService.addTask(task, new HashMap<String, Object>()); taskService.executeReminderForTask(taskId, "Luke Cage"); countDownListener.waitTillCompleted(); assertEquals(2, wiser.getMessages().size()); final List<String> list = new ArrayList<String>(2); list.add(wiser.getMessages().get(0).getEnvelopeReceiver()); list.add(wiser.getMessages().get(1).getEnvelopeReceiver()); assertTrue(list.contains("tony@domain.com")); assertTrue(list.contains("darth@domain.com")); MimeMessage msg = ((WiserMessage) wiser.getMessages().get(0)).getMimeMessage(); assertEquals("ReminderWithNotificationReserved:you have new task to be started", msg.getSubject()); assertEquals("task is not started", msg.getContent()); msg = ((WiserMessage) wiser.getMessages().get(1)).getMimeMessage(); assertEquals("ReminderWithNotificationReserved:you have new task to be started", msg.getSubject()); assertEquals("task is not started", msg.getContent()); }
@After public void stopWiser() { wiser.stop(); LOGGER.info("Wiser stopped."); }
@Test public void shouldSendTestEmailWithSTARTTLS() { smtpServer.getServer().setEnableTLS(true); smtpServer.getServer().setRequireTLS(true); configure(); when(configuration.getSecureConnection()).thenReturn("STARTTLS"); try { underTest.sendTestEmail("user@nowhere", "Test Message from SonarQube", "This is a test message from SonarQube."); fail("An SSL exception was expected a a proof that STARTTLS is enabled"); } catch (EmailException e) { // We don't have a SSL certificate so we are expecting a SSL error assertThat(e.getCause().getMessage()).isEqualTo("Could not convert socket to TLS"); } }
@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."); boolean delivered = underTest.deliver(emailMessage); List<WiserMessage> messages = smtpServer.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/1@nemo.sonarsource.org>"); assertThat(email.getHeader("References", null)).isEqualTo("<reviews/view/1@nemo.sonarsource.org>"); 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 from NoWhere)\" <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."); assertThat(delivered).isTrue(); }
public void tearDown(){ if (wiser != null) { wiser.stop(); try { Thread.sleep(1000); } catch (Throwable t) { // Do nothing } } super.tearDown(); }
final List<WiserMessage> wiserMessages = wiser.getMessages(); final MimeMessage mailMessage = wiserMessage.getMimeMessage(); EmailParserUtils.handleMessage(null, mailMessage, emailFragments);
@Test public void shouldThrowAnExceptionWhenUnableToSendTestEmail() { configure(); smtpServer.stop(); try { underTest.sendTestEmail("user@nowhere", "Test Message from SonarQube", "This is a test message from SonarQube."); fail(); } catch (EmailException e) { // expected } }
final List<WiserMessage> wiserMessages = wiser.getMessages(); final MimeMessage mailMessage = wiserMessage.getMimeMessage(); EmailParserUtils.handleMessage(null, mailMessage, emailFragments);
@After public void clean() { if (wiser != null) { wiser.stop(); try { Thread.sleep(1000); } catch (Throwable t) { // Do nothing } } super.tearDown(); if (emf != null) { emf.close(); } if (pds != null) { pds.close(); } } }
@Test public void shouldNotThrowAnExceptionWhenUnableToSendEmail() { configure(); smtpServer.stop(); EmailMessage emailMessage = new EmailMessage() .setTo("user@nowhere") .setSubject("Foo") .setMessage("Bar"); boolean delivered = underTest.deliver(emailMessage); assertThat(delivered).isFalse(); }