@Override
public Map<String, String> params() {
Map<String, String> params = new HashMap<String, String>();
- Map<String, Map<String,String>> allParams = (Map<String, Map<String, String>>) this.fields.get(ActiveRuleNormalizer.ActiveRuleField.PARAMS);
- for(Map.Entry<String, Map<String,String>> param:allParams.entrySet()){
- params.put(param.getKey(), param.getValue().get(ActiveRuleNormalizer.ActiveRuleParamField.VALUE.key()));
+ if (this.fields.containsKey(ActiveRuleNormalizer.ActiveRuleField.PARAMS)) {
+ Map<String, Map<String, String>> allParams = (Map<String, Map<String, String>>) this.fields.get(ActiveRuleNormalizer.ActiveRuleField.PARAMS);
+ for (Map.Entry<String, Map<String, String>> param : allParams.entrySet()) {
+ params.put(param.getKey(), param.getValue().get(ActiveRuleNormalizer.ActiveRuleParamField.VALUE.key()));
+ }
}
return params;
}
*/
package org.sonar.server.rule2.ws;
+import org.junit.After;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
import org.sonar.check.Cardinality;
import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.MyBatis;
+import org.sonar.core.qualityprofile.db.ActiveRuleDto;
+import org.sonar.core.qualityprofile.db.QualityProfileDao;
+import org.sonar.core.qualityprofile.db.QualityProfileDto;
import org.sonar.core.rule.RuleDto;
import org.sonar.server.rule2.RuleService;
+import org.sonar.server.rule2.persistence.ActiveRuleDao;
import org.sonar.server.rule2.persistence.RuleDao;
import org.sonar.server.tester.ServerTester;
import org.sonar.server.user.MockUserSession;
private RulesWebService ws;
private RuleDao ruleDao;
+ private DbSession session;
WsTester wsTester;
+
@Before
public void setUp() throws Exception {
ruleDao = tester.get(RuleDao.class);
ws = tester.get(RulesWebService.class);
wsTester = new WsTester(ws);
+ session = tester.get(MyBatis.class).openSession(false);
+ }
+ @After
+ public void after(){
+ session.close();
}
@Test
System.out.println("request.toString() = " + request.toString());
WsTester.Result result = request.execute();
- assertThat(result.outputAsString()).isEqualTo("{\"total\":0,\"rules\":[],\"activeRules\":[]}");
+ assertThat(result.outputAsString()).isEqualTo("{\"total\":0,\"rules\":[]}");
}
@Test
public void search_2_rules() throws Exception {
- DbSession session = tester.get(MyBatis.class).openSession(false);
ruleDao.insert(newRuleDto(RuleKey.of("javascript", "S001")), session);
ruleDao.insert(newRuleDto(RuleKey.of("javascript", "S002")), session);
session.commit();
- session.close();
+
tester.get(RuleService.class).refresh();
MockUserSession.set();
//TODO
}
+ @Test
+ public void search_active_rules() throws Exception {
+ QualityProfileDto profile = newQualityProfile();
+ tester.get(QualityProfileDao.class).insert(profile, session);
+
+ RuleDto rule = newRuleDto(RuleKey.of(profile.getLanguage(), "S001"));
+ ruleDao.insert(rule, session);
+
+ ActiveRuleDto activeRule = newActiveRule(profile, rule);
+ tester.get(ActiveRuleDao.class).insert(activeRule, session);
+
+ session.commit();
+ tester.get(RuleService.class).refresh();
+
+
+ MockUserSession.set();
+ WsTester.TestRequest request = wsTester.newGetRequest("api/rules2", "search");
+ WsTester.Result result = request.execute();
+
+// System.out.println("result = " + result.outputAsString());
+
+ }
+
+
+ private QualityProfileDto newQualityProfile() {
+ return new QualityProfileDto()
+ .setLanguage("java")
+ .setName("My Profile");
+ }
private RuleDto newRuleDto(RuleKey ruleKey) {
return new RuleDto()
.setDefaultRemediationOffset("10h")
.setEffortToFixDescription(ruleKey.repository() + "." + ruleKey.rule() + ".effortToFix");
}
-}
-
+ private ActiveRuleDto newActiveRule(QualityProfileDto profile, RuleDto rule) {
+ return ActiveRuleDto.createFor(profile, rule)
+ .setInheritance("none")
+ .setSeverity("BLOCKER");
+ }
+}
\ No newline at end of file