aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-ws-client
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@gmail.com>2013-06-19 08:28:09 +0200
committerJulien Lancelot <julien.lancelot@gmail.com>2013-06-19 08:28:09 +0200
commit07d0c8f4bfd48c84d9dff39c1f69892e5a1dcc38 (patch)
treeb1a0ea4511dfd0889e8e2b9b9c2d0dc2655db962 /sonar-ws-client
parentbdb21c18c2ac04c2f3664260a04ee9ba6b93a988 (diff)
downloadsonarqube-07d0c8f4bfd48c84d9dff39c1f69892e5a1dcc38.tar.gz
sonarqube-07d0c8f4bfd48c84d9dff39c1f69892e5a1dcc38.zip
SONAR-4383 Add WS to execute issue filter
Diffstat (limited to 'sonar-ws-client')
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/issue/IssueClient.java7
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/issue/internal/DefaultIssueClient.java9
-rw-r--r--sonar-ws-client/src/test/java/org/sonar/wsclient/issue/internal/DefaultIssueClientTest.java14
3 files changed, 29 insertions, 1 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 1e1fd52df4f..96a7fb08294 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
@@ -36,6 +36,13 @@ public interface IssueClient {
Issues find(IssueQuery query);
/**
+ * Wrap the web service /api/issues/filter in order to execute issue filter.
+ *
+ * @since 3.7
+ */
+ Issues filter(String filterId);
+
+ /**
* Assign an existing issue to a user. A null assignee removes the assignee.
*
* @return the updated issue
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 c4b2f326555..030b3ea2323 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
@@ -25,6 +25,7 @@ import org.sonar.wsclient.internal.HttpRequestFactory;
import org.sonar.wsclient.issue.*;
import javax.annotation.Nullable;
+
import java.util.List;
import java.util.Map;
@@ -43,12 +44,20 @@ public class DefaultIssueClient implements IssueClient {
this.parser = new IssueJsonParser();
}
+ @Override
public Issues find(IssueQuery query) {
String json = requestFactory.get(SEARCH_URL, query.urlParams());
return parser.parseIssues(json);
}
@Override
+ public Issues filter(String filterId) {
+ Map<String, Object> queryParams = EncodingUtils.toMap("filter", filterId);
+ String json = requestFactory.get("/api/issues/filter", queryParams);
+ return parser.parseIssues(json);
+ }
+
+ @Override
public Issue create(NewIssue newIssue) {
String json = requestFactory.post("/api/issues/create", newIssue.urlParams());
return jsonToIssue(json);
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 d262073e26e..6cb81463043 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
@@ -26,7 +26,6 @@ import org.sonar.wsclient.MockHttpServerInterceptor;
import org.sonar.wsclient.base.HttpException;
import org.sonar.wsclient.internal.HttpRequestFactory;
import org.sonar.wsclient.issue.*;
-import org.sonar.wsclient.issue.internal.DefaultIssueClient;
import java.util.List;
@@ -68,6 +67,19 @@ public class DefaultIssueClientTest {
}
@Test
+ public void should_get_issue_filter() {
+ HttpRequestFactory requestFactory = new HttpRequestFactory(httpServer.url());
+ httpServer.doReturnBody("{\"issues\": [{\"key\": \"ABCDE\"}]}");
+
+ IssueClient client = new DefaultIssueClient(requestFactory);
+ Issues issues = client.filter("5");
+
+ assertThat(httpServer.requestedPath()).isEqualTo("/api/issues/filter?filter=5");
+ assertThat(issues.list()).hasSize(1);
+ assertThat(issues.list().get(0).key()).isEqualTo("ABCDE");
+ }
+
+ @Test
public void should_set_severity() {
HttpRequestFactory requestFactory = new HttpRequestFactory(httpServer.url());
httpServer.doReturnBody("{\"issue\": {\"key\": \"ABCDE\"}}");