aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-ws-client/src
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2014-01-23 14:14:04 +0100
committerJulien Lancelot <julien.lancelot@sonarsource.com>2014-01-23 14:14:04 +0100
commit9a71693b65cf1357b354f123348738ea9ac3b61b (patch)
tree80cc9414fedac224e87617014efad3c5b2673747 /sonar-ws-client/src
parent0583f0b2e02c2dd1c6f32c3063ed9716af972eac (diff)
downloadsonarqube-9a71693b65cf1357b354f123348738ea9ac3b61b.tar.gz
sonarqube-9a71693b65cf1357b354f123348738ea9ac3b61b.zip
IssueShowWS : Add assign to me action
Diffstat (limited to 'sonar-ws-client/src')
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/issue/IssueClient.java8
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/issue/internal/DefaultIssueClient.java7
-rw-r--r--sonar-ws-client/src/test/java/org/sonar/wsclient/issue/internal/DefaultIssueClientTest.java16
3 files changed, 31 insertions, 0 deletions
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/IssueClient.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/IssueClient.java
index d7ea45952c9..69c380f605e 100644
--- a/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/IssueClient.java
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/IssueClient.java
@@ -43,6 +43,14 @@ public interface IssueClient {
Issue assign(String issueKey, @Nullable String assignee);
/**
+ * Assign an existing issue to current user.
+ *
+ * @return the updated issue
+ */
+ Issue assignToMe(String issueKey);
+
+
+ /**
* Change the severity of an existing issue. Supported values are "INFO", "MINOR",
* "MAJOR", "CRITICAL" and "BLOCKER".
*
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/internal/DefaultIssueClient.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/internal/DefaultIssueClient.java
index 95b4cf798fa..b9c5ae350af 100644
--- a/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/internal/DefaultIssueClient.java
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/internal/DefaultIssueClient.java
@@ -70,6 +70,13 @@ public class DefaultIssueClient implements IssueClient {
}
@Override
+ public Issue assignToMe(String issueKey) {
+ Map<String, Object> params = EncodingUtils.toMap("issue", issueKey, "me", "true");
+ String json = requestFactory.post("/api/issues/assign", params);
+ return jsonToIssue(json);
+ }
+
+ @Override
public Issue plan(String issueKey, @Nullable String actionPlanKey) {
Map<String, Object> params = EncodingUtils.toMap("issue", issueKey, "plan", actionPlanKey);
String json = requestFactory.post("/api/issues/plan", params);
diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/issue/internal/DefaultIssueClientTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/issue/internal/DefaultIssueClientTest.java
index b01badc4bdc..983ed391e8d 100644
--- a/sonar-ws-client/src/test/java/org/sonar/wsclient/issue/internal/DefaultIssueClientTest.java
+++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/issue/internal/DefaultIssueClientTest.java
@@ -101,6 +101,22 @@ public class DefaultIssueClientTest {
}
@Test
+ public void assign_to_me() {
+ HttpRequestFactory requestFactory = new HttpRequestFactory(httpServer.url());
+ httpServer.stubResponseBody("{\"issue\": {\"key\": \"ABCDE\"}}");
+
+ IssueClient client = new DefaultIssueClient(requestFactory);
+ Issue result = client.assignToMe("ABCDE");
+
+ assertThat(httpServer.requestedPath()).isEqualTo("/api/issues/assign");
+ assertThat(httpServer.requestParams()).includes(
+ entry("issue", "ABCDE"),
+ entry("me", "true")
+ );
+ assertThat(result).isNotNull();
+ }
+
+ @Test
public void should_unassign() {
HttpRequestFactory requestFactory = new HttpRequestFactory(httpServer.url());
httpServer.stubResponseBody("{\"issue\": {\"key\": \"ABCDE\"}}");