@Test public void test_security_remediation_effort() { withNoIssues().assertThatValueIs(CoreMetrics.SECURITY_REMEDIATION_EFFORT, 0); with( newGroup(RuleType.VULNERABILITY).setEffort(3.0), newGroup(RuleType.VULNERABILITY).setEffort(5.0).setSeverity(Severity.BLOCKER), // not vulnerability newGroup(RuleType.CODE_SMELL).setEffort(7.0), // exclude resolved newResolvedGroup(RuleType.VULNERABILITY).setEffort(17.0)) .assertThatValueIs(CoreMetrics.SECURITY_REMEDIATION_EFFORT, 3.0 + 5.0); }
@Test public void test_reliability_remediation_effort() { withNoIssues().assertThatValueIs(CoreMetrics.RELIABILITY_REMEDIATION_EFFORT, 0); with( newGroup(RuleType.BUG).setEffort(3.0), newGroup(RuleType.BUG).setEffort(5.0).setSeverity(Severity.BLOCKER), // not bugs newGroup(RuleType.CODE_SMELL).setEffort(7.0), // exclude resolved newResolvedGroup(RuleType.BUG).setEffort(17.0)) .assertThatValueIs(CoreMetrics.RELIABILITY_REMEDIATION_EFFORT, 3.0 + 5.0); }
@Test public void test_technical_debt() { withNoIssues().assertThatValueIs(CoreMetrics.TECHNICAL_DEBT, 0); with( newGroup(RuleType.CODE_SMELL).setEffort(3.0).setInLeak(false), newGroup(RuleType.CODE_SMELL).setEffort(5.0).setInLeak(true), // exclude security hotspot newGroup(RuleType.SECURITY_HOTSPOT).setEffort(9).setInLeak(true), newGroup(RuleType.SECURITY_HOTSPOT).setEffort(11).setInLeak(false), // not code smells newGroup(RuleType.BUG).setEffort(7.0), // exclude resolved newResolvedGroup(RuleType.CODE_SMELL).setEffort(17.0)) .assertThatValueIs(CoreMetrics.TECHNICAL_DEBT, 3.0 + 5.0); }
@Test public void test_new_security_remediation_effort() { withNoIssues().assertThatLeakValueIs(CoreMetrics.NEW_SECURITY_REMEDIATION_EFFORT, 0.0); with( newGroup(RuleType.VULNERABILITY).setEffort(3.0).setInLeak(true), // not in leak newGroup(RuleType.VULNERABILITY).setEffort(5.0).setInLeak(false), // not vulnerability newGroup(RuleType.CODE_SMELL).setEffort(7.0).setInLeak(true), // exclude resolved newResolvedGroup(RuleType.VULNERABILITY).setEffort(17.0).setInLeak(true)) .assertThatLeakValueIs(CoreMetrics.NEW_SECURITY_REMEDIATION_EFFORT, 3.0); }
@Test public void test_new_technical_debt() { withNoIssues().assertThatLeakValueIs(CoreMetrics.NEW_TECHNICAL_DEBT, 0.0); with( newGroup(RuleType.CODE_SMELL).setEffort(3.0).setInLeak(true), // not in leak newGroup(RuleType.CODE_SMELL).setEffort(5.0).setInLeak(false), // not code smells newGroup(RuleType.SECURITY_HOTSPOT).setEffort(9.0).setInLeak(true), newGroup(RuleType.BUG).setEffort(7.0).setInLeak(true), // exclude resolved newResolvedGroup(RuleType.CODE_SMELL).setEffort(17.0).setInLeak(true)) .assertThatLeakValueIs(CoreMetrics.NEW_TECHNICAL_DEBT, 3.0); }
@Test public void test_new_reliability_remediation_effort() { withNoIssues().assertThatLeakValueIs(CoreMetrics.NEW_RELIABILITY_REMEDIATION_EFFORT, 0.0); with( newGroup(RuleType.BUG).setEffort(3.0).setInLeak(true), // not in leak newGroup(RuleType.BUG).setEffort(5.0).setInLeak(false), // not bugs newGroup(RuleType.CODE_SMELL).setEffort(7.0).setInLeak(true), // exclude resolved newResolvedGroup(RuleType.BUG).setEffort(17.0).setInLeak(true)) .assertThatLeakValueIs(CoreMetrics.NEW_RELIABILITY_REMEDIATION_EFFORT, 3.0); }
private static IssueGroupDto newGroup(RuleType ruleType) { IssueGroupDto dto = new IssueGroupDto(); // set non-null fields dto.setRuleType(ruleType.getDbConstant()); dto.setCount(1); dto.setEffort(0.0); dto.setSeverity(Severity.INFO); dto.setStatus(Issue.STATUS_OPEN); dto.setInLeak(false); return dto; }