Search in sources :

Example 1 with User

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

the class NotificationFactory method getAssignee.

@CheckForNull
public User getAssignee(@Nullable String assigneeUuid, Map<String, UserDto> assigneesByUuid) {
    if (assigneeUuid == null) {
        return null;
    }
    UserDto dto = assigneesByUuid.get(assigneeUuid);
    checkState(dto != null, "Can not find DTO for assignee uuid %s", assigneeUuid);
    return new User(dto.getUuid(), dto.getLogin(), dto.getName());
}
Also used : User(org.sonar.server.issue.notification.IssuesChangesNotificationBuilder.User) UserDto(org.sonar.db.user.UserDto) CheckForNull(javax.annotation.CheckForNull)

Example 2 with User

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

the class IssuesChangesNotificationSerializer method readChange.

private static IssuesChangesNotificationBuilder.Change readChange(IssuesChangesNotification notification) {
    String dateFieldValue = notification.getFieldValue(FIELD_CHANGE_DATE);
    checkState(dateFieldValue != null, "Can not find field %s", FIELD_CHANGE_DATE);
    long date = Long.parseLong(dateFieldValue);
    String uuid = notification.getFieldValue(FIELD_CHANGE_AUTHOR_UUID);
    if (uuid == null) {
        return new IssuesChangesNotificationBuilder.AnalysisChange(date);
    }
    String login = notification.getFieldValue(FIELD_CHANGE_AUTHOR_LOGIN);
    checkState(login != null, "Can not find field %s", FIELD_CHANGE_AUTHOR_LOGIN);
    return new IssuesChangesNotificationBuilder.UserChange(date, new User(uuid, login, notification.getFieldValue(FIELD_CHANGE_AUTHOR_NAME)));
}
Also used : User(org.sonar.server.issue.notification.IssuesChangesNotificationBuilder.User)

Example 3 with User

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

the class IssuesChangesNotificationSerializer method serializeChange.

private static void serializeChange(IssuesChangesNotification notification, IssuesChangesNotificationBuilder.Change change) {
    notification.setFieldValue(FIELD_CHANGE_DATE, String.valueOf(change.date));
    if (change instanceof IssuesChangesNotificationBuilder.UserChange) {
        IssuesChangesNotificationBuilder.UserChange userChange = (IssuesChangesNotificationBuilder.UserChange) change;
        User user = userChange.getUser();
        notification.setFieldValue(FIELD_CHANGE_AUTHOR_UUID, user.getUuid());
        notification.setFieldValue(FIELD_CHANGE_AUTHOR_LOGIN, user.getLogin());
        user.getName().ifPresent(name -> notification.setFieldValue(FIELD_CHANGE_AUTHOR_NAME, name));
    }
}
Also used : User(org.sonar.server.issue.notification.IssuesChangesNotificationBuilder.User)

Example 4 with User

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

the class IssuesChangesNotificationBuilderTest method UserChange_not_equal.

@Test
@UseDataProvider("userData")
public void UserChange_not_equal(Object object) {
    long now = System2.INSTANCE.now();
    String uuid_1 = "uuid-1";
    String login_1 = "login-1";
    String name_1 = "name-1";
    UserChange userChange1 = new UserChange(now, new User(uuid_1, login_1, name_1));
    assertThat(userChange1).isNotEqualTo(object);
}
Also used : UserChange(org.sonar.server.issue.notification.IssuesChangesNotificationBuilder.UserChange) User(org.sonar.server.issue.notification.IssuesChangesNotificationBuilder.User) Test(org.junit.Test) UseDataProvider(com.tngtech.java.junit.dataprovider.UseDataProvider)

Example 5 with User

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

the class IssuesChangesNotificationBuilderTest method ChangedIssue_toString.

@Test
public void ChangedIssue_toString() {
    ChangedIssue changedIssue = new ChangedIssue.Builder("key").setRule(newRule("repository", "key", RuleType.CODE_SMELL, "name")).setProject(new Project.Builder("uuid").setKey("key").setProjectName("name").setBranchName("branch-name").build()).setNewStatus("status").setNewResolution("resolution").setAssignee(new User("uuid", "login", "name")).build();
    assertThat(changedIssue).hasToString("ChangedIssue{key='key', newStatus='status', newResolution='resolution', " + "assignee=User{uuid='uuid', login='login', name='name'}, " + "rule=Rule{key=repository:key, type=CODE_SMELL, name='name'}, " + "project=Project{uuid='uuid', key='key', projectName='name', branchName='branch-name'}}");
}
Also used : Project(org.sonar.server.issue.notification.IssuesChangesNotificationBuilder.Project) User(org.sonar.server.issue.notification.IssuesChangesNotificationBuilder.User) ChangedIssue(org.sonar.server.issue.notification.IssuesChangesNotificationBuilder.ChangedIssue) Test(org.junit.Test)

Aggregations

User (org.sonar.server.issue.notification.IssuesChangesNotificationBuilder.User)35 UserChange (org.sonar.server.issue.notification.IssuesChangesNotificationBuilder.UserChange)24 Test (org.junit.Test)23 ChangedIssue (org.sonar.server.issue.notification.IssuesChangesNotificationBuilder.ChangedIssue)21 Project (org.sonar.server.issue.notification.IssuesChangesNotificationBuilder.Project)19 Random (java.util.Random)16 Set (java.util.Set)14 UseDataProvider (com.tngtech.java.junit.dataprovider.UseDataProvider)13 Collectors (java.util.stream.Collectors)12 NotificationManager (org.sonar.server.notification.NotificationManager)12 DataProvider (com.tngtech.java.junit.dataprovider.DataProvider)11 IntStream (java.util.stream.IntStream)11 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)11 AnalysisChange (org.sonar.server.issue.notification.IssuesChangesNotificationBuilder.AnalysisChange)11 Rule (org.sonar.server.issue.notification.IssuesChangesNotificationBuilder.Rule)11 ImmutableSet (com.google.common.collect.ImmutableSet)10 List (java.util.List)10 Nullable (javax.annotation.Nullable)10 MoreCollectors (org.sonar.core.util.stream.MoreCollectors)10 IssuesChangesNotificationBuilderTesting.newRandomNotAHotspotRule (org.sonar.server.issue.notification.IssuesChangesNotificationBuilderTesting.newRandomNotAHotspotRule)10