use of org.sonar.api.notifications.Notification in project sonarqube by SonarSource.
the class AlertsEmailTemplateTest method shouldFormatBackToGreenMessage.
@Test
public void shouldFormatBackToGreenMessage() {
Notification notification = createNotification("Green (was Red)", "", "OK", "false");
EmailMessage message = template.format(notification);
assertThat(message.getMessageId(), is("alerts/45"));
assertThat(message.getSubject(), is("\"Foo\" is back to green"));
assertThat(message.getMessage(), is("" + "Project: Foo\n" + "Quality gate status: Green (was Red)\n" + "\n" + "\n" + "See it in SonarQube: http://nemo.sonarsource.org/dashboard/index/org.sonar.foo:foo"));
}
use of org.sonar.api.notifications.Notification in project sonarqube by SonarSource.
the class AlertsEmailTemplateTest method shouldFormatAlertWithSeveralMessages.
@Test
public void shouldFormatAlertWithSeveralMessages() {
Notification notification = createNotification("Orange (was Red)", "violations > 4, coverage < 75%", "WARN", "false");
EmailMessage message = template.format(notification);
assertThat(message.getMessageId(), is("alerts/45"));
assertThat(message.getSubject(), is("Quality gate status changed on \"Foo\""));
assertThat(message.getMessage(), is("" + "Project: Foo\n" + "Quality gate status: Orange (was Red)\n" + "\n" + "Quality gate thresholds:\n" + " - violations > 4\n" + " - coverage < 75%\n" + "\n" + "See it in SonarQube: http://nemo.sonarsource.org/dashboard/index/org.sonar.foo:foo"));
}
use of org.sonar.api.notifications.Notification in project sonarqube by SonarSource.
the class EmailNotificationChannelTest method deliverAll_returns_count_of_request_for_which_at_least_one_formatter_accept_it.
@Test
public void deliverAll_returns_count_of_request_for_which_at_least_one_formatter_accept_it() throws MessagingException, IOException {
String recipientEmail = "foo@donut";
configure();
Notification notification1 = mock(Notification.class);
Notification notification2 = mock(Notification.class);
Notification notification3 = mock(Notification.class);
EmailTemplate template1 = mock(EmailTemplate.class);
EmailTemplate template3 = mock(EmailTemplate.class);
EmailMessage emailMessage1 = new EmailMessage().setTo(recipientEmail).setSubject("sub11").setPlainTextMessage("msg11");
EmailMessage emailMessage3 = new EmailMessage().setTo(recipientEmail).setSubject("sub3").setPlainTextMessage("msg3");
when(template1.format(notification1)).thenReturn(emailMessage1);
when(template3.format(notification3)).thenReturn(emailMessage3);
Set<EmailDeliveryRequest> requests = Stream.of(notification1, notification2, notification3).map(t -> new EmailDeliveryRequest(recipientEmail, t)).collect(toSet());
EmailNotificationChannel underTest = new EmailNotificationChannel(configuration, new EmailTemplate[] { template1, template3 }, null);
int count = underTest.deliverAll(requests);
assertThat(count).isEqualTo(2);
assertThat(smtpServer.getMessages()).hasSize(2);
Map<String, MimeMessage> messagesBySubject = smtpServer.getMessages().stream().map(t -> {
try {
return t.getMimeMessage();
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}).collect(toMap(t -> {
try {
return t.getSubject();
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}, t -> t));
assertThat((String) messagesBySubject.get(SUBJECT_PREFIX + " " + emailMessage1.getSubject()).getContent()).contains(emailMessage1.getMessage());
assertThat((String) messagesBySubject.get(SUBJECT_PREFIX + " " + emailMessage3.getSubject()).getContent()).contains(emailMessage3.getMessage());
}
use of org.sonar.api.notifications.Notification in project sonarqube by SonarSource.
the class NotificationTest method shouldEqual.
@Test
public void shouldEqual() {
assertThat(notification.equals("")).isFalse();
assertThat(notification.equals(null)).isFalse();
assertThat(notification.equals(notification)).isTrue();
Notification otherNotif = new Notification("alerts").setDefaultMessage("There are new alerts").setFieldValue("alertCount", "42");
assertThat(otherNotif).isEqualTo(notification);
otherNotif = new Notification("alerts").setDefaultMessage("There are new alerts").setFieldValue("alertCount", "15000");
assertThat(otherNotif).isNotEqualTo(notification);
}
use of org.sonar.api.notifications.Notification in project sonarqube by SonarSource.
the class NotificationQueueDaoTest method should_findOldest.
@Test
public void should_findOldest() {
when(system2.now()).thenAnswer(new Answer<Long>() {
private long counter;
@Override
public Long answer(InvocationOnMock invocationOnMock) {
counter++;
return counter;
}
});
List<NotificationQueueDto> notifs = IntStream.range(0, 5).mapToObj(i -> toNotificationQueueDto(new Notification("foo_" + i))).collect(toList());
dao.insert(notifs);
db.commit();
assertThat(dao.selectOldest(3)).extracting(NotificationQueueDto::getUuid).containsExactlyElementsOf(Arrays.asList("1", "2", "3"));
}
Aggregations