Search in sources :

Example 11 with EmailMessage

use of org.sonar.server.issue.notification.EmailMessage in project sonarqube by SonarSource.

the class BuiltInQPChangeNotificationTemplateTest method notification_contains_many_profiles.

@Test
public void notification_contains_many_profiles() {
    String profileName1 = "profile1_" + randomAlphanumeric(20);
    String languageKey1 = "langkey1_" + randomAlphanumeric(20);
    String languageName1 = "langName1_" + randomAlphanumeric(20);
    String profileName2 = "profile2_" + randomAlphanumeric(20);
    String languageKey2 = "langkey2_" + randomAlphanumeric(20);
    String languageName2 = "langName2_" + randomAlphanumeric(20);
    BuiltInQPChangeNotificationBuilder notification = new BuiltInQPChangeNotificationBuilder().addProfile(Profile.newBuilder().setProfileName(profileName1).setLanguageKey(languageKey1).setLanguageName(languageName1).setNewRules(2).build()).addProfile(Profile.newBuilder().setProfileName(profileName2).setLanguageKey(languageKey2).setLanguageName(languageName2).setNewRules(13).build());
    EmailMessage emailMessage = underTest.format(notification.build());
    assertThat(emailMessage.getMessage()).containsSubsequence("The following built-in profiles have been updated:\n", profileTitleText(profileName1, languageKey1, languageName1), " 2 new rules\n", profileTitleText(profileName2, languageKey2, languageName2), " 13 new rules\n", "This is a good time to review your quality profiles and update them to benefit from the latest evolutions: " + server.getPublicRootUrl() + "/profiles");
}
Also used : EmailMessage(org.sonar.server.issue.notification.EmailMessage) Test(org.junit.Test)

Example 12 with EmailMessage

use of org.sonar.server.issue.notification.EmailMessage in project sonarqube by SonarSource.

the class BuiltInQPChangeNotificationTemplateTest method notification_contains_encoded_profile_name.

@Test
public void notification_contains_encoded_profile_name() {
    BuiltInQPChangeNotificationBuilder notification = new BuiltInQPChangeNotificationBuilder().addProfile(Profile.newBuilder().setProfileName("Sonar Way").setLanguageKey("java").setLanguageName(newLanguageName()).build());
    EmailMessage emailMessage = underTest.format(notification.build());
    assertThat(emailMessage.getMessage()).contains(server.getPublicRootUrl() + "/profiles/changelog?language=java&name=Sonar+Way");
}
Also used : EmailMessage(org.sonar.server.issue.notification.EmailMessage) Test(org.junit.Test)

Example 13 with EmailMessage

use of org.sonar.server.issue.notification.EmailMessage in project sonarqube by SonarSource.

the class BuiltInQPChangeNotificationTemplateTest method notification_contains_from_and_to_date.

@Test
public void notification_contains_from_and_to_date() {
    String profileName = newProfileName();
    String languageKey = newLanguageKey();
    String languageName = newLanguageName();
    long startDate = 1_000_000_000_000L;
    long endDate = startDate + 1_100_000_000_000L;
    BuiltInQPChangeNotificationBuilder notification = new BuiltInQPChangeNotificationBuilder().addProfile(Profile.newBuilder().setProfileName(profileName).setLanguageKey(languageKey).setLanguageName(languageName).setStartDate(startDate).setEndDate(endDate).build());
    EmailMessage emailMessage = underTest.format(notification.build());
    assertMessage(emailMessage, profileTitleText(profileName, languageKey, languageName, formatDate(new Date(startDate)), formatDate(new Date(endDate))));
}
Also used : EmailMessage(org.sonar.server.issue.notification.EmailMessage) DateUtils.formatDate(org.sonar.api.utils.DateUtils.formatDate) Date(java.util.Date) Test(org.junit.Test)

Example 14 with EmailMessage

use of org.sonar.server.issue.notification.EmailMessage in project sonarqube by SonarSource.

the class BuiltInQPChangeNotificationTemplateTest method notification_contains_count_of_new_rules.

@Test
public void notification_contains_count_of_new_rules() {
    String profileName = newProfileName();
    String languageKey = newLanguageKey();
    String languageName = newLanguageName();
    BuiltInQPChangeNotificationBuilder notification = new BuiltInQPChangeNotificationBuilder().addProfile(Profile.newBuilder().setProfileName(profileName).setLanguageKey(languageKey).setLanguageName(languageName).setNewRules(2).build());
    EmailMessage emailMessage = underTest.format(notification.build());
    assertMessage(emailMessage, "\n 2 new rules\n");
}
Also used : EmailMessage(org.sonar.server.issue.notification.EmailMessage) Test(org.junit.Test)

Example 15 with EmailMessage

use of org.sonar.server.issue.notification.EmailMessage in project sonarqube by SonarSource.

the class BuiltInQPChangeNotificationTemplateTest method notification_contains_list_of_new_updated_and_removed_rules.

@Test
public void notification_contains_list_of_new_updated_and_removed_rules() {
    String profileName = newProfileName();
    String languageKey = newLanguageKey();
    String languageName = newLanguageName();
    BuiltInQPChangeNotificationBuilder notification = new BuiltInQPChangeNotificationBuilder().addProfile(Profile.newBuilder().setProfileName(profileName).setLanguageKey(languageKey).setLanguageName(languageName).setNewRules(2).setUpdatedRules(3).setRemovedRules(4).build());
    EmailMessage emailMessage = underTest.format(notification.build());
    assertMessage(emailMessage, "\n" + " 2 new rules\n" + " 3 rules have been updated\n" + " 4 rules removed\n");
}
Also used : EmailMessage(org.sonar.server.issue.notification.EmailMessage) Test(org.junit.Test)

Aggregations

EmailMessage (org.sonar.server.issue.notification.EmailMessage)32 Test (org.junit.Test)27 Notification (org.sonar.api.notifications.Notification)13 CheckForNull (javax.annotation.CheckForNull)3 MimeMessage (javax.mail.internet.MimeMessage)3 WiserMessage (org.subethamail.wiser.WiserMessage)3 UseDataProvider (com.tngtech.java.junit.dataprovider.UseDataProvider)2 Date (java.util.Date)2 EmailException (org.apache.commons.mail.EmailException)2 DateUtils.formatDate (org.sonar.api.utils.DateUtils.formatDate)2 EmailTemplate (org.sonar.server.issue.notification.EmailTemplate)2 EmailDeliveryRequest (org.sonar.server.notification.email.EmailNotificationChannel.EmailDeliveryRequest)2 DataProvider (com.tngtech.java.junit.dataprovider.DataProvider)1 DataProviderRunner (com.tngtech.java.junit.dataprovider.DataProviderRunner)1 IOException (java.io.IOException)1 Collections (java.util.Collections)1 List (java.util.List)1 Map (java.util.Map)1 Random (java.util.Random)1 Set (java.util.Set)1