use of org.sonar.api.measures.Metrics in project sonarqube by SonarSource.
the class MetricProviderTest method should_provide_plugin_metrics.
@Test
public void should_provide_plugin_metrics() {
Metrics factory = new Metrics() {
public List<Metric> getMetrics() {
return Arrays.<Metric>asList(new Metric.Builder("custom", "Custom", Metric.ValueType.FLOAT).create());
}
};
MetricProvider provider = new MetricProvider(new Metrics[] { factory });
List<Metric> metrics = provider.provide();
assertThat(metrics.size()).isEqualTo(1 + CoreMetrics.getMetrics().size());
assertThat(metrics).extracting("key").contains("custom");
}
use of org.sonar.api.measures.Metrics 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;
}
use of org.sonar.api.measures.Metrics 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);
}
}
use of org.sonar.api.measures.Metrics in project sonarqube by SonarSource.
the class RegisterMetricsTest method fail_if_plugin_duplicates_core_metric.
@Test(expected = IllegalStateException.class)
public void fail_if_plugin_duplicates_core_metric() {
Metrics plugin = new TestMetrics(new Metric.Builder("ncloc", "In plugin", Metric.ValueType.FLOAT).create());
new RegisterMetrics(dbClient, new Metrics[] { plugin }).start();
}
use of org.sonar.api.measures.Metrics in project sonarqube by SonarSource.
the class RegisterMetricsTest method fail_if_duplicated_plugin_metrics.
@Test(expected = IllegalStateException.class)
public void fail_if_duplicated_plugin_metrics() {
Metrics plugin1 = new TestMetrics(new Metric.Builder("m1", "In first plugin", Metric.ValueType.FLOAT).create());
Metrics plugin2 = new TestMetrics(new Metric.Builder("m1", "In second plugin", Metric.ValueType.FLOAT).create());
new RegisterMetrics(dbClient, new Metrics[] { plugin1, plugin2 }).start();
}
Aggregations