From 682d97d4d7b8aee7a323285661074f867eb93341 Mon Sep 17 00:00:00 2001 From: Fabrice Bellingard Date: Tue, 31 Jan 2012 16:06:20 +0100 Subject: [PATCH] SONAR-3228 Some metrics are not persisted if value 0 => whereas they can be used in Sonar Web UI --- .../sensors/WeightedViolationsDecorator.java | 9 +-------- .../WeightedViolationsDecoratorTest.java | 17 +++++++++------- .../plugins/squid/bridges/DesignBridge.java | 20 +++++++++---------- 3 files changed, 21 insertions(+), 25 deletions(-) diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/WeightedViolationsDecorator.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/WeightedViolationsDecorator.java index d5abe69b322..d29503f9ef0 100644 --- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/WeightedViolationsDecorator.java +++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/WeightedViolationsDecorator.java @@ -116,14 +116,7 @@ public class WeightedViolationsDecorator implements Decorator { } Measure debtMeasure = new Measure(CoreMetrics.WEIGHTED_VIOLATIONS, debt, KeyValueFormat.format(distribution)); - saveMeasure(context, debtMeasure); - } - - - private void saveMeasure(DecoratorContext context, Measure debtMeasure) { - if (debtMeasure.getValue() > 0.0) { - context.saveMeasure(debtMeasure); - } + context.saveMeasure(debtMeasure); } } diff --git a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/WeightedViolationsDecoratorTest.java b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/WeightedViolationsDecoratorTest.java index 4b65c02e74e..0628860fe0a 100644 --- a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/WeightedViolationsDecoratorTest.java +++ b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/WeightedViolationsDecoratorTest.java @@ -19,6 +19,13 @@ */ package org.sonar.plugins.core.sensors; +import static org.junit.Assert.assertThat; +import static org.mockito.Matchers.anyObject; +import static org.mockito.Matchers.argThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + import org.hamcrest.core.Is; import org.junit.Test; import org.sonar.api.CoreProperties; @@ -29,11 +36,6 @@ import org.sonar.api.measures.Measure; import org.sonar.api.rules.RulePriority; import org.sonar.api.test.IsMeasure; -import java.util.Map; - -import static org.junit.Assert.assertThat; -import static org.mockito.Mockito.*; - public class WeightedViolationsDecoratorTest { @Test @@ -53,8 +55,9 @@ public class WeightedViolationsDecoratorTest { verify(context).saveMeasure(argThat(new IsMeasure(CoreMetrics.WEIGHTED_VIOLATIONS, "INFO=50;CRITICAL=80;BLOCKER=100"))); } + // SONAR-3092 @Test - public void doNotSaveZero() { + public void doSaveZero() { Settings settings = new Settings(); settings.setProperty(CoreProperties.CORE_RULE_WEIGHTS_PROPERTY, "BLOCKER=10;CRITICAL=5;MAJOR=2;MINOR=1;INFO=0"); DecoratorContext context = mock(DecoratorContext.class); @@ -63,7 +66,7 @@ public class WeightedViolationsDecoratorTest { decorator.start(); decorator.decorate(context); - verify(context, never()).saveMeasure((Measure) anyObject()); + verify(context).saveMeasure((Measure) anyObject()); } @Test diff --git a/plugins/sonar-squid-java-plugin/src/main/java/org/sonar/plugins/squid/bridges/DesignBridge.java b/plugins/sonar-squid-java-plugin/src/main/java/org/sonar/plugins/squid/bridges/DesignBridge.java index fc561421c0a..9e1175faee8 100644 --- a/plugins/sonar-squid-java-plugin/src/main/java/org/sonar/plugins/squid/bridges/DesignBridge.java +++ b/plugins/sonar-squid-java-plugin/src/main/java/org/sonar/plugins/squid/bridges/DesignBridge.java @@ -70,10 +70,10 @@ public class DesignBridge extends Bridge { LOG.debug("{} feedback edges", feedbackEdges.size()); int tangles = cyclesAndFESSolver.getWeightOfFeedbackEdgeSet(); - savePositiveMeasure(sonarProject, CoreMetrics.PACKAGE_CYCLES, (double) cyclesAndFESSolver.getCycles().size(), true); - savePositiveMeasure(sonarProject, CoreMetrics.PACKAGE_FEEDBACK_EDGES, (double) feedbackEdges.size(), true); - savePositiveMeasure(sonarProject, CoreMetrics.PACKAGE_TANGLES, (double) tangles, true); - savePositiveMeasure(sonarProject, CoreMetrics.PACKAGE_EDGES_WEIGHT, getEdgesWeight(squidPackages), false); + savePositiveMeasure(sonarProject, CoreMetrics.PACKAGE_CYCLES, (double) cyclesAndFESSolver.getCycles().size()); + savePositiveMeasure(sonarProject, CoreMetrics.PACKAGE_FEEDBACK_EDGES, (double) feedbackEdges.size()); + savePositiveMeasure(sonarProject, CoreMetrics.PACKAGE_TANGLES, (double) tangles); + savePositiveMeasure(sonarProject, CoreMetrics.PACKAGE_EDGES_WEIGHT, getEdgesWeight(squidPackages)); String dsmJson = serializeDsm(squid, squidPackages, feedbackEdges); Measure dsmMeasure = new Measure(CoreMetrics.DEPENDENCY_MATRIX, dsmJson).setPersistenceMode(PersistenceMode.DATABASE); @@ -83,8 +83,8 @@ public class DesignBridge extends Bridge { } } - private void savePositiveMeasure(Resource sonarResource, Metric metric, double value, boolean strict) { - if ((strict && value > 0.0) || ( !strict && value >= 0.0)) { + private void savePositiveMeasure(Resource sonarResource, Metric metric, double value) { + if (value >= 0.0) { context.saveMeasure(sonarResource, metric, value); } } @@ -103,10 +103,10 @@ public class DesignBridge extends Bridge { Set feedbackEdges = solver.getEdges(); int tangles = solver.getWeightOfFeedbackEdgeSet(); - savePositiveMeasure(sonarPackage, CoreMetrics.FILE_CYCLES, (double) cycles.size(), false); - savePositiveMeasure(sonarPackage, CoreMetrics.FILE_FEEDBACK_EDGES, (double) feedbackEdges.size(), false); - savePositiveMeasure(sonarPackage, CoreMetrics.FILE_TANGLES, (double) tangles, false); - savePositiveMeasure(sonarPackage, CoreMetrics.FILE_EDGES_WEIGHT, getEdgesWeight(squidFiles), false); + savePositiveMeasure(sonarPackage, CoreMetrics.FILE_CYCLES, (double) cycles.size()); + savePositiveMeasure(sonarPackage, CoreMetrics.FILE_FEEDBACK_EDGES, (double) feedbackEdges.size()); + savePositiveMeasure(sonarPackage, CoreMetrics.FILE_TANGLES, (double) tangles); + savePositiveMeasure(sonarPackage, CoreMetrics.FILE_EDGES_WEIGHT, getEdgesWeight(squidFiles)); String dsmJson = serializeDsm(squid, squidFiles, feedbackEdges); context.saveMeasure(sonarPackage, new Measure(CoreMetrics.DEPENDENCY_MATRIX, dsmJson)); -- 2.39.5