Skip to content
This repository was archived by the owner on Nov 19, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ protected void evaluate(final CoverageQualityGate qualityGate, final QualityGate
result.add(qualityGate, status, FORMATTER.format(actualValue, Locale.ENGLISH));
}
else {
result.add(qualityGate, qualityGate.getStatus(), "n/a");
result.add(qualityGate, QualityGateStatus.INACTIVE, "n/a");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,16 @@ public static CoverageStatistics createStatistics() {
fillValues(), fillDeltas());
}

/**
* Creates coverage statistics that can be used in test cases.
*
* @return the coverage statistics
*/
public static CoverageStatistics createOnlyProjectStatistics() {
return new CoverageStatistics(fillValues(),
new TreeMap<>(), List.of(), new TreeMap<>(), List.of(), new TreeMap<>());
}

private static List<Value> fillValues() {
var builder = new CoverageBuilder();
return List.of(builder.setMetric(Metric.FILE).setCovered(3).setMissed(1).build(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,30 @@ void shouldPassForTooLowThresholds() {
"-> [Modified files (difference to overall project) - Line Coverage]: ≪Success≫ - (Actual value: +5.00%, Quality gate: -10.00)");
}

@Test
void shouldSkipIfValueNotDefined() {
Collection<CoverageQualityGate> qualityGates = new ArrayList<>();

qualityGates.add(new CoverageQualityGate(0, Metric.FILE, Baseline.MODIFIED_LINES, QualityGateCriticality.UNSTABLE));
qualityGates.add(new CoverageQualityGate(0, Metric.FILE, Baseline.MODIFIED_FILES, QualityGateCriticality.UNSTABLE));
qualityGates.add(new CoverageQualityGate(0, Metric.LINE, Baseline.PROJECT_DELTA, QualityGateCriticality.UNSTABLE));
qualityGates.add(new CoverageQualityGate(0, Metric.FILE, Baseline.MODIFIED_LINES_DELTA, QualityGateCriticality.UNSTABLE));
qualityGates.add(new CoverageQualityGate(0, Metric.LINE, Baseline.MODIFIED_FILES_DELTA, QualityGateCriticality.UNSTABLE));

CoverageQualityGateEvaluator evaluator = new CoverageQualityGateEvaluator(qualityGates, createOnlyProjectStatistics());

assertThat(evaluator).isEnabled();

QualityGateResult result = evaluator.evaluate();

assertThat(result).hasOverallStatus(QualityGateStatus.INACTIVE).isInactive().hasMessages(
"-> [Modified code lines - File Coverage]: ≪Not built≫ - (Actual value: n/a, Quality gate: 0.00)",
"-> [Modified files - File Coverage]: ≪Not built≫ - (Actual value: n/a, Quality gate: 0.00)",
"-> [Overall project (difference to reference job) - Line Coverage]: ≪Not built≫ - (Actual value: n/a, Quality gate: 0.00)",
"-> [Modified code lines (difference to modified files) - File Coverage]: ≪Not built≫ - (Actual value: n/a, Quality gate: 0.00)",
"-> [Modified files (difference to overall project) - Line Coverage]: ≪Not built≫ - (Actual value: n/a, Quality gate: 0.00)");
}

@Test
void shouldReportUnstableIfBelowThreshold() {
Collection<CoverageQualityGate> qualityGates = new ArrayList<>();
Expand Down Expand Up @@ -152,18 +176,6 @@ void shouldOverwriteStatus() {
assertThatStatusWillBeOverwritten(evaluator);
}

@Test
void shouldFailIfValueIsNotFound() {
Collection<CoverageQualityGate> qualityGates = new ArrayList<>();

qualityGates.add(new CoverageQualityGate(50.0, Metric.PACKAGE, Baseline.PROJECT, QualityGateCriticality.FAILURE));

CoverageQualityGateEvaluator evaluator = new CoverageQualityGateEvaluator(qualityGates, createStatistics());
QualityGateResult result = evaluator.evaluate();
assertThat(result).hasOverallStatus(QualityGateStatus.FAILED).isNotSuccessful().hasMessages(
"-> [Overall project - Package Coverage]: ≪Failed≫ - (Actual value: n/a, Quality gate: 50.00)");
}

@Test
void shouldAddAllQualityGates() {

Expand Down