@Test
public void show_rule_with_activation() {
OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto rule = db.rules().insert();
RuleParamDto ruleParam = db.rules().insertRuleParam(rule, p -> p.setType("STRING").setDescription("Reg *exp*").setDefaultValue(".*"));
RuleMetadataDto ruleMetadata = db.rules().insertOrUpdateMetadata(rule, organization, m -> m.setNoteData(null).setNoteUserUuid(null));
QProfileDto qProfile = db.qualityProfiles().insert(organization);
ActiveRuleDto activeRule = db.qualityProfiles().activateRule(qProfile, rule);
db.getDbClient().activeRuleDao().insertParam(db.getSession(), activeRule, new ActiveRuleParamDto()
.setRulesParameterId(ruleParam.getId())
.setKey(ruleParam.getName())
.setValue(".*?"));
db.commit();
ShowResponse result = ws.newRequest()
.setParam(PARAM_KEY, rule.getKey().toString())
.setParam(PARAM_ACTIVES, "true")
.setParam(PARAM_ORGANIZATION, organization.getKey())
.executeProtobuf(ShowResponse.class);
List<Rules.Active> actives = result.getActivesList();
assertThat(actives).extracting(Rules.Active::getQProfile).containsExactly(qProfile.getKee());
assertThat(actives).extracting(Rules.Active::getSeverity).containsExactly(activeRule.getSeverityString());
assertThat(actives).extracting(Rules.Active::getInherit).containsExactly("NONE");
assertThat(actives.get(0).getParamsList())
.extracting(Rules.Active.Param::getKey, Rules.Active.Param::getValue)
.containsExactlyInAnyOrder(tuple(ruleParam.getName(), ".*?"));
}