Search in sources :

Example 11 with Metric

use of org.sonar.api.measures.Metric in project sonarqube by SonarSource.

the class RegisterMetrics method getPluginMetrics.

@VisibleForTesting
List<Metric> getPluginMetrics() {
    List<Metric> metricsToRegister = newArrayList();
    Map<String, Metrics> metricsByRepository = Maps.newHashMap();
    for (Metrics metrics : metricsRepositories) {
        checkMetrics(metricsByRepository, metrics);
        metricsToRegister.addAll(metrics.getMetrics());
    }
    return metricsToRegister;
}
Also used : Metrics(org.sonar.api.measures.Metrics) CoreMetrics(org.sonar.api.measures.CoreMetrics) Metric(org.sonar.api.measures.Metric) VisibleForTesting(com.google.common.annotations.VisibleForTesting)

Example 12 with Metric

use of org.sonar.api.measures.Metric in project sonarqube by SonarSource.

the class RegisterMetrics method checkMetrics.

private void checkMetrics(Map<String, Metrics> metricsByRepository, Metrics metrics) {
    for (Metric metric : metrics.getMetrics()) {
        String metricKey = metric.getKey();
        if (CoreMetrics.getMetrics().contains(metric)) {
            throw new IllegalStateException(String.format("Metric [%s] is already defined by SonarQube", metricKey));
        }
        Metrics anotherRepository = metricsByRepository.get(metricKey);
        if (anotherRepository != null) {
            throw new IllegalStateException(String.format("Metric [%s] is already defined by the repository [%s]", metricKey, anotherRepository));
        }
        metricsByRepository.put(metricKey, metrics);
    }
}
Also used : Metrics(org.sonar.api.measures.Metrics) CoreMetrics(org.sonar.api.measures.CoreMetrics) Metric(org.sonar.api.measures.Metric)

Example 13 with Metric

use of org.sonar.api.measures.Metric in project sonarqube by SonarSource.

the class CoreCustomMetricsTest method checkDefinitions.

@Test
public void checkDefinitions() {
    CoreCustomMetrics coreCustomMetrics = new CoreCustomMetrics();
    List<Metric> metrics = coreCustomMetrics.getMetrics();
    assertThat(metrics.size()).isGreaterThan(2);
    for (Metric metric : metrics) {
        assertThat(metric.getUserManaged()).isTrue();
        assertThat(metric.getDomain()).isEqualTo("Management");
    }
}
Also used : Metric(org.sonar.api.measures.Metric) Test(org.junit.Test)

Example 14 with Metric

use of org.sonar.api.measures.Metric in project sonarqube by SonarSource.

the class QualityGatesTest method should_list_gate_metrics.

@Test
public void should_list_gate_metrics() {
    Metric dataMetric = mock(Metric.class);
    when(dataMetric.isDataType()).thenReturn(true);
    Metric hiddenMetric = mock(Metric.class);
    when(hiddenMetric.isHidden()).thenReturn(true);
    Metric nullHiddenMetric = mock(Metric.class);
    when(nullHiddenMetric.isHidden()).thenReturn(null);
    Metric alertMetric = CoreMetrics.ALERT_STATUS;
    Metric ratingMetric = mock(Metric.class);
    when(ratingMetric.getType()).thenReturn(ValueType.RATING);
    Metric classicMetric = mock(Metric.class);
    when(classicMetric.getType()).thenReturn(ValueType.BOOL);
    when(metricFinder.findAll()).thenReturn(ImmutableList.of(dataMetric, hiddenMetric, nullHiddenMetric, alertMetric, ratingMetric, classicMetric));
}
Also used : Metric(org.sonar.api.measures.Metric) Test(org.junit.Test)

Example 15 with Metric

use of org.sonar.api.measures.Metric in project sonarqube by SonarSource.

the class QualityGatesTest method should_list_conditions.

@Test
public void should_list_conditions() {
    long qGateId = QUALITY_GATE_ID;
    long metric1Id = 1L;
    String metric1Key = "polop";
    long metric2Id = 2L;
    String metric2Key = "palap";
    QualityGateConditionDto cond1 = new QualityGateConditionDto().setMetricId(metric1Id);
    QualityGateConditionDto cond2 = new QualityGateConditionDto().setMetricId(metric2Id);
    Collection<QualityGateConditionDto> conditions = ImmutableList.of(cond1, cond2);
    when(conditionDao.selectForQualityGate(dbSession, qGateId)).thenReturn(conditions);
    Metric metric1 = mock(Metric.class);
    when(metric1.getKey()).thenReturn(metric1Key);
    when(metricFinder.findById((int) metric1Id)).thenReturn(metric1);
    Metric metric2 = mock(Metric.class);
    when(metric2.getKey()).thenReturn(metric2Key);
    when(metricFinder.findById((int) metric2Id)).thenReturn(metric2);
    assertThat(underTest.listConditions(qGateId)).isEqualTo(conditions);
    Iterator<QualityGateConditionDto> iterator = conditions.iterator();
    assertThat(iterator.next().getMetricKey()).isEqualTo(metric1Key);
    assertThat(iterator.next().getMetricKey()).isEqualTo(metric2Key);
}
Also used : QualityGateConditionDto(org.sonar.db.qualitygate.QualityGateConditionDto) Metric(org.sonar.api.measures.Metric) Test(org.junit.Test)

Aggregations

Metric (org.sonar.api.measures.Metric)19 Test (org.junit.Test)12 CoreMetrics (org.sonar.api.measures.CoreMetrics)3 Metrics (org.sonar.api.measures.Metrics)3 QualityGateConditionDto (org.sonar.db.qualitygate.QualityGateConditionDto)3 InputFile (org.sonar.api.batch.fs.InputFile)2 MetricProvider (org.sonar.scanner.bootstrap.MetricProvider)2 VisibleForTesting (com.google.common.annotations.VisibleForTesting)1 File (java.io.File)1 Reader (java.io.Reader)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 InputComponent (org.sonar.api.batch.fs.InputComponent)1 TestInputFileBuilder (org.sonar.api.batch.fs.internal.TestInputFileBuilder)1 NewIssue (org.sonar.api.batch.sensor.issue.NewIssue)1 NewIssueLocation (org.sonar.api.batch.sensor.issue.NewIssueLocation)1 DefaultMeasure (org.sonar.api.batch.sensor.measure.internal.DefaultMeasure)1 CoreMetrics.getMetric (org.sonar.api.measures.CoreMetrics.getMetric)1 DbSession (org.sonar.db.DbSession)1