aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabrice Bellingard <fabrice.bellingard@sonarsource.com>2012-09-20 11:27:33 +0200
committerFabrice Bellingard <fabrice.bellingard@sonarsource.com>2012-09-20 11:27:33 +0200
commitc77bc1df270111bd96c300f4a7a856b71045737d (patch)
tree34ed6f153cf530dcb8df47e6716e082ca4cdb675
parent1500f11315f079c3b2111b201519365b91583a43 (diff)
downloadsonarqube-c77bc1df270111bd96c300f4a7a856b71045737d.tar.gz
sonarqube-c77bc1df270111bd96c300f4a7a856b71045737d.zip
SONAR-3746 Measures relating to reviews are not computed on Unit Test
-rw-r--r--plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ReviewsMeasuresDecorator.java10
-rw-r--r--plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/ReviewsMeasuresDecoratorTest.java31
2 files changed, 27 insertions, 14 deletions
diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ReviewsMeasuresDecorator.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ReviewsMeasuresDecorator.java
index 7f7256ed17d..ec97f5772e3 100644
--- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ReviewsMeasuresDecorator.java
+++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ReviewsMeasuresDecorator.java
@@ -38,7 +38,11 @@ import org.sonar.core.review.ReviewDao;
import org.sonar.core.review.ReviewDto;
import org.sonar.core.review.ReviewPredicates;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
/**
* Decorator that creates measures related to reviews.
@@ -68,7 +72,7 @@ public class ReviewsMeasuresDecorator implements Decorator {
@SuppressWarnings({"rawtypes"})
public void decorate(Resource resource, DecoratorContext context) {
- if (!ResourceUtils.isPersistable(resource) || ResourceUtils.isUnitTestClass(resource) || resource.getId()==null) {
+ if (!ResourceUtils.isPersistable(resource) || resource.getId() == null) {
return;
}
@@ -119,7 +123,7 @@ public class ReviewsMeasuresDecorator implements Decorator {
}
protected int countNewUnreviewedViolationsForSnapshot(PastSnapshot pastSnapshot, List<Violation> violations,
- Map<Integer, ReviewDto> openReviewsByViolationPermanentIds) {
+ Map<Integer, ReviewDto> openReviewsByViolationPermanentIds) {
Date targetDate = pastSnapshot.getTargetDate();
int newViolationCount = 0;
int newReviewedViolationCount = 0;
diff --git a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/ReviewsMeasuresDecoratorTest.java b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/ReviewsMeasuresDecoratorTest.java
index f1446b19d18..ada1905f26f 100644
--- a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/ReviewsMeasuresDecoratorTest.java
+++ b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/ReviewsMeasuresDecoratorTest.java
@@ -31,7 +31,11 @@ import org.sonar.api.measures.CoreMetrics;
import org.sonar.api.measures.Measure;
import org.sonar.api.measures.Metric;
import org.sonar.api.measures.RuleMeasure;
-import org.sonar.api.resources.*;
+import org.sonar.api.resources.File;
+import org.sonar.api.resources.Method;
+import org.sonar.api.resources.Project;
+import org.sonar.api.resources.Qualifiers;
+import org.sonar.api.resources.Resource;
import org.sonar.api.rules.Rule;
import org.sonar.api.rules.Violation;
import org.sonar.batch.components.PastSnapshot;
@@ -48,7 +52,11 @@ import static org.junit.Assert.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyDouble;
import static org.mockito.Matchers.argThat;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.atLeast;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
public class ReviewsMeasuresDecoratorTest {
@@ -93,24 +101,25 @@ public class ReviewsMeasuresDecoratorTest {
}
@Test
- public void shouldDecoratePersistableResource() throws Exception {
+ public void shouldNotDecoratePersistableResource() throws Exception {
ReviewsMeasuresDecorator decorator = new ReviewsMeasuresDecorator(null, null);
DecoratorContext context = mock(DecoratorContext.class);
- Resource<?> resource = mock(Resource.class);
- when(resource.getScope()).thenReturn(Scopes.BLOCK_UNIT);
+ Resource<?> resource = Method.createMethod("foo", null).setId(1);
decorator.decorate(resource, context);
verify(context, never()).saveMeasure(any(Metric.class), anyDouble());
}
+ /**
+ * SONAR-3746
+ */
@Test
- public void shouldNotDecorateUnitTest() throws Exception {
- ReviewsMeasuresDecorator decorator = new ReviewsMeasuresDecorator(null, null);
+ public void shouldDecorateUnitTest() throws Exception {
DecoratorContext context = mock(DecoratorContext.class);
- Resource<?> resource = mock(Resource.class);
- when(resource.getScope()).thenReturn(Scopes.FILE);
- when(resource.getQualifier()).thenReturn(Qualifiers.UNIT_TEST_FILE);
+ File resource = new File("foo");
+ resource.setQualifier(Qualifiers.UNIT_TEST_FILE);
+ resource.setId(1);
decorator.decorate(resource, context);
- verify(context, never()).saveMeasure(any(Metric.class), anyDouble());
+ verify(context, atLeast(1)).saveMeasure(any(Metric.class), anyDouble());
}
@Test