public Duration calculate(DefaultIssue issue) {
Rule rule = ruleRepository.getByKey(issue.ruleKey());
DebtRemediationFunction fn = rule.getRemediationFunction();
- if (fn != null) {
+ if (fn != null && rule.getSubCharacteristicId() != null) {
verifyEffortToFix(issue, fn);
Duration debt = Duration.create(0);
public class NewDebtCalculator {
public long calculate(DefaultIssue issue, Collection<IssueChangeDto> debtChangelog, Period period) {
-
if (issue.creationDate().getTime() > period.getSnapshotDate() + 1000L) {
return Objects.firstNonNull(issue.debtInMinutes(), 0L);
}
public class DebtCalculatorTest {
- DumbRule rule = new DumbRule(RuleTesting.XOO_X1);
+ DumbRule rule = new DumbRule(RuleTesting.XOO_X1).setSubCharacteristicId(123);
DefaultIssue issue = new DefaultIssue().setRuleKey(rule.getKey());
@org.junit.Rule
assertThat(underTest.calculate(issue)).isNull();
}
+ @Test
+ public void no_debt_if_no_sqale_characteristic() {
+ rule.setSubCharacteristicId(null);
+ rule.setFunction(new DefaultDebtRemediationFunction(DebtRemediationFunction.Type.LINEAR, "2min", null));
+
+ DefaultIssue issue = new DefaultIssue().setRuleKey(rule.getKey());
+
+ assertThat(underTest.calculate(issue)).isNull();
+ }
+
@Test
public void default_effort_to_fix_is_one_for_linear_function() {
int coefficient = 2;