@Test
public void createProfileWithRules() {
Map<String, Map<String, BuiltInQualityProfile>> profiles = define(c -> {
NewBuiltInQualityProfile profile = c.createBuiltInQualityProfile("Foo", "xoo");
profile.activateRule("repo", "ruleWithoutParam");
profile.activateRule("repo", "ruleWithSeverity").overrideSeverity("CRITICAL");
profile.activateRule("repo", "ruleWithParam").overrideParam("param", "value");
profile.done();
});
assertThat(profiles).containsOnlyKeys("xoo");
assertThat(profiles.get("xoo")).containsOnlyKeys("Foo");
BuiltInQualityProfile profile = profiles.get("xoo").get("Foo");
assertThat(profile.name()).isEqualTo("Foo");
assertThat(profile.language()).isEqualTo("xoo");
assertThat(profile.isDefault()).isFalse();
assertThat(profile.rules())
.extracting(BuiltInQualityProfilesDefinition.BuiltInActiveRule::repoKey, BuiltInQualityProfilesDefinition.BuiltInActiveRule::ruleKey,
BuiltInQualityProfilesDefinition.BuiltInActiveRule::overriddenSeverity, r -> r.overriddenParams().size())
.containsOnly(
tuple("repo", "ruleWithoutParam", null, 0),
tuple("repo", "ruleWithSeverity", "CRITICAL", 0),
tuple("repo", "ruleWithParam", null, 1));
assertThat(profile.rule(RuleKey.of("repo", "ruleWithParam")).overriddenParam("param").key()).isEqualTo("param");
assertThat(profile.rule(RuleKey.of("repo", "ruleWithParam")).overriddenParam("param").overriddenValue()).isEqualTo("value");
}