@Test public void define_xoo_rules() { XooRulesDefinition def = new XooRulesDefinition(); RulesDefinition.Context context = new RulesDefinition.Context(); def.define(context); RulesDefinition.Repository repo = context.repository("xoo"); assertThat(repo).isNotNull(); assertThat(repo.name()).isEqualTo("Xoo"); assertThat(repo.language()).isEqualTo("xoo"); assertThat(repo.rules()).hasSize(1); RulesDefinition.Rule x1 = repo.rule("x1"); assertThat(x1.key()).isEqualTo("x1"); assertThat(x1.tags()).containsOnly("style", "security"); assertThat(x1.htmlDescription()).isNotEmpty(); assertThat(x1.debtSubCharacteristic()) .isEqualTo(RulesDefinition.SubCharacteristics.INTEGRATION_TESTABILITY); assertThat(x1.debtRemediationFunction().type()) .isEqualTo(DebtRemediationFunction.Type.LINEAR_OFFSET); assertThat(x1.debtRemediationFunction().coefficient()).isEqualTo("1h"); assertThat(x1.debtRemediationFunction().offset()).isEqualTo("30min"); assertThat(x1.effortToFixDescription()).isEqualTo("Effort to fix issue on one line"); }
private void resetRules( List<RuleDto> ruleDtos, List<RulesDefinition.Rule> rules, List<CharacteristicDto> allCharacteristicDtos, Date updateDate, DbSession session) { for (RuleDto rule : ruleDtos) { // Restore default debt definitions RulesDefinition.Rule ruleDef; if (rule.getTemplateId() != null) { RuleDto templateRule = rule(rule.getTemplateId(), ruleDtos); ruleDef = ruleDef(templateRule.getRepositoryKey(), templateRule.getRuleKey(), rules); } else { ruleDef = ruleDef(rule.getRepositoryKey(), rule.getRuleKey(), rules); } if (ruleDef != null) { String subCharacteristicKey = ruleDef.debtSubCharacteristic(); CharacteristicDto subCharacteristicDto = characteristicByKey(subCharacteristicKey, allCharacteristicDtos, false); DebtRemediationFunction remediationFunction = ruleDef.debtRemediationFunction(); boolean hasDebtDefinition = subCharacteristicDto != null && remediationFunction != null; rule.setDefaultSubCharacteristicId(hasDebtDefinition ? subCharacteristicDto.getId() : null); rule.setDefaultRemediationFunction( hasDebtDefinition ? remediationFunction.type().name() : null); rule.setDefaultRemediationCoefficient( hasDebtDefinition ? remediationFunction.coefficient() : null); rule.setDefaultRemediationOffset(hasDebtDefinition ? remediationFunction.offset() : null); } // Reset overridden debt definitions rule.setSubCharacteristicId(null); rule.setRemediationFunction(null); rule.setRemediationCoefficient(null); rule.setRemediationOffset(null); rule.setUpdatedAt(updateDate); dbClient.ruleDao().update(session, rule); } }