use of org.sonar.ce.task.projectanalysis.metric.Metric in project sonarqube by SonarSource.
the class FormulaExecutorComponentVisitor method addNewMeasure.
private void addNewMeasure(Component component, String metricKey, Formula formula, Counter counter) {
// no new measure can be created by formulas for PROJECT_VIEW components, their measures are the copy
if (component.getType() == Component.Type.PROJECT_VIEW) {
return;
}
Metric metric = metricRepository.getByKey(metricKey);
Optional<Measure> measure = formula.createMeasure(counter, new CreateMeasureContextImpl(component, metric));
if (measure.isPresent()) {
measureRepository.add(component, metric, measure.get());
}
}
use of org.sonar.ce.task.projectanalysis.metric.Metric in project sonarqube by SonarSource.
the class LoadQualityGateStepTest method filter_conditions_on_pull_request.
@Test
public void filter_conditions_on_pull_request() {
Metric newMetric = new MetricImpl("1", "new_key", "name", Metric.MetricType.INT);
Metric metric = new MetricImpl("2", "key", "name", Metric.MetricType.INT);
Condition variation = new Condition(newMetric, Condition.Operator.GREATER_THAN.getDbValue(), "1.0");
Condition condition = new Condition(metric, Condition.Operator.GREATER_THAN.getDbValue(), "1.0");
when(analysisMetadataHolder.isPullRequest()).thenReturn(true);
QualityGate defaultGate = new QualityGate("1", "qg", Arrays.asList(variation, condition));
when(qualityGateService.findDefaultQualityGate()).thenReturn(defaultGate);
underTest.execute(new TestComputationStepContext());
assertThat(mutableQualityGateHolder.getQualityGate().get().getConditions()).containsExactly(variation);
}
use of org.sonar.ce.task.projectanalysis.metric.Metric in project sonarqube by SonarSource.
the class SmallChangesetQualityGateSpecialCaseTest method generateEvaluationResult.
private QualityGateMeasuresStep.MetricEvaluationResult generateEvaluationResult(String metric, Measure.Level level) {
Metric newCoverageMetric = metricRepository.getByKey(metric);
Condition condition = new Condition(newCoverageMetric, "LT", "80");
EvaluationResult evaluationResult = new EvaluationResult(level, mock(Comparable.class));
return new QualityGateMeasuresStep.MetricEvaluationResult(evaluationResult, condition);
}
use of org.sonar.ce.task.projectanalysis.metric.Metric in project sonarqube by SonarSource.
the class MeasureRepositoryImplTest method update_throws_IAE_if_valueType_of_Measure_is_not_the_same_as_the_Metric_valueType_unless_NO_VALUE.
@Test
@UseDataProvider("measures")
public void update_throws_IAE_if_valueType_of_Measure_is_not_the_same_as_the_Metric_valueType_unless_NO_VALUE(Measure measure) {
for (Metric.MetricType metricType : Metric.MetricType.values()) {
if (metricType.getValueType() == measure.getValueType() || measure.getValueType() == Measure.ValueType.NO_VALUE) {
continue;
}
try {
final MetricImpl metric = new MetricImpl("1", "key" + metricType, "name" + metricType, metricType);
underTest.add(FILE_COMPONENT, metric, getSomeMeasureByValueType(metricType));
underTest.update(FILE_COMPONENT, metric, measure);
fail("An IllegalArgumentException should have been raised");
} catch (IllegalArgumentException e) {
assertThat(e).hasMessage(format("Measure's ValueType (%s) is not consistent with the Metric's ValueType (%s)", measure.getValueType(), metricType.getValueType()));
}
}
}
use of org.sonar.ce.task.projectanalysis.metric.Metric in project sonarqube by SonarSource.
the class MeasureRepositoryImplTest method update_accepts_NO_VALUE_as_measure_arg.
@Test
public void update_accepts_NO_VALUE_as_measure_arg() {
for (Metric.MetricType metricType : Metric.MetricType.values()) {
MetricImpl metric = new MetricImpl("1", "key" + metricType, "name" + metricType, metricType);
underTest.add(FILE_COMPONENT, metric, getSomeMeasureByValueType(metricType));
underTest.update(FILE_COMPONENT, metric, Measure.newMeasureBuilder().createNoValue());
}
}
Aggregations