]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5237 - Added Tag filtering in searchAction for RuleWS
authorStephane Gamard <stephane.gamard@searchbox.com>
Wed, 21 May 2014 08:46:00 +0000 (10:46 +0200)
committerStephane Gamard <stephane.gamard@searchbox.com>
Wed, 21 May 2014 09:30:46 +0000 (11:30 +0200)
sonar-server/src/main/java/org/sonar/server/rule2/ws/SearchAction.java
sonar-server/src/test/java/org/sonar/server/rule2/ws/RulesWebServiceTest.java
sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/filter_by_tags.json [new file with mode: 0644]

index 66ad5d23e8dff9128428fb0708955fe34574519d..b099d359a5563b91069a23dca5cdd61eb6135fc7 100644 (file)
@@ -183,6 +183,7 @@ public class SearchAction implements RequestHandler {
     query.setQProfileKey(request.param(PARAM_QPROFILE));
     query.setSortField(RuleQuery.SortField.valueOfOrNull(request.param(SearchOptions.PARAM_SORT)));
     query.setAscendingSort(request.mandatoryParamAsBoolean(SearchOptions.PARAM_ASCENDING));
+    query.setTags(request.paramAsStrings(PARAM_TAGS));
     return query;
   }
 
index 71b9098cad5a23b927e86751666b369ef5402994..6e122b141e07fafc6ece67ce9c36d5a99b000d0b 100644 (file)
@@ -290,6 +290,23 @@ public class RulesWebServiceTest {
     result.assertJson(this.getClass(), "get_note_as_markdown_and_html.json");
   }
 
+  @Test
+  public void filter_by_tags() throws Exception {
+    ruleDao.insert(newRuleDto(RuleKey.of("java", "S001"))
+      .setSystemTags(ImmutableSet.of("tag1")), session);
+    ruleDao.insert(newRuleDto(RuleKey.of("java", "S002"))
+      .setSystemTags(ImmutableSet.of("tag2")), session);
+
+    session.commit();
+    tester.get(RuleService.class).refresh();
+
+    MockUserSession.set();
+    WsTester.TestRequest request = wsTester.newGetRequest("api/rules", "search");
+    request.setParam("tags","tag1");
+    WsTester.Result result = request.execute();
+    result.assertJson(this.getClass(), "filter_by_tags.json");
+  }
+
 
   private QualityProfileDto newQualityProfile() {
     return new QualityProfileDto()
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/filter_by_tags.json b/sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/filter_by_tags.json
new file mode 100644 (file)
index 0000000..3fe2e34
--- /dev/null
@@ -0,0 +1,19 @@
+{"total": 1, "p": 1, "ps": 25, "rules": [
+    {
+        "key": "java:S001",
+        "repo": "java",
+        "name": "Rule S001",
+        "htmlDesc": "Description S001",
+        "severity": "INFO",
+        "status": "READY",
+        "internalKey": "InternalKeyS001",
+        "template": false,
+        "tags": [],
+        "sysTags": ["tag1"],
+        "debtRemFnType": "LINEAR",
+        "debtRemFnCoeff": "1h",
+        "debtRemFnOffset": "5min",
+        "lang": "js",
+        "params": []
+    }
+], "actives": {}}