Search in sources :

Example 1 with ChangelogWsResponse

use of org.sonarqube.ws.Issues.ChangelogWsResponse in project sonarqube by SonarSource.

the class ChangelogAction method handle.

@Override
public void handle(Request request, Response response) throws Exception {
    try (DbSession dbSession = dbClient.openSession(false)) {
        ChangelogWsResponse wsResponse = Stream.of(request).map(searchChangelog(dbSession)).map(buildResponse()).collect(Collectors.toOneElement());
        writeProtobuf(wsResponse, request, response);
    }
}
Also used : DbSession(org.sonar.db.DbSession) ChangelogWsResponse(org.sonarqube.ws.Issues.ChangelogWsResponse)

Example 2 with ChangelogWsResponse

use of org.sonarqube.ws.Issues.ChangelogWsResponse in project sonarqube by SonarSource.

the class ChangelogActionTest method changelog_of_file_move_is_empty_when_files_does_not_exists.

@Test
public void changelog_of_file_move_is_empty_when_files_does_not_exists() throws Exception {
    IssueDto issueDto = db.issues().insertIssue(newIssue());
    userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
    db.issues().insertFieldDiffs(issueDto, new FieldDiffs().setDiff("file", "UNKNOWN_1", "UNKNOWN_2"));
    ChangelogWsResponse result = call(issueDto.getKey());
    assertThat(result.getChangelogList()).hasSize(1);
    assertThat(result.getChangelogList().get(0).getDiffsList()).extracting(Diff::getKey, Diff::hasOldValue, Diff::hasNewValue).containsOnly(tuple("file", false, false));
}
Also used : ChangelogWsResponse(org.sonarqube.ws.Issues.ChangelogWsResponse) FieldDiffs(org.sonar.core.issue.FieldDiffs) IssueDto(org.sonar.db.issue.IssueDto) Test(org.junit.Test)

Example 3 with ChangelogWsResponse

use of org.sonarqube.ws.Issues.ChangelogWsResponse in project sonarqube by SonarSource.

the class ChangelogActionTest method return_multiple_diffs.

@Test
public void return_multiple_diffs() throws Exception {
    UserDto user = db.users().insertUser();
    IssueDto issueDto = db.issues().insertIssue(newIssue());
    userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
    db.issues().insertFieldDiffs(issueDto, new FieldDiffs().setUserLogin(user.getLogin()).setDiff("severity", "MAJOR", "BLOCKER").setDiff("status", "RESOLVED", "CLOSED"));
    ChangelogWsResponse result = call(issueDto.getKey());
    assertThat(result.getChangelogList()).hasSize(1);
    assertThat(result.getChangelogList().get(0).getDiffsList()).extracting(Diff::getKey, Diff::getOldValue, Diff::getNewValue).containsOnly(tuple("severity", "MAJOR", "BLOCKER"), tuple("status", "RESOLVED", "CLOSED"));
}
Also used : ChangelogWsResponse(org.sonarqube.ws.Issues.ChangelogWsResponse) FieldDiffs(org.sonar.core.issue.FieldDiffs) UserDto(org.sonar.db.user.UserDto) UserTesting.newUserDto(org.sonar.db.user.UserTesting.newUserDto) IssueDto(org.sonar.db.issue.IssueDto) Test(org.junit.Test)

Example 4 with ChangelogWsResponse

use of org.sonarqube.ws.Issues.ChangelogWsResponse in project sonarqube by SonarSource.

the class ChangelogActionTest method return_changelog_on_user_without_email.

@Test
public void return_changelog_on_user_without_email() throws Exception {
    UserDto user = db.users().insertUser(UserTesting.newUserDto("john", "John", null));
    IssueDto issueDto = db.issues().insertIssue(newIssue());
    userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
    db.issues().insertFieldDiffs(issueDto, new FieldDiffs().setUserLogin(user.getLogin()).setDiff("severity", "MAJOR", "BLOCKER"));
    ChangelogWsResponse result = call(issueDto.getKey());
    assertThat(result.getChangelogList()).hasSize(1);
    assertThat(result.getChangelogList().get(0).getUser()).isNotNull().isEqualTo(user.getLogin());
    assertThat(result.getChangelogList().get(0).getUserName()).isNotNull().isEqualTo(user.getName());
    assertThat(result.getChangelogList().get(0).hasEmail()).isFalse();
}
Also used : ChangelogWsResponse(org.sonarqube.ws.Issues.ChangelogWsResponse) FieldDiffs(org.sonar.core.issue.FieldDiffs) UserDto(org.sonar.db.user.UserDto) UserTesting.newUserDto(org.sonar.db.user.UserTesting.newUserDto) IssueDto(org.sonar.db.issue.IssueDto) Test(org.junit.Test)

Example 5 with ChangelogWsResponse

use of org.sonarqube.ws.Issues.ChangelogWsResponse in project sonarqube by SonarSource.

the class ChangelogActionTest method return_changelog_not_having_user.

@Test
public void return_changelog_not_having_user() throws Exception {
    IssueDto issueDto = db.issues().insertIssue(newIssue());
    userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
    db.issues().insertFieldDiffs(issueDto, new FieldDiffs().setUserLogin(null).setDiff("severity", "MAJOR", "BLOCKER"));
    ChangelogWsResponse result = call(issueDto.getKey());
    assertThat(result.getChangelogList()).hasSize(1);
    assertThat(result.getChangelogList().get(0).hasUser()).isFalse();
    assertThat(result.getChangelogList().get(0).hasUserName()).isFalse();
    assertThat(result.getChangelogList().get(0).hasEmail()).isFalse();
    assertThat(result.getChangelogList().get(0).getDiffsList()).isNotEmpty();
}
Also used : ChangelogWsResponse(org.sonarqube.ws.Issues.ChangelogWsResponse) FieldDiffs(org.sonar.core.issue.FieldDiffs) IssueDto(org.sonar.db.issue.IssueDto) Test(org.junit.Test)

Aggregations

ChangelogWsResponse (org.sonarqube.ws.Issues.ChangelogWsResponse)13 Test (org.junit.Test)12 IssueDto (org.sonar.db.issue.IssueDto)12 FieldDiffs (org.sonar.core.issue.FieldDiffs)11 UserDto (org.sonar.db.user.UserDto)7 UserTesting.newUserDto (org.sonar.db.user.UserTesting.newUserDto)7 DbSession (org.sonar.db.DbSession)1 ComponentDto (org.sonar.db.component.ComponentDto)1 RuleDto (org.sonar.db.rule.RuleDto)1 RuleTesting.newRuleDto (org.sonar.db.rule.RuleTesting.newRuleDto)1