@Override public RulesProfile createProfile(ValidationMessages validation) { return RulesProfile.create("empty", Xoo.KEY); } }
public RulesProfile parse(String repositoryKey, String profileName, String language, Collection<Class> annotatedClasses, ValidationMessages messages) { RulesProfile profile = RulesProfile.create(profileName, language); for (Class<?> aClass : annotatedClasses) { BelongsToProfile belongsToProfile = aClass.getAnnotation(BelongsToProfile.class); addRule(aClass, belongsToProfile, profile, repositoryKey, messages); } return profile; }
@Override public RulesProfile importProfile(Reader reader, ValidationMessages messages) { RulesProfile rulesProfile = RulesProfile.create(); rulesProfile.activateRule(Rule.create(XooRulesDefinition.XOO_REPOSITORY, "x1"), RulePriority.CRITICAL); return rulesProfile; } }
@Override public RulesProfile importProfile(Reader reader, ValidationMessages messages) { messages.addWarningText("a warning"); messages.addInfoText("an info"); return RulesProfile.create(); } }
@Override public Object clone() { RulesProfile clone = RulesProfile.create(getName(), getLanguage()); clone.setDefaultProfile(getDefaultProfile()); if (activeRules != null && !activeRules.isEmpty()) { clone.setActiveRules(activeRules.stream() .map(ar -> (ActiveRule) ar.clone()) .collect(Collectors.toList())); } return clone; }
@Override public RulesProfile importProfile(Reader reader, ValidationMessages messages) { messages.addErrorText("error!"); return RulesProfile.create(); } }
@Override public RulesProfile createProfile(ValidationMessages validation) { validation.addErrorText("Foo"); return RulesProfile.create("Profile with errors", "xoo"); } }
@Override public RulesProfile createProfile(ValidationMessages validation) { final RulesProfile profile = RulesProfile.create("Basic", Xoo.KEY); profile.setDefaultProfile(true); profile.activateRule(Rule.create(XooRulesDefinition.XOO_REPOSITORY, HasTagSensor.RULE_KEY), RulePriority.MAJOR); return profile; } }
@Override public RulesProfile createProfile(ValidationMessages messages) { RulesProfile profile = RulesProfile.create("Basic", Xoo2.KEY); profile.setDefaultProfile(true); // so UGLY profile.activateRule(Rule.create(XooRulesDefinition.XOO2_REPOSITORY, HasTagSensor.RULE_KEY), RulePriority.MAJOR); return profile; } }
@Override public RulesProfile createProfile(ValidationMessages messages) { RulesProfile profile = RulesProfile.create("Sonar way", Xoo2.KEY); profile.activateRule(Rule.create(XooRulesDefinition.XOO2_REPOSITORY, HasTagSensor.RULE_KEY), RulePriority.MAJOR); profile.activateRule(Rule.create(XooRulesDefinition.XOO2_REPOSITORY, OneIssuePerLineSensor.RULE_KEY), RulePriority.MINOR); return profile; } }
@Override public RulesProfile importProfile(Reader reader, ValidationMessages messages) { messages.addWarningText("a warning"); messages.addInfoText("an info"); return RulesProfile.create(); } }
@Test public void exportEmptyProfile() throws IOException, SAXException { Writer writer = new StringWriter(); RulesProfile profile = RulesProfile.create("sonar way", "java"); new XMLProfileSerializer().write(profile, writer); assertSimilarXml("exportEmptyProfile.xml", writer.toString()); }
@Test public void fail_to_activate_already_activated_rule() { RulesProfile profile = RulesProfile.create("Default", "java"); Rule rule = Rule.create("repo", "key1", "name1").setSeverity(RulePriority.CRITICAL); profile.activateRule(rule, null); try { profile.activateRule(rule, null); fail(); } catch (Exception e) { assertThat(e).isInstanceOf(MessageException.class) .hasMessage("The definition of the profile 'Default' (language 'java') contains multiple occurrences of the 'repo:key1' rule. The plugin which declares this profile should fix this."); } } }
@Test public void activateRuleWithDefaultPriority() { RulesProfile profile = RulesProfile.create(); Rule rule = Rule.create("repo", "key1", "name1").setSeverity(RulePriority.CRITICAL); profile.activateRule(rule, null); assertThat(profile.getActiveRule("repo", "key1").getSeverity()).isEqualTo(RulePriority.CRITICAL); }
@Override public RulesProfile createProfile(ValidationMessages validation) { final RulesProfile profile = RulesProfile.create("Sonar way", Xoo.KEY); profile.activateRule(Rule.create(XooRulesDefinition.XOO_REPOSITORY, HasTagSensor.RULE_KEY), RulePriority.MAJOR); profile.activateRule(Rule.create(XooRulesDefinition.XOO_REPOSITORY, OneIssuePerLineSensor.RULE_KEY), RulePriority.INFO); profile.activateRule(Rule.create(XooRulesDefinition.XOO_REPOSITORY, OneIssuePerFileSensor.RULE_KEY), RulePriority.CRITICAL); profile.activateRule(Rule.create(XooRulesDefinition.XOO_REPOSITORY, HotspotSensor.RULE_KEY), RulePriority.CRITICAL); return profile; } }
@Test public void activateRuleWithSpecificPriority() { RulesProfile profile = RulesProfile.create(); Rule rule = Rule.create("repo", "key1", "name1").setSeverity(RulePriority.CRITICAL); profile.activateRule(rule, RulePriority.MINOR); assertThat(profile.getActiveRule("repo", "key1").getSeverity()).isEqualTo(RulePriority.MINOR); }
@Test public void exportProfile() throws IOException, SAXException { Writer writer = new StringWriter(); RulesProfile profile = RulesProfile.create("sonar way", "java"); profile.activateRule(Rule.create("checkstyle", "IllegalRegexp", "illegal regexp"), RulePriority.BLOCKER); new XMLProfileSerializer().write(profile, writer); assertSimilarXml("exportProfile.xml", writer.toString()); }
@Override public RulesProfile importProfile(Reader reader, ValidationMessages messages) { RulesProfile rulesProfile = RulesProfile.create(); rulesProfile.activateRule(Rule.create(rule.getRepositoryKey(), rule.getRuleKey()), RulePriority.CRITICAL); return rulesProfile; } }
@Test public void searchRulesByConfigKey() { RulesProfile profile = RulesProfile.create(); profile.activateRule(Rule.create("repo", "key1", "name1"), null); profile.activateRule(Rule.create("repo", "key2", "name2").setConfigKey("config2"), null); assertThat(profile.getActiveRuleByConfigKey("repo", "unknown")).isNull(); assertThat(profile.getActiveRuleByConfigKey("repo", "config2").getRuleKey()).isEqualTo("key2"); }
@Override public RulesProfile createProfile(ValidationMessages validation) { RulesProfile profile1 = RulesProfile.create("Profile 1", "xoo"); profile1.activateRule(Rule.create("repo1", "defaultSeverity"), null); profile1.activateRule(Rule.create("repo1", "overrideSeverity"), RulePriority.CRITICAL); Rule ruleWithParam = Rule.create("repo1", "overrideParam"); ruleWithParam.setParams(Arrays.asList(new RuleParam(ruleWithParam, "param", "", ""))); ActiveRule arWithParam = profile1.activateRule(ruleWithParam, null); arWithParam.setParameter("param", "value"); return profile1; } }