Search in sources :

Example 21 with Metric

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());
    }
}
Also used : Measure(org.sonar.ce.task.projectanalysis.measure.Measure) Metric(org.sonar.ce.task.projectanalysis.metric.Metric)

Example 22 with Metric

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);
}
Also used : Condition(org.sonar.ce.task.projectanalysis.qualitygate.Condition) MetricImpl(org.sonar.ce.task.projectanalysis.metric.MetricImpl) Metric(org.sonar.ce.task.projectanalysis.metric.Metric) TestComputationStepContext(org.sonar.ce.task.step.TestComputationStepContext) QualityGate(org.sonar.ce.task.projectanalysis.qualitygate.QualityGate) Test(org.junit.Test)

Example 23 with Metric

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);
}
Also used : Condition(org.sonar.ce.task.projectanalysis.qualitygate.Condition) Metric(org.sonar.ce.task.projectanalysis.metric.Metric) EvaluationResult(org.sonar.ce.task.projectanalysis.qualitygate.EvaluationResult)

Example 24 with Metric

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()));
        }
    }
}
Also used : MetricImpl(org.sonar.ce.task.projectanalysis.metric.MetricImpl) Metric(org.sonar.ce.task.projectanalysis.metric.Metric) Test(org.junit.Test) UseDataProvider(com.tngtech.java.junit.dataprovider.UseDataProvider)

Example 25 with Metric

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());
    }
}
Also used : MetricImpl(org.sonar.ce.task.projectanalysis.metric.MetricImpl) Metric(org.sonar.ce.task.projectanalysis.metric.Metric) Test(org.junit.Test)

Aggregations

Metric (org.sonar.ce.task.projectanalysis.metric.Metric)35 Test (org.junit.Test)16 Measure (org.sonar.ce.task.projectanalysis.measure.Measure)15 UseDataProvider (com.tngtech.java.junit.dataprovider.UseDataProvider)5 MetricImpl (org.sonar.ce.task.projectanalysis.metric.MetricImpl)5 Condition (org.sonar.ce.task.projectanalysis.qualitygate.Condition)4 ImmutableMap (com.google.common.collect.ImmutableMap)2 Map (java.util.Map)2 QualityGateStatus (org.sonar.ce.task.projectanalysis.measure.QualityGateStatus)2 Collection (java.util.Collection)1 HashMap (java.util.HashMap)1 RuleType (org.sonar.api.rules.RuleType)1 Branch (org.sonar.ce.task.projectanalysis.analysis.Branch)1 Component (org.sonar.ce.task.projectanalysis.component.Component)1 EvaluatedCondition (org.sonar.ce.task.projectanalysis.measure.qualitygatedetails.EvaluatedCondition)1 QualityGateDetailsData (org.sonar.ce.task.projectanalysis.measure.qualitygatedetails.QualityGateDetailsData)1 MetricType (org.sonar.ce.task.projectanalysis.metric.Metric.MetricType)1 EvaluationResult (org.sonar.ce.task.projectanalysis.qualitygate.EvaluationResult)1 QualityGate (org.sonar.ce.task.projectanalysis.qualitygate.QualityGate)1 TestComputationStepContext (org.sonar.ce.task.step.TestComputationStepContext)1