/** * @deprecated since 5.2. Simply use {@link #createRepository(String, String)} */ @Deprecated public NewRepository extendRepository(String key, String language) { return createRepository(key, language); }
@Test public void load_rule_markdown_description_from_file() { RulesDefinition.NewRepository newRepository = context.createRepository("findbugs", "java"); newRepository.createRule("NPE").setName("NPE").setMarkdownDescription(getClass().getResource("/org/sonar/api/server/rule/RulesDefinitionTest/sample.md")); newRepository.done(); RulesDefinition.Rule rule = context.repository("findbugs").rule("NPE"); assertThat(rule.markdownDescription()).isEqualTo("description of rule loaded from file"); }
@Test public void load_rule_html_description_from_file() { RulesDefinition.NewRepository newRepository = context.createRepository("findbugs", "java"); newRepository.createRule("NPE").setName("NPE").setHtmlDescription(getClass().getResource("/org/sonar/api/server/rule/RulesDefinitionTest/sample.html")); newRepository.done(); RulesDefinition.Rule rule = context.repository("findbugs").rule("NPE"); assertThat(rule.htmlDescription()).isEqualTo("description of rule loaded from file"); }
@Test public void guess_type_from_tags_if_type_is_missing() { RulesDefinition.NewRepository newRepository = context.createRepository("findbugs", "java"); newRepository.createRule("NPE").setName("NPE").setHtmlDescription("desc").setTags("bug", "misra"); newRepository.done(); RulesDefinition.Rule rule = context.repository("findbugs").rule("NPE"); assertThat(rule.type()).isEqualTo(RuleType.BUG); // tag "bug" is reserved and removed assertThat(rule.tags()).containsOnly("misra"); } }
@Test public void fail_if_removed_status() { try { context.createRepository("findbugs", "java").createRule("NPE").setStatus(RuleStatus.REMOVED); fail(); } catch (IllegalArgumentException e) { assertThat(e).hasMessage("Status 'REMOVED' is not accepted on rule '[repository=findbugs, key=NPE]'"); } }
@Test public void fail_to_load_markdown_rule_description_from_file() { RulesDefinition.NewRepository newRepository = context.createRepository("findbugs", "java"); newRepository.createRule("NPE").setName("NPE").setMarkdownDescription((URL) null); try { newRepository.done(); fail(); } catch (IllegalStateException e) { assertThat(e).hasMessage("One of HTML description or Markdown description must be defined for rule [repository=findbugs, key=NPE]"); } }
@Test public void fail_if_blank_rule_name() { RulesDefinition.NewRepository newRepository = context.createRepository("findbugs", "java"); newRepository.createRule("NPE").setName(null).setHtmlDescription("NPE"); try { newRepository.done(); fail(); } catch (Exception e) { assertThat(e).isInstanceOf(IllegalStateException.class).hasMessage("Name of rule [repository=findbugs, key=NPE] is empty"); } }
@Test @UseDataProvider("nullOrEmpty") public void addDeprecatedRuleKey_fails_with_IAE_if_repository_is_null_or_empty(String nullOrEmpty) { RulesDefinition.NewRepository newRepository = context.createRepository("foo", "bar"); RulesDefinition.NewRule newRule = newRepository.createRule("doh"); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("Repository must be set"); newRule.addDeprecatedRuleKey(nullOrEmpty, "oldKey"); }
@Test public void complete_param_description() { when(i18n.getParamDescription("squid", "S0001", "max")).thenReturn("Maximum"); RulesDefinition.Context context = new RulesDefinition.Context(); RulesDefinition.NewRepository repo = context.createRepository("squid", "java"); repo.createRule("S0001").setName("SOne").setHtmlDescription("S One").createParam("max"); loader.load(repo); repo.done(); RulesDefinition.Rule rule = context.repository("squid").rule("S0001"); assertThat(rule.param("max").description()).isEqualTo("Maximum"); } }
@Test public void fail_if_rule_already_has_markdown_description() { RulesDefinition.NewRepository newRepository = context.createRepository("findbugs", "java"); try { newRepository.createRule("NPE").setName("NPE").setMarkdownDescription("palap").setHtmlDescription("polop"); fail(); } catch (IllegalStateException e) { assertThat(e).hasMessage("Rule '[repository=findbugs, key=NPE]' already has a Markdown description"); } }
@Test @UseDataProvider("nullOrEmpty") public void addDeprecatedRuleKey_fails_with_IAE_if_key_is_null_or_empty(String nullOrEmpty) { RulesDefinition.NewRepository newRepository = context.createRepository("foo", "bar"); RulesDefinition.NewRule newRule = newRepository.createRule("doh"); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("Rule must be set"); newRule.addDeprecatedRuleKey("oldRepo", nullOrEmpty); }
@Override public void define(Context context) { NewRepository repo = context.createRepository("squid", "java"); repo.setName("Squid"); repo.createRule("DEF") .setName("DEF") .setHtmlDescription("Description of DEF"); repo.done(); } }
private RulesDefinition.Repository load(InputStream input, String encoding) { RulesDefinition.Context context = new RulesDefinition.Context(); RulesDefinition.NewRepository newRepository = context.createRepository("squid", "java"); underTest.load(newRepository, input, encoding); newRepository.done(); return context.repository("squid"); }
@Test public void fail_if_bad_rule_severity() { try { context.createRepository("findbugs", "java").createRule("NPE").setSeverity("VERY HIGH"); fail(); } catch (IllegalArgumentException e) { assertThat(e).hasMessage("Severity of rule [repository=findbugs, key=NPE] is not correct: VERY HIGH"); } }
@Test public void fail_if_no_rule_description() { RulesDefinition.NewRepository newRepository = context.createRepository("findbugs", "java"); newRepository.createRule("NPE").setName("NPE"); try { newRepository.done(); fail(); } catch (IllegalStateException e) { assertThat(e).hasMessage("One of HTML description or Markdown description must be defined for rule [repository=findbugs, key=NPE]"); } }
private RulesDefinition.Repository load(Class annotatedClass) { RulesDefinition.Context context = new RulesDefinition.Context(); RulesDefinition.NewExtendedRepository newRepository = context.createRepository("squid", "java"); annotationLoader.load(newRepository, annotatedClass); newRepository.done(); return context.repository("squid"); }
@Override public void define(RulesDefinition.Context context) { RulesDefinition.NewRepository repo = context.createRepository("common-java", "java"); repo.createRule("InsufficientBranchCoverage") .setName("The name as defined by core") .setHtmlDescription("The description as defined by core"); repo.done(); } }
@Override public void define(RulesDefinition.Context context) { RulesDefinition.NewRepository repo = context.createRepository("common-java", "java"); repo.createRule("InsufficientBranchCoverage") .setName("The name as defined by plugin") .setHtmlDescription("The description as defined by plugin"); repo.done(); } }
@Override public void define(Context context) { NewRepository repo = context.createRepository("test", "java"); repo.createRule("rule1") .setName("Rule One") .setHtmlDescription("Description of Rule One") .setTemplate(true); repo.done(); } }
@Override public void define(Context context) { NewRepository repo = context.createRepository("findbugs", "java"); repo.createRule("rule1") .setName("Rule One") .setHtmlDescription("Description of Rule One"); repo.done(); } }