diff options
author | Julien Lancelot <julien.lancelot@sonarsource.com> | 2016-12-12 17:52:19 +0100 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@sonarsource.com> | 2016-12-13 16:15:07 +0100 |
commit | 548d182e257e940a9016123922c9fa6ce510d415 (patch) | |
tree | 972d9fadbe444b2e12af412f07190bcf84b622ab /it/it-tests | |
parent | 90f6238d3434a2dcfb1ac85f7a253c0cd41ede86 (diff) | |
download | sonarqube-548d182e257e940a9016123922c9fa6ce510d415.tar.gz sonarqube-548d182e257e940a9016123922c9fa6ce510d415.zip |
SONAR-7290 Add changelog action in IssueClient from ws-client
Diffstat (limited to 'it/it-tests')
3 files changed, 46 insertions, 55 deletions
diff --git a/it/it-tests/src/test/java/it/authorisation/IssuePermissionTest.java b/it/it-tests/src/test/java/it/authorisation/IssuePermissionTest.java index 0ae2fa15ce0..93a7e418939 100644 --- a/it/it-tests/src/test/java/it/authorisation/IssuePermissionTest.java +++ b/it/it-tests/src/test/java/it/authorisation/IssuePermissionTest.java @@ -33,6 +33,7 @@ import org.sonar.wsclient.issue.BulkChangeQuery; import org.sonar.wsclient.issue.Issue; import org.sonar.wsclient.issue.IssueQuery; import org.sonar.wsclient.user.UserParameters; +import org.sonarqube.ws.Issues; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.permission.AddUserWsRequest; import org.sonarqube.ws.client.permission.RemoveGroupWsRequest; @@ -40,6 +41,7 @@ import org.sonarqube.ws.client.permission.RemoveGroupWsRequest; import static junit.framework.TestCase.fail; import static org.assertj.core.api.Assertions.assertThat; import static util.ItUtils.newAdminWsClient; +import static util.ItUtils.newUserWsClient; import static util.ItUtils.projectDir; public class IssuePermissionTest { @@ -122,14 +124,14 @@ public class IssuePermissionTest { // Without user permission, a user cannot see issue changelog on the project try { - orchestrator.getServer().wsClient(withoutBrowsePermission, "password").issueClient().changes(issue.key()); + changelog(issue.key(), withoutBrowsePermission, "password"); fail(); } catch (Exception e) { - assertThat(e).isInstanceOf(HttpException.class).describedAs("404"); + assertThat(e).isInstanceOf(org.sonarqube.ws.client.HttpException.class).describedAs("403"); } // Without user permission, a user cannot see issues on the project - assertThat(orchestrator.getServer().wsClient(withBrowsePermission, "password").issueClient().changes(issue.key())).isNotEmpty(); + assertThat(changelog(issue.key(), withBrowsePermission, "password").getChangelogList()).isNotEmpty(); } finally { client.userClient().deactivate(withBrowsePermission); @@ -242,4 +244,8 @@ public class IssuePermissionTest { .setProjectKey(projectKey) .setPermission(permission)); } + + private static Issues.ChangelogWsResponse changelog(String issueKey, String login, String password) { + return newUserWsClient(orchestrator, login, password).issues().changelog(issueKey); + } } diff --git a/it/it-tests/src/test/java/it/issue/IssueChangelogTest.java b/it/it-tests/src/test/java/it/issue/IssueChangelogTest.java index f4a1d58b038..75a0c78d6be 100644 --- a/it/it-tests/src/test/java/it/issue/IssueChangelogTest.java +++ b/it/it-tests/src/test/java/it/issue/IssueChangelogTest.java @@ -24,12 +24,14 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.sonar.wsclient.issue.Issue; -import org.sonar.wsclient.issue.IssueChange; -import org.sonar.wsclient.issue.IssueChangeDiff; +import org.sonarqube.ws.Issues; +import org.sonarqube.ws.Issues.ChangelogWsResponse.Changelog; import util.ProjectAnalysis; import util.ProjectAnalysisRule; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.tuple; +import static util.ItUtils.newAdminWsClient; public class IssueChangelogTest extends AbstractIssueTest { @@ -54,16 +56,14 @@ public class IssueChangelogTest extends AbstractIssueTest { adminIssueClient().assign(issue.key(), "admin"); - List<IssueChange> changes = retrieveChangeForIssue(issue.key()); + List<Changelog> changes = changelog(issue.key()).getChangelogList(); assertThat(changes).hasSize(1); - IssueChange change = changes.get(0); - assertThat(change.user()).isEqualTo("admin"); - assertThat(change.creationDate()).isNotNull(); - assertThat(change.diffs()).hasSize(1); - IssueChangeDiff changeDiff = change.diffs().get(0); - assertThat(changeDiff.key()).isEqualTo("assignee"); - assertThat(changeDiff.oldValue()).isNull(); - assertThat(changeDiff.newValue()).isEqualTo("Administrator"); + Changelog change = changes.get(0); + assertThat(change.getUser()).isEqualTo("admin"); + assertThat(change.getCreationDate()).isNotNull(); + assertThat(change.getDiffsList()) + .extracting(Changelog.Diff::getKey, Changelog.Diff::hasOldValue, Changelog.Diff::getNewValue) + .containsOnly(tuple("assignee", false, "Administrator")); } @Test @@ -74,48 +74,32 @@ public class IssueChangelogTest extends AbstractIssueTest { adminIssueClient().doTransition(issue.key(), "resolve"); xooSampleAnalysis.run(); - List<IssueChange> changes = retrieveChangeForIssue(issue.key()); + List<Changelog> changes = changelog(issue.key()).getChangelogList(); assertThat(changes).hasSize(2); // Change done by the user (first change is be the oldest one) - IssueChange change1 = changes.get(0); - assertThat(change1.user()).isEqualTo("admin"); - assertThat(change1.creationDate()).isNotNull(); - assertThat(change1.diffs()).hasSize(2); - - IssueChangeDiff change1Diff1 = change1.diffs().get(0); - assertThat(change1Diff1.key()).isEqualTo("resolution"); - assertThat(change1Diff1.oldValue()).isNull(); - assertThat(change1Diff1.newValue()).isEqualTo("FIXED"); - - IssueChangeDiff change1Diff2 = change1.diffs().get(1); - assertThat(change1Diff2.key()).isEqualTo("status"); - assertThat(change1Diff2.oldValue()).isEqualTo("OPEN"); - assertThat(change1Diff2.newValue()).isEqualTo("RESOLVED"); + Changelog change1 = changes.get(0); + assertThat(change1.getUser()).isEqualTo("admin"); + assertThat(change1.getCreationDate()).isNotNull(); + assertThat(change1.getDiffsList()) + .extracting(Changelog.Diff::getKey, Changelog.Diff::getOldValue, Changelog.Diff::getNewValue) + .containsOnly(tuple("resolution", "", "FIXED"), tuple("status", "OPEN", "RESOLVED")); // Change done by scan - IssueChange change2 = changes.get(1); - assertThat(change2.user()).isNull(); - assertThat(change2.creationDate()).isNotNull(); - assertThat(change2.diffs()).hasSize(2); - - IssueChangeDiff changeDiff1 = change2.diffs().get(0); - assertThat(changeDiff1.key()).isEqualTo("resolution"); - assertThat(changeDiff1.oldValue()).isNull(); - assertThat(changeDiff1.newValue()).isNull(); - - IssueChangeDiff changeDiff2 = change2.diffs().get(1); - assertThat(changeDiff2.key()).isEqualTo("status"); - assertThat(changeDiff2.oldValue()).isEqualTo("RESOLVED"); - assertThat(changeDiff2.newValue()).isEqualTo("REOPENED"); + Changelog change2 = changes.get(1); + assertThat(change2.hasUser()).isFalse(); + assertThat(change2.getCreationDate()).isNotNull(); + assertThat(change2.getDiffsList()) + .extracting(Changelog.Diff::getKey, Changelog.Diff::getOldValue, Changelog.Diff::getNewValue) + .containsOnly(tuple("resolution", "", ""), tuple("status", "RESOLVED", "REOPENED")); } private void assertIssueHasNoChange(String issueKey) { - assertThat(retrieveChangeForIssue(issueKey)).isEmpty(); + assertThat(changelog(issueKey).getChangelogList()).isEmpty(); } - private List<IssueChange> retrieveChangeForIssue(String issueKey) { - return issueClient().changes(issueKey); + private static Issues.ChangelogWsResponse changelog(String issueKey) { + return newAdminWsClient(ORCHESTRATOR).issues().changelog(issueKey); } } diff --git a/it/it-tests/src/test/java/it/qualityModel/TechnicalDebtInIssueChangelogTest.java b/it/it-tests/src/test/java/it/qualityModel/TechnicalDebtInIssueChangelogTest.java index f64abe6a5ce..ab44372993f 100644 --- a/it/it-tests/src/test/java/it/qualityModel/TechnicalDebtInIssueChangelogTest.java +++ b/it/it-tests/src/test/java/it/qualityModel/TechnicalDebtInIssueChangelogTest.java @@ -29,12 +29,13 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonar.wsclient.issue.Issue; -import org.sonar.wsclient.issue.IssueChange; -import org.sonar.wsclient.issue.IssueChangeDiff; import org.sonar.wsclient.issue.IssueClient; import org.sonar.wsclient.issue.IssueQuery; +import org.sonarqube.ws.Issues; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.tuple; +import static util.ItUtils.newAdminWsClient; import static util.ItUtils.projectDir; /** @@ -71,16 +72,16 @@ public class TechnicalDebtInIssueChangelogTest { IssueClient issueClient = orchestrator.getServer().wsClient().issueClient(); Issue issue = issueClient.find(IssueQuery.create()).list().get(0); - List<IssueChange> changes = issueClient.changes(issue.key()); + List<Issues.ChangelogWsResponse.Changelog> changes = changelog(issue.key()).getChangelogList(); assertThat(changes).hasSize(1); - IssueChange change = changes.get(0); + assertThat(changes.get(0).getDiffsList()) + .extracting(Issues.ChangelogWsResponse.Changelog.Diff::getKey, Issues.ChangelogWsResponse.Changelog.Diff::getOldValue, Issues.ChangelogWsResponse.Changelog.Diff::getNewValue) + .containsOnly(tuple("effort", "10", "100")); + } - assertThat(change.diffs()).hasSize(1); - IssueChangeDiff changeDiff = change.diffs().get(0); - assertThat(changeDiff.key()).isEqualTo("effort"); - assertThat(changeDiff.oldValue()).isEqualTo("10"); - assertThat(changeDiff.newValue()).isEqualTo("100"); + private static Issues.ChangelogWsResponse changelog(String issueKey) { + return newAdminWsClient(orchestrator).issues().changelog(issueKey); } } |