use of org.sonar.db.rule.RuleParamDto in project sonarqube by SonarSource.
the class CompareActionMediumTest method createRule.
private RuleDto createRule(String lang, String id) {
RuleDto rule = RuleDto.createFor(RuleKey.of("blah", id)).setName(StringUtils.capitalize(id)).setLanguage(lang).setSeverity(Severity.BLOCKER).setStatus(RuleStatus.READY);
db.ruleDao().insert(session, rule);
RuleParamDto param = RuleParamDto.createFor(rule).setName("param_" + id).setType(RuleParamType.STRING.toString());
db.ruleDao().insertRuleParam(session, rule, param);
return rule;
}
use of org.sonar.db.rule.RuleParamDto in project sonarqube by SonarSource.
the class ShowActionMediumTest method show_rule_when_activated.
@Test
public void show_rule_when_activated() throws Exception {
RuleDto ruleDto = RuleTesting.newDto(RuleKey.of("java", "S001")).setName("Rule S001").setDescription("Rule S001 <b>description</b>").setDescriptionFormat(Format.HTML).setSeverity(MINOR).setStatus(RuleStatus.BETA).setLanguage("xoo").setType(RuleType.BUG).setCreatedAt(new Date().getTime()).setUpdatedAt(new Date().getTime());
ruleDao.insert(session, ruleDto);
RuleParamDto regexParam = RuleParamDto.createFor(ruleDto).setName("regex").setType("STRING").setDescription("Reg *exp*").setDefaultValue(".*");
ruleDao.insertRuleParam(session, ruleDto, regexParam);
QualityProfileDto profile = QualityProfileDto.createFor("profile").setOrganizationUuid(defaultOrganizationProvider.get().getUuid()).setName("Profile").setLanguage("xoo");
tester.get(QualityProfileDao.class).insert(session, profile);
ActiveRuleDto activeRuleDto = new ActiveRuleDto().setProfileId(profile.getId()).setRuleId(ruleDto.getId()).setSeverity(MINOR).setCreatedAt(new Date().getTime()).setUpdatedAt(new Date().getTime());
tester.get(ActiveRuleDao.class).insert(session, activeRuleDto);
tester.get(ActiveRuleDao.class).insertParam(session, activeRuleDto, new ActiveRuleParamDto().setRulesParameterId(regexParam.getId()).setKey(regexParam.getName()).setValue(".*?"));
session.commit();
session.clearCache();
tester.get(RuleIndexer.class).index();
tester.get(ActiveRuleIndexer.class).index();
WsTester.TestRequest request = wsTester.newGetRequest("api/rules", "show").setParam("key", ruleDto.getKey().toString()).setParam("actives", "true");
request.execute().assertJson(getClass(), "show_rule_when_activated.json");
}
use of org.sonar.db.rule.RuleParamDto in project sonarqube by SonarSource.
the class UpdateActionMediumTest method update_custom_rule.
@Test
public void update_custom_rule() throws Exception {
// Template rule
RuleDto templateRule = RuleTesting.newTemplateRule(RuleKey.of("java", "S001"));
ruleDao.insert(session, templateRule);
RuleParamDto param = RuleParamDto.createFor(templateRule).setName("regex").setType("STRING").setDescription("Reg ex").setDefaultValue(".*");
ruleDao.insertRuleParam(session, templateRule, param);
session.commit();
// Custom rule
NewCustomRule newRule = NewCustomRule.createForCustomRule("MY_CUSTOM", templateRule.getKey()).setName("Old custom").setHtmlDescription("Old description").setSeverity(Severity.MINOR).setStatus(RuleStatus.BETA).setParameters(ImmutableMap.of("regex", "a"));
RuleKey customRuleKey = tester.get(RuleCreator.class).create(newRule);
session.clearCache();
WsTester.TestRequest request = wsTester.newPostRequest("api/rules", "update").setParam("key", customRuleKey.toString()).setParam("name", "My custom rule").setParam("markdown_description", "Description").setParam("severity", "MAJOR").setParam("status", "BETA").setParam("params", "regex=a.*");
request.execute().assertJson(getClass(), "update_custom_rule.json");
}
use of org.sonar.db.rule.RuleParamDto in project sonarqube by SonarSource.
the class SearchActionMediumTest method search_profile_active_rules.
@Test
public void search_profile_active_rules() throws Exception {
QualityProfileDto profile = QProfileTesting.newXooP1("org-123");
tester.get(QualityProfileDao.class).insert(dbSession, profile);
QualityProfileDto profile2 = QProfileTesting.newXooP2("org-123");
tester.get(QualityProfileDao.class).insert(dbSession, profile2);
dbSession.commit();
RuleDto rule = RuleTesting.newXooX1();
ruleDao.insert(dbSession, rule);
RuleParamDto param = RuleParamDto.createFor(rule).setDefaultValue("some value").setType("string").setDescription("My small description").setName("my_var");
ruleDao.insertRuleParam(dbSession, rule, param);
RuleParamDto param2 = RuleParamDto.createFor(rule).setDefaultValue("other value").setType("integer").setDescription("My small description").setName("the_var");
ruleDao.insertRuleParam(dbSession, rule, param2);
// SONAR-7083
RuleParamDto param3 = RuleParamDto.createFor(rule).setDefaultValue(null).setType("string").setDescription("Empty Param").setName("empty_var");
ruleDao.insertRuleParam(dbSession, rule, param3);
ActiveRuleDto activeRule = newActiveRule(profile, rule);
tester.get(ActiveRuleDao.class).insert(dbSession, activeRule);
ActiveRuleDto activeRule2 = newActiveRule(profile2, rule);
tester.get(ActiveRuleDao.class).insert(dbSession, activeRule2);
ActiveRuleParamDto activeRuleParam = ActiveRuleParamDto.createFor(param).setValue("The VALUE");
tester.get(ActiveRuleDao.class).insertParam(dbSession, activeRule2, activeRuleParam);
ActiveRuleParamDto activeRuleParam2 = ActiveRuleParamDto.createFor(param2).setValue("The Other Value");
tester.get(ActiveRuleDao.class).insertParam(dbSession, activeRule2, activeRuleParam2);
ActiveRuleParamDto activeRuleParam3 = ActiveRuleParamDto.createFor(param3).setValue(null);
tester.get(ActiveRuleDao.class).insertParam(dbSession, activeRule2, activeRuleParam3);
dbSession.commit();
ruleIndexer.index();
activeRuleIndexer.index();
WsTester.TestRequest request = tester.wsTester().newGetRequest(API_ENDPOINT, API_SEARCH_METHOD);
request.setParam(WebService.Param.TEXT_QUERY, "x1");
request.setParam(PARAM_ACTIVATION, "true");
request.setParam(PARAM_QPROFILE, profile2.getKey());
request.setParam(WebService.Param.FIELDS, "actives");
WsTester.Result result = request.execute();
result.assertJson(this.getClass(), "search_profile_active_rules.json");
tester.wsTester().newGetRequest(API_ENDPOINT, API_SEARCH_METHOD).setParam(PARAM_ACTIVATION, "true").setParam(PARAM_QPROFILE, "unknown_profile").setParam(WebService.Param.FIELDS, "actives").execute().assertJson(this.getClass(), "search_no_rules.json");
}
use of org.sonar.db.rule.RuleParamDto in project sonarqube by SonarSource.
the class RegisterRulesTest method update_and_remove_rules_on_changes.
@Test
public void update_and_remove_rules_on_changes() {
execute(new FakeRepositoryV1());
assertThat(dbClient.ruleDao().selectAll(dbTester.getSession())).hasSize(2);
assertThat(esTester.getIds(RuleIndexDefinition.INDEX_TYPE_RULE)).containsOnly(RULE_KEY1.toString(), RULE_KEY2.toString());
// user adds tags and sets markdown note
RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(dbTester.getSession(), RULE_KEY1);
rule1.setTags(newHashSet("usertag1", "usertag2"));
rule1.setNoteData("user *note*");
rule1.setNoteUserLogin("marius");
dbClient.ruleDao().update(dbTester.getSession(), rule1);
dbTester.getSession().commit();
when(system.now()).thenReturn(DATE2.getTime());
execute(new FakeRepositoryV2());
// rule1 has been updated
rule1 = dbClient.ruleDao().selectOrFailByKey(dbTester.getSession(), RULE_KEY1);
assertThat(rule1.getName()).isEqualTo("One v2");
assertThat(rule1.getDescription()).isEqualTo("Description of One v2");
assertThat(rule1.getSeverityString()).isEqualTo(INFO);
assertThat(rule1.getTags()).containsOnly("usertag1", "usertag2");
assertThat(rule1.getSystemTags()).containsOnly("tag1", "tag4");
assertThat(rule1.getConfigKey()).isEqualTo("config1 v2");
assertThat(rule1.getNoteData()).isEqualTo("user *note*");
assertThat(rule1.getNoteUserLogin()).isEqualTo("marius");
assertThat(rule1.getStatus()).isEqualTo(RuleStatus.READY);
assertThat(rule1.getType()).isEqualTo(RuleType.BUG.getDbConstant());
assertThat(rule1.getCreatedAt()).isEqualTo(DATE1.getTime());
assertThat(rule1.getUpdatedAt()).isEqualTo(DATE2.getTime());
// TODO check remediation function
List<RuleParamDto> params = dbClient.ruleDao().selectRuleParamsByRuleKey(dbTester.getSession(), RULE_KEY1);
assertThat(params).hasSize(2);
RuleParamDto param = getParam(params, "param1");
assertThat(param.getDescription()).isEqualTo("parameter one v2");
assertThat(param.getDefaultValue()).isEqualTo("default1 v2");
// rule2 has been removed -> status set to REMOVED but db row is not deleted
RuleDto rule2 = dbClient.ruleDao().selectOrFailByKey(dbTester.getSession(), RULE_KEY2);
assertThat(rule2.getStatus()).isEqualTo(RuleStatus.REMOVED);
assertThat(rule2.getUpdatedAt()).isEqualTo(DATE2.getTime());
// rule3 has been created
RuleDto rule3 = dbClient.ruleDao().selectOrFailByKey(dbTester.getSession(), RULE_KEY3);
assertThat(rule3).isNotNull();
assertThat(rule3.getStatus()).isEqualTo(RuleStatus.READY);
// verify index
assertThat(ruleIndex.search(new RuleQuery(), new SearchOptions()).getIds()).containsOnly(RULE_KEY1, RULE_KEY3);
// verify repositories
assertThat(dbClient.ruleRepositoryDao().selectAll(dbTester.getSession())).extracting(RuleRepositoryDto::getKey).containsOnly("fake");
}
Aggregations