@Override protected void configureModule() { add( IssueMetricFormulaFactoryImpl.class, LiveMeasureComputerImpl.class, LiveQualityGateComputerImpl.class); } }
public long countUnresolved(boolean onlyInLeak) { return value(unresolved, onlyInLeak); }
@Override public void setLeakValue(Rating value) { String metricKey = currentFormula.getMetric().getKey(); checkState(currentFormula.isOnLeak(), "Formula of metric %s does not accept leak values", metricKey); matrix.setLeakValue(currentComponent, metricKey, value); } }
@Test public void test_violations() { withNoIssues().assertThatValueIs(CoreMetrics.VIOLATIONS, 0); with(newGroup(), newGroup().setCount(4)).assertThatValueIs(CoreMetrics.VIOLATIONS, 5); // exclude resolved IssueGroupDto resolved = newResolvedGroup(Issue.RESOLUTION_FIXED, Issue.STATUS_RESOLVED); with(newGroup(), newGroup(), resolved).assertThatValueIs(CoreMetrics.VIOLATIONS, 2); // include issues on leak IssueGroupDto onLeak = newGroup().setCount(11).setInLeak(true); with(newGroup(), newGroup(), onLeak).assertThatValueIs(CoreMetrics.VIOLATIONS, 1 + 1 + 11); }
@Test public void test_new_vulnerabilities() { withNoIssues().assertThatLeakValueIs(CoreMetrics.NEW_VULNERABILITIES, 0.0); with( newGroup(RuleType.VULNERABILITY).setInLeak(false).setSeverity(Severity.MAJOR).setCount(3), newGroup(RuleType.VULNERABILITY).setInLeak(true).setSeverity(Severity.CRITICAL).setCount(5), newGroup(RuleType.VULNERABILITY).setInLeak(true).setSeverity(Severity.MINOR).setCount(7), // not vulnerabilities newGroup(RuleType.BUG).setInLeak(true).setCount(9), newGroup(RuleType.CODE_SMELL).setInLeak(true).setCount(11)) .assertThatLeakValueIs(CoreMetrics.NEW_VULNERABILITIES, 5 + 7); }
private Verifier withNoIssues() { return new Verifier(new IssueGroupDto[0]); }
@Override public Set<Metric> getFormulaMetrics() { return IssueMetricFormulaFactory.extractMetrics(formulas); } }
private static IssueGroupDto newGroup() { return newGroup(RuleType.CODE_SMELL); }
@Override public void setLeakValue(double value) { String metricKey = currentFormula.getMetric().getKey(); checkState(currentFormula.isOnLeak(), "Formula of metric %s does not accept leak values", metricKey); matrix.setLeakValue(currentComponent, metricKey, value); }
@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_new_bugs() { withNoIssues().assertThatLeakValueIs(CoreMetrics.NEW_BUGS, 0.0); with( newGroup(RuleType.BUG).setInLeak(false).setSeverity(Severity.MAJOR).setCount(3), newGroup(RuleType.BUG).setInLeak(true).setSeverity(Severity.CRITICAL).setCount(5), newGroup(RuleType.BUG).setInLeak(true).setSeverity(Severity.MINOR).setCount(7), // not bugs newGroup(RuleType.CODE_SMELL).setInLeak(true).setCount(9), newGroup(RuleType.VULNERABILITY).setInLeak(true).setCount(11)) .assertThatLeakValueIs(CoreMetrics.NEW_BUGS, 5 + 7); }
private Verifier with(IssueGroupDto... groups) { return new Verifier(groups); }
@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_new_code_smells() { withNoIssues().assertThatLeakValueIs(CoreMetrics.NEW_CODE_SMELLS, 0.0); with( newGroup(RuleType.CODE_SMELL).setInLeak(false).setSeverity(Severity.MAJOR).setCount(3), newGroup(RuleType.CODE_SMELL).setInLeak(true).setSeverity(Severity.CRITICAL).setCount(5), newGroup(RuleType.CODE_SMELL).setInLeak(true).setSeverity(Severity.MINOR).setCount(7), // not code smells newGroup(RuleType.BUG).setInLeak(true).setCount(9), newGroup(RuleType.VULNERABILITY).setInLeak(true).setCount(11)) .assertThatLeakValueIs(CoreMetrics.NEW_CODE_SMELLS, 5 + 7); }
@Test public void test_bugs() { withNoIssues().assertThatValueIs(CoreMetrics.BUGS, 0); with( newGroup(RuleType.BUG).setSeverity(Severity.MAJOR).setCount(3), newGroup(RuleType.BUG).setSeverity(Severity.CRITICAL).setCount(5), // exclude resolved newResolvedGroup(RuleType.BUG).setCount(7), // not bugs newGroup(RuleType.CODE_SMELL).setCount(11)) .assertThatValueIs(CoreMetrics.BUGS, 3 + 5); }
@Test public void test_code_smells() { withNoIssues().assertThatValueIs(CoreMetrics.CODE_SMELLS, 0); with( newGroup(RuleType.CODE_SMELL).setSeverity(Severity.MAJOR).setCount(3), newGroup(RuleType.CODE_SMELL).setSeverity(Severity.CRITICAL).setCount(5), // exclude resolved newResolvedGroup(RuleType.CODE_SMELL).setCount(7), // not code smells newGroup(RuleType.BUG).setCount(11)) .assertThatValueIs(CoreMetrics.CODE_SMELLS, 3 + 5); }