private static String[] validateOutputMetricKeys(String[] outputMetrics) { requireNonNull(outputMetrics, "Output metrics cannot be null"); checkArgument(outputMetrics.length > 0, "At least one output metric must be defined"); List<String> outputMetricKeys = asList(outputMetrics); CoreMetrics.getMetrics().stream() .map(Metric::getKey) .forEach(metricKey -> checkArgument(!outputMetricKeys.contains(metricKey), "Core metrics are not allowed")); checkNotNull(outputMetrics); return outputMetrics; }
@Override public List<Metric> provide() { List<Metric> metrics = Lists.newArrayList(CoreMetrics.getMetrics()); for (Metrics factory : factories) { metrics.addAll(factory.getMetrics()); } return metrics; } }
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); } }
public void start() { register(concat(CoreMetrics.getMetrics(), getPluginMetrics())); }
public ScannerMediumTester registerCoreMetrics() { for (Metric<?> m : CoreMetrics.getMetrics()) { registerMetric(m); } return this; }
@Test public void read_metrics_from_class_reflection() { List<Metric> metrics = getMetrics(); assertThat(metrics.size()).isGreaterThan(100); assertThat(metrics).contains(NCLOC, DIRECTORIES); }
@Test public void insert_core_metrics() { RegisterMetrics register = new RegisterMetrics(dbClient); register.start(); assertThat(dbTester.countRowsOfTable("metrics")).isEqualTo(CoreMetrics.getMetrics().size()); }
@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"); } }
@Test public void should_provide_at_least_core_metrics() { MetricProvider provider = new MetricProvider(); List<Metric> metrics = provider.provide(); assertThat(metrics).hasSize(CoreMetrics.getMetrics().size()); assertThat(metrics).extracting("key").contains("ncloc"); }
@Test public void all_core_metrics_are_in_core_bundle() { List<Metric> coreMetrics = CoreMetrics.getMetrics(); List<String> incorrectMetricDefinitions = new ArrayList<>(); for (Metric metric : coreMetrics) { if (metric.isHidden()) { continue; } String metricNamePropertyKey = "metric." + metric.getKey() + ".name"; String l10nMetricName = underTest.message(Locale.ENGLISH, metricNamePropertyKey, null); if (l10nMetricName == null) { incorrectMetricDefinitions.add(metricNamePropertyKey + "=" + metric.getName()); } else if (!l10nMetricName.equals(metric.getName())) { incorrectMetricDefinitions.add(metricNamePropertyKey + " is not consistent in core bundle and CoreMetrics"); } String metricDescriptionPropertyKey = "metric." + metric.getKey() + ".description"; String l10nMetricDescription = underTest.message(Locale.ENGLISH, metricDescriptionPropertyKey, null); if (l10nMetricDescription == null) { incorrectMetricDefinitions.add(metricDescriptionPropertyKey + "=" + metric.getDescription()); } else if (!l10nMetricDescription.equals(metric.getDescription())) { incorrectMetricDefinitions.add(metricDescriptionPropertyKey + " is not consistent in core bundle and CoreMetrics"); } } assertThat(incorrectMetricDefinitions).as("Metric definitions to fix in core bundle", incorrectMetricDefinitions.size()).isEmpty(); }
@Override public List<Metric> provide() { List<Metric> metrics = Lists.newArrayList(CoreMetrics.getMetrics()); for (Metrics factory : factories) { metrics.addAll(factory.getMetrics()); } return metrics; } }
@Override public List<Metric> provide() { List<Metric> metrics = Lists.newArrayList(CoreMetrics.getMetrics()); for (Metrics factory : factories) { metrics.addAll(factory.getMetrics()); } return metrics; } }
@Override public List<Metric> provide() { List<Metric> metrics = Lists.newArrayList(CoreMetrics.getMetrics()); for (Metrics factory : factories) { metrics.addAll(factory.getMetrics()); } return metrics; } }
public BatchMediumTesterBuilder registerCoreMetrics() { for (Metric<?> m : CoreMetrics.getMetrics()) { registerMetric(m); } return this; }
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); } }
private static String[] validateOutputMetricKeys(String[] outputMetrics) { requireNonNull(outputMetrics, "Output metrics cannot be null"); checkArgument(outputMetrics.length > 0, "At least one output metric must be defined"); List<String> outputMetricKeys = asList(outputMetrics); CoreMetrics.getMetrics().stream() .map(Metric::getKey) .forEach(metricKey -> checkArgument(!outputMetricKeys.contains(metricKey), "Core metrics are not allowed")); checkNotNull(outputMetrics); return outputMetrics; }
public void start() { register(concat(CoreMetrics.getMetrics(), getPluginMetrics())); }