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;
}
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()
--- /dev/null
+{"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": {}}