summaryrefslogtreecommitdiffstats
path: root/sonar-ws-client
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@gmail.com>2013-04-16 12:27:46 +0200
committerJulien Lancelot <julien.lancelot@gmail.com>2013-04-16 12:27:46 +0200
commit107195ad1754f1495a441d87df7994f98235f472 (patch)
tree6a414c333dbe2c410d7abb6583e66ac8226e827d /sonar-ws-client
parentf42275cef1280bedd2d8736a2e06cce4be585657 (diff)
downloadsonarqube-107195ad1754f1495a441d87df7994f98235f472.tar.gz
sonarqube-107195ad1754f1495a441d87df7994f98235f472.zip
SONAR-3755 Add rule and created at filters on issue query.
Diffstat (limited to 'sonar-ws-client')
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/services/IssueQuery.java58
-rw-r--r--sonar-ws-client/src/test/java/org/sonar/wsclient/services/IssueQueryTest.java19
2 files changed, 68 insertions, 9 deletions
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/IssueQuery.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/IssueQuery.java
index 988df66f723..a621517c384 100644
--- a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/IssueQuery.java
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/IssueQuery.java
@@ -19,6 +19,8 @@
*/
package org.sonar.wsclient.services;
+import java.util.Date;
+
/**
* @since 3.6
*/
@@ -32,10 +34,14 @@ public final class IssueQuery extends Query<Issue> {
private String[] status;
private String[] resolutions;
private String[] components;
- private String[] rules;
+ private String ruleRepository;
+ private String rule;
private String[] userLogins;
private String[] assigneeLogins;
+ private Date createdAfter;
+ private Date createdBefore;
private Integer limit;
+ private Integer offset;
private IssueQuery() {
}
@@ -102,12 +108,21 @@ public final class IssueQuery extends Query<Issue> {
return this;
}
- public String[] getRules() {
- return rules;
+ public String getRuleRepository() {
+ return ruleRepository;
+ }
+
+ public IssueQuery setRuleRepository(String ruleRepository) {
+ this.ruleRepository = ruleRepository;
+ return this;
+ }
+
+ public String getRule() {
+ return rule;
}
- public IssueQuery setRules(String... rules) {
- this.rules = rules;
+ public IssueQuery setRule(String rule) {
+ this.rule = rule;
return this;
}
@@ -129,6 +144,24 @@ public final class IssueQuery extends Query<Issue> {
return this;
}
+ public Date getCreatedAfter() {
+ return createdAfter;
+ }
+
+ public IssueQuery setCreatedAfter(Date createdAfter) {
+ this.createdAfter = createdAfter;
+ return this;
+ }
+
+ public Date getCreatedBefore() {
+ return createdBefore;
+ }
+
+ public IssueQuery setCreatedBefore(Date createdBefore) {
+ this.createdBefore = createdBefore;
+ return this;
+ }
+
public Integer getLimit() {
return limit;
}
@@ -138,6 +171,15 @@ public final class IssueQuery extends Query<Issue> {
return this;
}
+ public Integer getOffset() {
+ return offset;
+ }
+
+ public IssueQuery setOffset(Integer offset) {
+ this.offset = offset;
+ return this;
+ }
+
@Override
public String getUrl() {
StringBuilder url = new StringBuilder(BASE_URL);
@@ -148,10 +190,14 @@ public final class IssueQuery extends Query<Issue> {
appendUrlParameter(url, "status", status);
appendUrlParameter(url, "resolutions", resolutions);
appendUrlParameter(url, "components", components);
- appendUrlParameter(url, "rules", rules);
+ appendUrlParameter(url, "ruleRepository", ruleRepository);
+ appendUrlParameter(url, "rule", rule);
appendUrlParameter(url, "userLogins", userLogins);
appendUrlParameter(url, "assigneeLogins", assigneeLogins);
+ appendUrlParameter(url, "createdAfter", createdAfter);
+ appendUrlParameter(url, "createdBefore", createdBefore);
appendUrlParameter(url, "limit", limit);
+ appendUrlParameter(url, "offset", offset);
return url.toString();
}
diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/services/IssueQueryTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/IssueQueryTest.java
index 1d620e483e2..2d7bb8a6684 100644
--- a/sonar-ws-client/src/test/java/org/sonar/wsclient/services/IssueQueryTest.java
+++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/IssueQueryTest.java
@@ -22,6 +22,8 @@ package org.sonar.wsclient.services;
import org.junit.Test;
+import java.text.SimpleDateFormat;
+
import static org.fest.assertions.Assertions.assertThat;
public class IssueQueryTest extends QueryTestCase {
@@ -41,13 +43,24 @@ public class IssueQueryTest extends QueryTestCase {
.setLimit(1)
.setMinSeverity("minSev")
.setResolutions("resoltion1", "resolution2")
- .setRules("rule1", "rule2")
+ .setRuleRepository("ruleRepo")
+ .setRule("rule")
.setStatus("status1", "status2")
.setSeverities("sev1", "sev2")
- .setUserLogins("userLogin1", "userLogin2");
+ .setUserLogins("userLogin1", "userLogin2")
+ ;
assertThat(query.getUrl()).isEqualTo("/api/issues/search?keys=key1,key2&severities=sev1,sev2&minSeverity=minSev&status=status1,status2&" +
- "resolutions=resoltion1,resolution2&components=component1,component2&rules=rule1,rule2&userLogins=userLogin1,userLogin2&" +
+ "resolutions=resoltion1,resolution2&components=component1,component2&ruleRepository=ruleRepo&rule=rule&userLogins=userLogin1,userLogin2&" +
"assigneeLogins=assigneeLogin1,assigneeLogin2&limit=1&");
}
+ @Test
+ public void get_all_issues_by_created_at() throws Exception {
+ IssueQuery query = IssueQuery.create()
+ .setCreatedAfter(new SimpleDateFormat("yyyy-MM-dd").parse("2013-04-16"))
+ .setCreatedBefore(new SimpleDateFormat("yyyy-MM-dd").parse("2010-02-18"))
+ ;
+ assertThat(query.getUrl()).isEqualTo("/api/issues/search?createdAfter=Tue+Apr+16+00%3A00%3A00+CEST+2013&createdBefore=Thu+Feb+18+00%3A00%3A00+CET+2010&");
+ }
+
}