]> source.dussan.org Git - sonarqube.git/commitdiff
fix coverage on ReportSqaleMeasuresVisitor and ReportComputationSteps
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Wed, 16 Sep 2015 16:08:29 +0000 (18:08 +0200)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Wed, 16 Sep 2015 16:21:40 +0000 (18:21 +0200)
server/sonar-server/src/test/java/org/sonar/server/computation/sqale/ReportSqaleMeasuresVisitorTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/ReportComputationStepsTest.java

index cdda7a7075cfc7ff2e0a072d773f06d5df3f69ca..63287ea15fecb41a7986198152aed83ecc6ebf84 100644 (file)
@@ -47,6 +47,7 @@ import static org.sonar.server.computation.component.Component.Type.DIRECTORY;
 import static org.sonar.server.computation.component.Component.Type.FILE;
 import static org.sonar.server.computation.component.Component.Type.MODULE;
 import static org.sonar.server.computation.component.Component.Type.PROJECT;
+import static org.sonar.server.computation.component.ReportComponent.builder;
 import static org.sonar.server.computation.measure.Measure.newMeasureBuilder;
 import static org.sonar.server.computation.measure.MeasureRepoEntry.entryOf;
 import static org.sonar.server.computation.measure.MeasureRepoEntry.toEntries;
@@ -94,7 +95,7 @@ public class ReportSqaleMeasuresVisitorTest {
 
   @Test
   public void measures_created_for_project_are_all_zero_when_they_have_no_FILE_child() {
-    ReportComponent root = ReportComponent.builder(PROJECT, 1).build();
+    ReportComponent root = builder(PROJECT, 1).build();
     treeRootHolder.setRoot(root);
 
     underTest.visit(root);
@@ -141,29 +142,30 @@ public class ReportSqaleMeasuresVisitorTest {
 
   @Test
   public void verify_aggregation_of_developmentCost_and_value_of_measures_computed_from_that() {
-    ReportComponent root = ReportComponent.builder(PROJECT, 1)
+    ReportComponent root = builder(PROJECT, 1)
       .addChildren(
-        ReportComponent.builder(MODULE, 11)
+        builder(MODULE, 11)
           .addChildren(
-            ReportComponent.builder(DIRECTORY, 111)
+            builder(DIRECTORY, 111)
               .addChildren(
                 createFileComponent(LANGUAGE_KEY_1, 1111),
-                createFileComponent(LANGUAGE_KEY_2, 1112))
+                createFileComponent(LANGUAGE_KEY_2, 1112),
+                builder(FILE, 1113).setFileAttributes(new FileAttributes(true, LANGUAGE_KEY_1)).build())
               .build(),
-            ReportComponent.builder(DIRECTORY, 112)
+            builder(DIRECTORY, 112)
               .addChildren(
                 createFileComponent(LANGUAGE_KEY_2, 1121))
               .build())
           .build(),
-        ReportComponent.builder(MODULE, 12)
+        builder(MODULE, 12)
           .addChildren(
-            ReportComponent.builder(DIRECTORY, 121)
+            builder(DIRECTORY, 121)
               .addChildren(
                 createFileComponent(LANGUAGE_KEY_1, 1211))
               .build(),
-            ReportComponent.builder(DIRECTORY, 122).build())
+            builder(DIRECTORY, 122).build())
           .build(),
-        ReportComponent.builder(MODULE, 13).build())
+        builder(MODULE, 13).build())
       .build();
 
     treeRootHolder.setRoot(root);
@@ -205,6 +207,7 @@ public class ReportSqaleMeasuresVisitorTest {
     // verify measures on files
     verifyFileMeasures(1111, measureValue1111, debt1111, DEV_COST_LANGUAGE_1, C);
     verifyFileMeasures(1112, measureValue1112, debt1112, DEV_COST_LANGUAGE_2, A);
+    verifyNoAddedRawMeasure(1113);
     verifyFileMeasures(1121, measureValue1121, debt1121, DEV_COST_LANGUAGE_2, A);
     verifyFileMeasures(1211, measureValue1211, debt1211, DEV_COST_LANGUAGE_1, C);
     // directory has no children => no file => 0 everywhere and A rating
@@ -229,7 +232,7 @@ public class ReportSqaleMeasuresVisitorTest {
   }
 
   private ReportComponent createFileComponent(String languageKey1, int fileRef) {
-    return ReportComponent.builder(FILE, fileRef).setFileAttributes(new FileAttributes(false, languageKey1)).build();
+    return builder(FILE, fileRef).setFileAttributes(new FileAttributes(false, languageKey1)).build();
   }
 
   private void addRawMeasure(String metricKey, int componentRef, long value) {
@@ -248,4 +251,8 @@ public class ReportSqaleMeasuresVisitorTest {
       entryOf(SQALE_RATING_KEY, createSqaleRatingMeasure(expectedRating)));
   }
 
+  private void verifyNoAddedRawMeasure(int componentRef) {
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(componentRef))).isEmpty();
+  }
+
 }
index 17280f0817de8daef9bed56bc34b3a1aa824f339..e8e5f7057f5bfaf37403d59ff3993bbab3415057 100644 (file)
@@ -28,6 +28,8 @@ import org.sonar.core.platform.ContainerPopulator;
 import org.sonar.server.computation.container.ComputeEngineContainer;
 import org.sonar.server.computation.container.ComputeEngineContainerImpl;
 
+import static org.mockito.Mockito.mock;
+
 public class ReportComputationStepsTest {
   @Rule
   public ExpectedException expectedException = ExpectedException.none();
@@ -46,4 +48,25 @@ public class ReportComputationStepsTest {
 
     Lists.newArrayList(new ReportComputationSteps(computeEngineContainer).instances());
   }
+
+  @Test
+  public void instances_throws_ISE_if_container_does_not_have_second_step() throws Exception {
+    expectedException.expect(IllegalStateException.class);
+    expectedException.expectMessage("Component not found: class org.sonar.server.computation.step.BuildComponentTreeStep");
+
+    final ReportExtractionStep reportExtractionStep = mock(ReportExtractionStep.class);
+    ComponentContainer componentContainer = new ComponentContainer() {
+      {
+        addSingleton(reportExtractionStep);
+      }
+    };
+    ComputeEngineContainerImpl computeEngineContainer = new ComputeEngineContainerImpl(componentContainer, new ContainerPopulator<ComputeEngineContainer>() {
+      @Override
+      public void populateContainer(ComputeEngineContainer container) {
+        // do nothing
+      }
+    });
+
+    Lists.newArrayList(new ReportComputationSteps(computeEngineContainer).instances());
+  }
 }