@Test public void search_debt_rules_with_default_and_overridden_debt_values() { RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage("java") .setDefRemediationFunction(DebtRemediationFunction.Type.LINEAR_OFFSET.name()) .setDefRemediationGapMultiplier("1h") .setDefRemediationBaseEffort("15min")); RuleMetadataDto metadata = insertMetadata(db.getDefaultOrganization(), rule, r -> r.setRemediationFunction(DebtRemediationFunction.Type.LINEAR_OFFSET.name()) .setRemediationGapMultiplier("2h") .setRemediationBaseEffort("25min")); indexRules(); SearchResponse result = ws.newRequest() .setParam("f", "debtRemFn,debtOverloaded,defaultDebtRemFn") .executeProtobuf(SearchResponse.class); assertThat(result.getTotal()).isEqualTo(1); assertThat(result.getRulesCount()).isEqualTo(1); Rule searchedRule = result.getRules(0); assertThat(searchedRule).isNotNull(); assertThat(searchedRule.getDefaultDebtRemFnCoeff()).isEqualTo("1h"); assertThat(searchedRule.getDefaultDebtRemFnOffset()).isEqualTo("15min"); assertThat(searchedRule.getDefaultDebtRemFnType()).isEqualTo(DebtRemediationFunction.Type.LINEAR_OFFSET.name()); assertThat(searchedRule.getDefaultRemFnBaseEffort()).isEqualTo("15min"); assertThat(searchedRule.getDefaultRemFnGapMultiplier()).isEqualTo("1h"); assertThat(searchedRule.getDefaultRemFnType()).isEqualTo(DebtRemediationFunction.Type.LINEAR_OFFSET.name()); assertThat(searchedRule.getDebtOverloaded()).isTrue(); assertThat(searchedRule.getDebtRemFnCoeff()).isEqualTo("2h"); assertThat(searchedRule.getDebtRemFnOffset()).isEqualTo("25min"); assertThat(searchedRule.getDebtRemFnType()).isEqualTo(DebtRemediationFunction.Type.LINEAR_OFFSET.name()); }
@Test public void search_debt_rules_with_default_linear_offset_and_overridden_linear_debt() { RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage("java") .setDefRemediationFunction(DebtRemediationFunction.Type.LINEAR_OFFSET.name()) .setDefRemediationGapMultiplier("1h") .setDefRemediationBaseEffort("15min")); RuleMetadataDto metadata = insertMetadata(db.getDefaultOrganization(), rule, r -> r.setRemediationFunction(DebtRemediationFunction.Type.LINEAR.name()) .setRemediationGapMultiplier("1h") .setRemediationBaseEffort(null)); indexRules(); SearchResponse result = ws.newRequest() .setParam("f", "debtRemFn,debtOverloaded,defaultDebtRemFn") .executeProtobuf(SearchResponse.class); assertThat(result.getTotal()).isEqualTo(1); assertThat(result.getRulesCount()).isEqualTo(1); Rule searchedRule = result.getRules(0); assertThat(searchedRule).isNotNull(); assertThat(searchedRule.getDefaultDebtRemFnCoeff()).isEqualTo("1h"); assertThat(searchedRule.getDefaultDebtRemFnOffset()).isEqualTo("15min"); assertThat(searchedRule.getDefaultDebtRemFnType()).isEqualTo(DebtRemediationFunction.Type.LINEAR_OFFSET.name()); assertThat(searchedRule.getDefaultRemFnBaseEffort()).isEqualTo("15min"); assertThat(searchedRule.getDefaultRemFnGapMultiplier()).isEqualTo("1h"); assertThat(searchedRule.getDefaultRemFnType()).isEqualTo(DebtRemediationFunction.Type.LINEAR_OFFSET.name()); assertThat(searchedRule.getDebtOverloaded()).isTrue(); assertThat(searchedRule.getDebtRemFnCoeff()).isEqualTo("1h"); assertThat(searchedRule.getDebtRemFnOffset()).isEmpty(); assertThat(searchedRule.getDebtRemFnType()).isEqualTo(DebtRemediationFunction.Type.LINEAR.name()); }
@Test public void search_debt_rules_with_default_linear_offset_and_overridden_constant_debt() { RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage("java") .setDefRemediationFunction(DebtRemediationFunction.Type.LINEAR_OFFSET.name()) .setDefRemediationGapMultiplier("1h") .setDefRemediationBaseEffort("15min")); RuleMetadataDto metadata = insertMetadata(db.getDefaultOrganization(), rule, r -> r.setRemediationFunction(DebtRemediationFunction.Type.CONSTANT_ISSUE.name()) .setRemediationGapMultiplier(null) .setRemediationBaseEffort("5min")); indexRules(); SearchResponse result = ws.newRequest() .setParam("f", "debtRemFn,debtOverloaded,defaultDebtRemFn") .executeProtobuf(SearchResponse.class); assertThat(result.getTotal()).isEqualTo(1); assertThat(result.getRulesCount()).isEqualTo(1); Rule searchedRule = result.getRules(0); assertThat(searchedRule).isNotNull(); assertThat(searchedRule.getDefaultDebtRemFnCoeff()).isEqualTo("1h"); assertThat(searchedRule.getDefaultDebtRemFnOffset()).isEqualTo("15min"); assertThat(searchedRule.getDefaultDebtRemFnType()).isEqualTo(DebtRemediationFunction.Type.LINEAR_OFFSET.name()); assertThat(searchedRule.getDefaultRemFnBaseEffort()).isEqualTo("15min"); assertThat(searchedRule.getDefaultRemFnGapMultiplier()).isEqualTo("1h"); assertThat(searchedRule.getDefaultRemFnType()).isEqualTo(DebtRemediationFunction.Type.LINEAR_OFFSET.name()); assertThat(searchedRule.getDebtOverloaded()).isTrue(); assertThat(searchedRule.getDebtRemFnCoeff()).isEmpty(); assertThat(searchedRule.getDebtRemFnOffset()).isEqualTo("5min"); assertThat(searchedRule.getDebtRemFnType()).isEqualTo(DebtRemediationFunction.Type.CONSTANT_ISSUE.name()); }
assertThat(updatedRule.getDebtRemFnCoeff()).isEqualTo(newCoeff); assertThat(updatedRule.getDebtRemFnOffset()).isEqualTo(newOffset);