use of org.sonar.api.batch.rule.internal.ActiveRulesBuilder in project sonar-go by SonarSource.
the class GoSensorTest method getSensor.
private GoSensor getSensor(String... activeRuleArray) {
Set<String> activeRuleSet = new HashSet<>(Arrays.asList(activeRuleArray));
List<Class> ruleClasses = GoChecks.getChecks();
List<String> allKeys = ruleClasses.stream().map(ruleClass -> ((org.sonar.check.Rule) ruleClass.getAnnotations()[0]).key()).collect(Collectors.toList());
ActiveRulesBuilder rulesBuilder = new ActiveRulesBuilder();
allKeys.forEach(key -> {
NewActiveRule newActiveRule = rulesBuilder.create(RuleKey.of(GoRulesDefinition.REPOSITORY_KEY, key));
if (activeRuleSet.contains(key)) {
newActiveRule.activate();
}
});
ActiveRules activeRules = rulesBuilder.build();
CheckFactory checkFactory = new CheckFactory(activeRules);
Checks<Check> checks = checkFactory.create(GoRulesDefinition.REPOSITORY_KEY);
checks.addAnnotatedChecks((Iterable) ruleClasses);
return new GoSensor(checkFactory, fileLinesContextFactory);
}
use of org.sonar.api.batch.rule.internal.ActiveRulesBuilder in project sonarqube by SonarSource.
the class ActiveRulesBuilderTest method fail_to_add_twice_the_same_rule.
@Test
public void fail_to_add_twice_the_same_rule() {
ActiveRulesBuilder builder = new ActiveRulesBuilder();
NewActiveRule rule = new NewActiveRule.Builder().setRuleKey(RuleKey.of("squid", "S0001")).build();
builder.addRule(rule);
assertThatThrownBy(() -> builder.addRule(rule)).isInstanceOf(IllegalStateException.class).hasMessage("Rule 'squid:S0001' is already activated");
}
use of org.sonar.api.batch.rule.internal.ActiveRulesBuilder in project sonarqube by SonarSource.
the class ActiveRulesBuilderTest method build_rules.
@Test
public void build_rules() {
NewActiveRule activeRule = new NewActiveRule.Builder().setRuleKey(RuleKey.of("squid", "S0001")).setName("My Rule").setSeverity(Severity.CRITICAL).setInternalKey("__S0001__").setParam("min", "20").build();
ActiveRules activeRules = new ActiveRulesBuilder().addRule(activeRule).addRule(new NewActiveRule.Builder().setRuleKey(RuleKey.of("squid", "S0002")).build()).addRule(new NewActiveRule.Builder().setRuleKey(RuleKey.of("findbugs", "NPE")).setInternalKey(null).setSeverity(null).setParam("foo", null).build()).build();
assertThat(activeRules.findAll()).hasSize(3);
assertThat(activeRules.findByRepository("squid")).hasSize(2);
assertThat(activeRules.findByRepository("findbugs")).hasSize(1);
assertThat(activeRules.findByInternalKey("squid", "__S0001__")).isNotNull();
assertThat(activeRules.findByRepository("unknown")).isEmpty();
ActiveRule squid1 = activeRules.find(RuleKey.of("squid", "S0001"));
assertThat(squid1.ruleKey().repository()).isEqualTo("squid");
assertThat(squid1.ruleKey().rule()).isEqualTo("S0001");
assertThat(squid1.severity()).isEqualTo(Severity.CRITICAL);
assertThat(squid1.internalKey()).isEqualTo("__S0001__");
assertThat(squid1.params()).hasSize(1);
assertThat(squid1.param("min")).isEqualTo("20");
ActiveRule squid2 = activeRules.find(RuleKey.of("squid", "S0002"));
assertThat(squid2.ruleKey().repository()).isEqualTo("squid");
assertThat(squid2.ruleKey().rule()).isEqualTo("S0002");
assertThat(squid2.severity()).isEqualTo(Severity.defaultSeverity());
assertThat(squid2.params()).isEmpty();
ActiveRule findbugsRule = activeRules.find(RuleKey.of("findbugs", "NPE"));
assertThat(findbugsRule.severity()).isEqualTo(Severity.defaultSeverity());
assertThat(findbugsRule.internalKey()).isNull();
assertThat(findbugsRule.params()).isEmpty();
}
use of org.sonar.api.batch.rule.internal.ActiveRulesBuilder in project sonarqube by SonarSource.
the class ActiveRulesBuilderTest method no_rules.
@Test
public void no_rules() {
ActiveRulesBuilder builder = new ActiveRulesBuilder();
ActiveRules rules = builder.build();
assertThat(rules.findAll()).isEmpty();
}
use of org.sonar.api.batch.rule.internal.ActiveRulesBuilder in project sonarqube by SonarSource.
the class ModuleSensorOptimizerTest method prepare.
@Before
public void prepare() throws Exception {
fs = new DefaultFileSystem(temp.newFolder().toPath());
settings = new MapSettings();
optimizer = new ModuleSensorOptimizer(fs, new ActiveRulesBuilder().build(), settings.asConfig());
}
Aggregations