use of org.sonar.ce.task.projectanalysis.qualitygate.Condition in project sonarqube by SonarSource.
the class QualityGateDetailsDataTest method verify_json_for_condition_on_leak_metric.
@Test
public void verify_json_for_condition_on_leak_metric() {
String value = "actualValue";
Condition condition = new Condition(new MetricImpl("1", "new_key1", "name1", Metric.MetricType.STRING), Condition.Operator.GREATER_THAN.getDbValue(), "errorTh");
ImmutableList<EvaluatedCondition> evaluatedConditions = ImmutableList.of(new EvaluatedCondition(condition, Measure.Level.OK, value), new EvaluatedCondition(condition, Measure.Level.ERROR, value));
String actualJson = new QualityGateDetailsData(Measure.Level.OK, evaluatedConditions, false).toJson();
JsonAssert.assertJson(actualJson).isSimilarTo("{" + "\"level\":\"OK\"," + "\"conditions\":[" + " {" + " \"metric\":\"new_key1\"," + " \"op\":\"GT\"," + " \"error\":\"errorTh\"," + " \"actual\":\"actualValue\"," + " \"period\":1," + " \"level\":\"OK\"" + " }," + " {" + " \"metric\":\"new_key1\"," + " \"op\":\"GT\"," + " \"error\":\"errorTh\"," + " \"actual\":\"actualValue\"," + " \"period\":1," + " \"level\":\"ERROR\"" + " }" + "]" + "}");
}
use of org.sonar.ce.task.projectanalysis.qualitygate.Condition in project sonarqube by SonarSource.
the class PostProjectAnalysisTasksExecutorTest method createCondition.
private static Condition createCondition(String metricKey) {
Metric metric = mock(Metric.class);
when(metric.getKey()).thenReturn(metricKey);
return new Condition(metric, Condition.Operator.LESS_THAN.getDbValue(), "error threshold");
}
use of org.sonar.ce.task.projectanalysis.qualitygate.Condition in project sonarqube by SonarSource.
the class QualityGateMeasuresStep method createStatusPerCondition.
private static Map<Condition, ConditionStatus> createStatusPerCondition(Iterable<Condition> conditions, Iterable<EvaluatedCondition> evaluatedConditions) {
Map<Condition, EvaluatedCondition> evaluatedConditionPerCondition = from(evaluatedConditions).uniqueIndex(EvaluatedConditionToCondition.INSTANCE);
ImmutableMap.Builder<Condition, ConditionStatus> builder = ImmutableMap.builder();
for (Condition condition : conditions) {
EvaluatedCondition evaluatedCondition = evaluatedConditionPerCondition.get(condition);
if (evaluatedCondition == null) {
builder.put(condition, NO_VALUE_STATUS);
} else {
builder.put(condition, create(toEvaluationStatus(evaluatedCondition.getLevel()), evaluatedCondition.getActualValue()));
}
}
return builder.build();
}
use of org.sonar.ce.task.projectanalysis.qualitygate.Condition in project sonarqube by SonarSource.
the class QualityGateMeasuresStepTest method new_measures_are_created_even_if_there_is_no_rawMeasure_for_metric_of_condition.
@Test
public void new_measures_are_created_even_if_there_is_no_rawMeasure_for_metric_of_condition() {
Condition equals2Condition = createLessThanCondition(INT_METRIC_1, "2");
qualityGateHolder.setQualityGate(new QualityGate(SOME_QG_UUID, SOME_QG_NAME, of(equals2Condition)));
underTest.execute(new TestComputationStepContext());
Optional<Measure> addedRawMeasure = measureRepository.getAddedRawMeasure(PROJECT_COMPONENT, INT_METRIC_1_KEY);
assertThat(addedRawMeasure).isAbsent();
assertThat(getAlertStatusMeasure()).hasQualityGateLevel(OK).hasQualityGateText("");
assertThat(getQGDetailsMeasure()).hasValue(new QualityGateDetailsData(OK, Collections.emptyList(), false).toJson());
QualityGateStatusHolderAssertions.assertThat(qualityGateStatusHolder).hasStatus(QualityGateStatus.OK).hasConditionCount(1).hasCondition(equals2Condition, ConditionStatus.EvaluationStatus.NO_VALUE, null);
}
use of org.sonar.ce.task.projectanalysis.qualitygate.Condition in project sonarqube by SonarSource.
the class QualityGateMeasuresStepTest method new_measure_has_condition_on_leak_period_when_all_conditions_on_specific_metric_has_same_QG_level.
@Test
public void new_measure_has_condition_on_leak_period_when_all_conditions_on_specific_metric_has_same_QG_level() {
int rawValue = 0;
Condition fixedCondition = createLessThanCondition(INT_METRIC_1, "1");
Condition periodCondition = createLessThanCondition(INT_METRIC_1, "1");
qualityGateHolder.setQualityGate(new QualityGate(SOME_QG_UUID, SOME_QG_NAME, of(fixedCondition, periodCondition)));
Measure measure = newMeasureBuilder().setVariation(rawValue).create(rawValue, null);
measureRepository.addRawMeasure(PROJECT_REF, INT_METRIC_1_KEY, measure);
underTest.execute(new TestComputationStepContext());
Optional<Measure> rawMeasure1 = measureRepository.getAddedRawMeasure(PROJECT_REF, INT_METRIC_1_KEY);
assertThat(rawMeasure1.get()).hasQualityGateLevel(ERROR).hasQualityGateText(dumbResultTextAnswer(periodCondition, ERROR, rawValue));
}
Aggregations