]> source.dussan.org Git - sonarqube.git/commitdiff
Re-introduce usage of toEntries() and entryOf()
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Tue, 21 Jul 2015 13:01:32 +0000 (15:01 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Tue, 21 Jul 2015 15:31:54 +0000 (17:31 +0200)
server/sonar-server/src/test/java/org/sonar/server/computation/formula/AverageFormulaExecutionTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/formula/DistributionFormulaExecutionTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/formula/FormulaExecutorComponentVisitorTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/formula/SumFormulaExecutionTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/CoverageMeasuresStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/NewCoverageMeasuresStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/SqaleMeasuresStepTest.java

index e2b79c8dd04dbd43887039f74fc9fda4a16d4f9f..a7cb098dcb8a67483e591768fe9f13189b234934 100644 (file)
@@ -42,6 +42,8 @@ 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.DumbComponent.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;
 
 public class AverageFormulaExecutionTest {
 
@@ -104,14 +106,14 @@ public class AverageFormulaExecutionTest {
 
     underTest.visit(project);
 
-    assertThat(measureRepository.getAddedRawMeasure(1, FUNCTION_COMPLEXITY_KEY).get().getDoubleValue()).isEqualTo(3d);
-    assertThat(measureRepository.getAddedRawMeasure(11, FUNCTION_COMPLEXITY_KEY).get().getDoubleValue()).isEqualTo(2d);
-    assertThat(measureRepository.getAddedRawMeasure(111, FUNCTION_COMPLEXITY_KEY).get().getDoubleValue()).isEqualTo(2d);
-    assertThat(measureRepository.getAddedRawMeasure(1111, FUNCTION_COMPLEXITY_KEY).get().getDoubleValue()).isEqualTo(2.5d);
-    assertThat(measureRepository.getAddedRawMeasure(1112, FUNCTION_COMPLEXITY_KEY).get().getDoubleValue()).isEqualTo(1d);
-    assertThat(measureRepository.getAddedRawMeasure(12, FUNCTION_COMPLEXITY_KEY).get().getDoubleValue()).isEqualTo(4.5d);
-    assertThat(measureRepository.getAddedRawMeasure(121, FUNCTION_COMPLEXITY_KEY).get().getDoubleValue()).isEqualTo(4.5d);
-    assertThat(measureRepository.getAddedRawMeasure(1211, FUNCTION_COMPLEXITY_KEY).get().getDoubleValue()).isEqualTo(4.5d);
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1))).containsOnly(entryOf(FUNCTION_COMPLEXITY_KEY, newMeasureBuilder().create(3d)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(11))).containsOnly(entryOf(FUNCTION_COMPLEXITY_KEY, newMeasureBuilder().create(2d)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(111))).containsOnly(entryOf(FUNCTION_COMPLEXITY_KEY, newMeasureBuilder().create(2d)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1111))).containsOnly(entryOf(FUNCTION_COMPLEXITY_KEY, newMeasureBuilder().create(2.5d)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1112))).containsOnly(entryOf(FUNCTION_COMPLEXITY_KEY, newMeasureBuilder().create(1d)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(12))).containsOnly(entryOf(FUNCTION_COMPLEXITY_KEY, newMeasureBuilder().create(4.5d)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(121))).containsOnly(entryOf(FUNCTION_COMPLEXITY_KEY, newMeasureBuilder().create(4.5d)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1211))).containsOnly(entryOf(FUNCTION_COMPLEXITY_KEY, newMeasureBuilder().create(4.5d)));
   }
 
   @Test
index 181ca32d4d302a110d329e2721cc52a8b841f178..cfcf9fb9740a4dc0ff1f129ae752e74131701855 100644 (file)
@@ -39,6 +39,8 @@ 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.DumbComponent.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;
 
 public class DistributionFormulaExecutionTest {
 
@@ -86,13 +88,13 @@ public class DistributionFormulaExecutionTest {
 
     underTest.visit(project);
 
-    assertThat(measureRepository.getAddedRawMeasure(1, FUNCTION_COMPLEXITY_DISTRIBUTION_KEY).get().getStringValue()).isEqualTo("0.5=4;3.5=10;6.5=12");
-    assertThat(measureRepository.getAddedRawMeasure(11, FUNCTION_COMPLEXITY_DISTRIBUTION_KEY).get().getStringValue()).isEqualTo("0.5=3;3.5=7;6.5=10");
-    assertThat(measureRepository.getAddedRawMeasure(111, FUNCTION_COMPLEXITY_DISTRIBUTION_KEY).get().getStringValue()).isEqualTo("0.5=3;3.5=7;6.5=10");
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1))).containsOnly(entryOf(FUNCTION_COMPLEXITY_DISTRIBUTION_KEY, newMeasureBuilder().create("0.5=4;3.5=10;6.5=12")));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(11))).containsOnly(entryOf(FUNCTION_COMPLEXITY_DISTRIBUTION_KEY, newMeasureBuilder().create("0.5=3;3.5=7;6.5=10")));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(111))).containsOnly(entryOf(FUNCTION_COMPLEXITY_DISTRIBUTION_KEY, newMeasureBuilder().create("0.5=3;3.5=7;6.5=10")));
     assertThat(measureRepository.getAddedRawMeasures(1111)).isEmpty();
     assertThat(measureRepository.getAddedRawMeasures(1112)).isEmpty();
-    assertThat(measureRepository.getAddedRawMeasure(12, FUNCTION_COMPLEXITY_DISTRIBUTION_KEY).get().getStringValue()).isEqualTo("0.5=1;3.5=3;6.5=2");
-    assertThat(measureRepository.getAddedRawMeasure(121, FUNCTION_COMPLEXITY_DISTRIBUTION_KEY).get().getStringValue()).isEqualTo("0.5=1;3.5=3;6.5=2");
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(12))).containsOnly(entryOf(FUNCTION_COMPLEXITY_DISTRIBUTION_KEY, newMeasureBuilder().create("0.5=1;3.5=3;6.5=2")));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(121))).containsOnly(entryOf(FUNCTION_COMPLEXITY_DISTRIBUTION_KEY, newMeasureBuilder().create("0.5=1;3.5=3;6.5=2")));
     assertThat(measureRepository.getAddedRawMeasures(1211)).isEmpty();
   }
 
index 55d1a9aecdeab292146d7d5d21306aa833b20545..37a70b4cdd9e1ec139a96600cb726fabb7abc882 100644 (file)
@@ -48,6 +48,8 @@ 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.DumbComponent.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;
 
 public class FormulaExecutorComponentVisitorTest {
   public static final DumbComponent BALANCED_COMPONENT_TREE = DumbComponent.builder(PROJECT, 1)
@@ -96,16 +98,17 @@ public class FormulaExecutorComponentVisitorTest {
 
     underTest.visit(BALANCED_COMPONENT_TREE);
 
-    assertThat(measureRepository.getAddedRawMeasure(1, NCLOC_KEY).get().getIntValue()).isEqualTo(20);
-    assertThat(measureRepository.getAddedRawMeasure(11, NCLOC_KEY).get().getIntValue()).isEqualTo(18);
-    assertThat(measureRepository.getAddedRawMeasure(111, NCLOC_KEY).get().getIntValue()).isEqualTo(18);
-    assertThat(measureRepository.getAddedRawMeasure(1111, NCLOC_KEY).get().getIntValue()).isEqualTo(10);
-    assertThat(measureRepository.getAddedRawMeasure(1112, NCLOC_KEY).get().getIntValue()).isEqualTo(8);
-    assertThat(measureRepository.getAddedRawMeasure(12, NCLOC_KEY).get().getIntValue()).isEqualTo(2);
-    assertThat(measureRepository.getAddedRawMeasure(121, NCLOC_KEY).get().getIntValue()).isEqualTo(2);
-    assertThat(measureRepository.getAddedRawMeasure(1211, NCLOC_KEY).get().getIntValue()).isEqualTo(2);
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1))).containsOnly(entryOf(NCLOC_KEY, newMeasureBuilder().create(20)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(11))).containsOnly(entryOf(NCLOC_KEY, newMeasureBuilder().create(18)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(111))).containsOnly(entryOf(NCLOC_KEY, newMeasureBuilder().create(18)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1111))).containsOnly(entryOf(NCLOC_KEY, newMeasureBuilder().create(10)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1112))).containsOnly(entryOf(NCLOC_KEY, newMeasureBuilder().create(8)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(12))).containsOnly(entryOf(NCLOC_KEY, newMeasureBuilder().create(2)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(121))).containsOnly(entryOf(NCLOC_KEY, newMeasureBuilder().create(2)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1211))).containsOnly(entryOf(NCLOC_KEY, newMeasureBuilder().create(2)));
   }
 
+
   @Test
   public void verify_multi_metric_formula_support_and_aggregation() throws Exception {
     treeRootHolder.setRoot(BALANCED_COMPONENT_TREE);
@@ -119,22 +122,30 @@ public class FormulaExecutorComponentVisitorTest {
       .buildFor(ImmutableList.<Formula>of(new FakeMultiMetricFormula()));
     underTest.visit(BALANCED_COMPONENT_TREE);
 
-    assertThat(measureRepository.getAddedRawMeasure(1, NEW_LINES_TO_COVER_KEY).get().getIntValue()).isEqualTo(30);
-    assertThat(measureRepository.getAddedRawMeasure(1, NEW_IT_COVERAGE_KEY).get().getIntValue()).isEqualTo(120);
-    assertThat(measureRepository.getAddedRawMeasure(11, NEW_LINES_TO_COVER_KEY).get().getIntValue()).isEqualTo(28);
-    assertThat(measureRepository.getAddedRawMeasure(11, NEW_IT_COVERAGE_KEY).get().getIntValue()).isEqualTo(118);
-    assertThat(measureRepository.getAddedRawMeasure(111, NEW_LINES_TO_COVER_KEY).get().getIntValue()).isEqualTo(28);
-    assertThat(measureRepository.getAddedRawMeasure(111, NEW_IT_COVERAGE_KEY).get().getIntValue()).isEqualTo(118);
-    assertThat(measureRepository.getAddedRawMeasure(1111, NEW_LINES_TO_COVER_KEY).get().getIntValue()).isEqualTo(20);
-    assertThat(measureRepository.getAddedRawMeasure(1111, NEW_IT_COVERAGE_KEY).get().getIntValue()).isEqualTo(110);
-    assertThat(measureRepository.getAddedRawMeasure(1112, NEW_LINES_TO_COVER_KEY).get().getIntValue()).isEqualTo(18);
-    assertThat(measureRepository.getAddedRawMeasure(1112, NEW_IT_COVERAGE_KEY).get().getIntValue()).isEqualTo(108);
-    assertThat(measureRepository.getAddedRawMeasure(12, NEW_LINES_TO_COVER_KEY).get().getIntValue()).isEqualTo(12);
-    assertThat(measureRepository.getAddedRawMeasure(12, NEW_IT_COVERAGE_KEY).get().getIntValue()).isEqualTo(102);
-    assertThat(measureRepository.getAddedRawMeasure(121, NEW_LINES_TO_COVER_KEY).get().getIntValue()).isEqualTo(12);
-    assertThat(measureRepository.getAddedRawMeasure(121, NEW_IT_COVERAGE_KEY).get().getIntValue()).isEqualTo(102);
-    assertThat(measureRepository.getAddedRawMeasure(1211, NEW_LINES_TO_COVER_KEY).get().getIntValue()).isEqualTo(12);
-    assertThat(measureRepository.getAddedRawMeasure(1211, NEW_IT_COVERAGE_KEY).get().getIntValue()).isEqualTo(102);
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1))).containsOnly(
+      entryOf(NEW_LINES_TO_COVER_KEY, newMeasureBuilder().create(30)),
+      entryOf(NEW_IT_COVERAGE_KEY, newMeasureBuilder().create(120)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(11))).containsOnly(
+      entryOf(NEW_LINES_TO_COVER_KEY, newMeasureBuilder().create(28)),
+      entryOf(NEW_IT_COVERAGE_KEY, newMeasureBuilder().create(118)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(111))).containsOnly(
+      entryOf(NEW_LINES_TO_COVER_KEY, newMeasureBuilder().create(28)),
+      entryOf(NEW_IT_COVERAGE_KEY, newMeasureBuilder().create(118)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1111))).containsOnly(
+      entryOf(NEW_LINES_TO_COVER_KEY, newMeasureBuilder().create(20)),
+      entryOf(NEW_IT_COVERAGE_KEY, newMeasureBuilder().create(110)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1112))).containsOnly(
+      entryOf(NEW_LINES_TO_COVER_KEY, newMeasureBuilder().create(18)),
+      entryOf(NEW_IT_COVERAGE_KEY, newMeasureBuilder().create(108)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(12))).containsOnly(
+      entryOf(NEW_LINES_TO_COVER_KEY, newMeasureBuilder().create(12)),
+      entryOf(NEW_IT_COVERAGE_KEY, newMeasureBuilder().create(102)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(121))).containsOnly(
+      entryOf(NEW_LINES_TO_COVER_KEY, newMeasureBuilder().create(12)),
+      entryOf(NEW_IT_COVERAGE_KEY, newMeasureBuilder().create(102)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1211))).containsOnly(
+      entryOf(NEW_LINES_TO_COVER_KEY, newMeasureBuilder().create(12)),
+      entryOf(NEW_IT_COVERAGE_KEY, newMeasureBuilder().create(102)));
   }
 
   @Test
@@ -147,22 +158,14 @@ public class FormulaExecutorComponentVisitorTest {
 
     underTest.visit(BALANCED_COMPONENT_TREE);
 
-    assertThat(measureRepository.getAddedRawMeasure(1, NEW_IT_COVERAGE_KEY).get().getVariations().getVariation2()).isEqualTo(20);
-    assertThat(measureRepository.getAddedRawMeasure(1, NEW_IT_COVERAGE_KEY).get().getVariations().getVariation5()).isEqualTo(40);
-    assertThat(measureRepository.getAddedRawMeasure(11, NEW_IT_COVERAGE_KEY).get().getVariations().getVariation2()).isEqualTo(18);
-    assertThat(measureRepository.getAddedRawMeasure(11, NEW_IT_COVERAGE_KEY).get().getVariations().getVariation5()).isEqualTo(36);
-    assertThat(measureRepository.getAddedRawMeasure(111, NEW_IT_COVERAGE_KEY).get().getVariations().getVariation2()).isEqualTo(18);
-    assertThat(measureRepository.getAddedRawMeasure(111, NEW_IT_COVERAGE_KEY).get().getVariations().getVariation5()).isEqualTo(36);
-    assertThat(measureRepository.getAddedRawMeasure(1111, NEW_IT_COVERAGE_KEY).get().getVariations().getVariation2()).isEqualTo(10);
-    assertThat(measureRepository.getAddedRawMeasure(1111, NEW_IT_COVERAGE_KEY).get().getVariations().getVariation5()).isEqualTo(20);
-    assertThat(measureRepository.getAddedRawMeasure(1112, NEW_IT_COVERAGE_KEY).get().getVariations().getVariation2()).isEqualTo(8);
-    assertThat(measureRepository.getAddedRawMeasure(1112, NEW_IT_COVERAGE_KEY).get().getVariations().getVariation5()).isEqualTo(16);
-    assertThat(measureRepository.getAddedRawMeasure(12, NEW_IT_COVERAGE_KEY).get().getVariations().getVariation2()).isEqualTo(2);
-    assertThat(measureRepository.getAddedRawMeasure(12, NEW_IT_COVERAGE_KEY).get().getVariations().getVariation5()).isEqualTo(4);
-    assertThat(measureRepository.getAddedRawMeasure(121, NEW_IT_COVERAGE_KEY).get().getVariations().getVariation2()).isEqualTo(2);
-    assertThat(measureRepository.getAddedRawMeasure(121, NEW_IT_COVERAGE_KEY).get().getVariations().getVariation5()).isEqualTo(4);
-    assertThat(measureRepository.getAddedRawMeasure(1211, NEW_IT_COVERAGE_KEY).get().getVariations().getVariation2()).isEqualTo(2);
-    assertThat(measureRepository.getAddedRawMeasure(1211, NEW_IT_COVERAGE_KEY).get().getVariations().getVariation5()).isEqualTo(4);
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1))).containsOnly(entryOf(NEW_IT_COVERAGE_KEY, createMeasureWithVariation(20, 40)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(11))).containsOnly(entryOf(NEW_IT_COVERAGE_KEY, createMeasureWithVariation(18, 36)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(111))).containsOnly(entryOf(NEW_IT_COVERAGE_KEY, createMeasureWithVariation(18, 36)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1111))).containsOnly(entryOf(NEW_IT_COVERAGE_KEY, createMeasureWithVariation(10, 20)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1112))).containsOnly(entryOf(NEW_IT_COVERAGE_KEY, createMeasureWithVariation(8, 16)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(12))).containsOnly(entryOf(NEW_IT_COVERAGE_KEY, createMeasureWithVariation(2, 4)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(121))).containsOnly(entryOf(NEW_IT_COVERAGE_KEY, createMeasureWithVariation(2, 4)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1211))).containsOnly(entryOf(NEW_IT_COVERAGE_KEY, createMeasureWithVariation(2, 4)));
   }
 
   private static Measure createMeasureWithVariation(double variation2Value, double variation5Value) {
@@ -270,7 +273,7 @@ public class FormulaExecutorComponentVisitorTest {
 
     @Override
     public String[] getOutputMetricKeys() {
-      return new String[] {NEW_LINES_TO_COVER_KEY, NEW_IT_COVERAGE_KEY};
+      return new String[]{NEW_LINES_TO_COVER_KEY, NEW_IT_COVERAGE_KEY };
     }
   }
 
@@ -315,7 +318,7 @@ public class FormulaExecutorComponentVisitorTest {
           newMeasureBuilder()
             .setVariations(measureVariations.get())
             .createNoValue()
-          );
+        );
       }
       return Optional.absent();
     }
index 56d2ad7aebfad80e8ac63b12b2ca8cfc421e497a..5701d65337b672c3d3a018ca33458d1e054705ec 100644 (file)
@@ -39,6 +39,8 @@ 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.DumbComponent.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;
 
 public class SumFormulaExecutionTest {
 
@@ -86,13 +88,13 @@ public class SumFormulaExecutionTest {
 
     underTest.visit(project);
 
-    assertThat(measureRepository.getAddedRawMeasure(1, LINES_KEY).get().getIntValue()).isEqualTo(20);
-    assertThat(measureRepository.getAddedRawMeasure(11, LINES_KEY).get().getIntValue()).isEqualTo(18);
-    assertThat(measureRepository.getAddedRawMeasure(111, LINES_KEY).get().getIntValue()).isEqualTo(18);
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1))).containsOnly(entryOf(LINES_KEY, newMeasureBuilder().create(20)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(11))).containsOnly(entryOf(LINES_KEY, newMeasureBuilder().create(18)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(111))).containsOnly(entryOf(LINES_KEY, newMeasureBuilder().create(18)));
     assertThat(measureRepository.getAddedRawMeasures(1111)).isEmpty();
     assertThat(measureRepository.getAddedRawMeasures(1112)).isEmpty();
-    assertThat(measureRepository.getAddedRawMeasure(12, LINES_KEY).get().getIntValue()).isEqualTo(2);
-    assertThat(measureRepository.getAddedRawMeasure(121, LINES_KEY).get().getIntValue()).isEqualTo(2);
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(12))).containsOnly(entryOf(LINES_KEY, newMeasureBuilder().create(2)));
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(121))).containsOnly(entryOf(LINES_KEY, newMeasureBuilder().create(2)));
     assertThat(measureRepository.getAddedRawMeasures(1211)).isEmpty();
   }
 
index edeedaab92079e44788b27b4fef3eac66c46531f..0be9df6affff38a2a2fc557853285063b2b1ffe2 100644 (file)
@@ -19,8 +19,6 @@
  */
 package org.sonar.server.computation.step;
 
-import com.google.common.base.Optional;
-import org.assertj.core.data.Offset;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -29,6 +27,7 @@ import org.sonar.server.computation.batch.TreeRootHolderRule;
 import org.sonar.server.computation.component.FileAttributes;
 import org.sonar.server.computation.formula.coverage.LinesAndConditionsWithUncoveredMetricKeys;
 import org.sonar.server.computation.measure.Measure;
+import org.sonar.server.computation.measure.MeasureRepoEntry;
 import org.sonar.server.computation.measure.MeasureRepositoryRule;
 import org.sonar.server.computation.measure.MeasureVariations;
 import org.sonar.server.computation.metric.MetricRepositoryRule;
@@ -36,19 +35,16 @@ import org.sonar.server.computation.period.Period;
 import org.sonar.server.computation.period.PeriodsHolderRule;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.fail;
-import static org.assertj.guava.api.Assertions.assertThat;
 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.DumbComponent.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;
 
 public class CoverageMeasuresStepTest {
-
-  private static final Offset<Double> DEFAULT_OFFSET = Offset.offset(0.1d);
-
   private static final int ROOT_REF = 1;
   private static final int MODULE_REF = 12;
   private static final int SUB_MODULE_REF = 123;
@@ -139,7 +135,7 @@ public class CoverageMeasuresStepTest {
     LinesAndConditionsWithUncoveredMetricKeys metricKeys = new LinesAndConditionsWithUncoveredMetricKeys(
       CoreMetrics.LINES_TO_COVER_KEY, CoreMetrics.CONDITIONS_TO_COVER_KEY,
       CoreMetrics.UNCOVERED_LINES_KEY, CoreMetrics.UNCOVERED_CONDITIONS_KEY
-      );
+    );
     String codeCoverageKey = CoreMetrics.COVERAGE_KEY;
     String lineCoverageKey = CoreMetrics.LINE_COVERAGE_KEY;
     String branchCoverageKey = CoreMetrics.BRANCH_COVERAGE_KEY;
@@ -152,7 +148,7 @@ public class CoverageMeasuresStepTest {
     LinesAndConditionsWithUncoveredMetricKeys metricKeys = new LinesAndConditionsWithUncoveredMetricKeys(
       CoreMetrics.IT_LINES_TO_COVER_KEY, CoreMetrics.IT_CONDITIONS_TO_COVER_KEY,
       CoreMetrics.IT_UNCOVERED_LINES_KEY, CoreMetrics.IT_UNCOVERED_CONDITIONS_KEY
-      );
+    );
     String codeCoverageKey = CoreMetrics.IT_COVERAGE_KEY;
     String lineCoverageKey = CoreMetrics.IT_LINE_COVERAGE_KEY;
     String branchCoverageKey = CoreMetrics.IT_BRANCH_COVERAGE_KEY;
@@ -165,7 +161,7 @@ public class CoverageMeasuresStepTest {
     LinesAndConditionsWithUncoveredMetricKeys metricKeys = new LinesAndConditionsWithUncoveredMetricKeys(
       CoreMetrics.OVERALL_LINES_TO_COVER_KEY, CoreMetrics.OVERALL_CONDITIONS_TO_COVER_KEY,
       CoreMetrics.OVERALL_UNCOVERED_LINES_KEY, CoreMetrics.OVERALL_UNCOVERED_CONDITIONS_KEY
-      );
+    );
     String codeCoverageKey = CoreMetrics.OVERALL_COVERAGE_KEY;
     String lineCoverageKey = CoreMetrics.OVERALL_LINE_COVERAGE_KEY;
     String branchCoverageKey = CoreMetrics.OVERALL_BRANCH_COVERAGE_KEY;
@@ -192,31 +188,28 @@ public class CoverageMeasuresStepTest {
 
     underTest.execute();
 
-    assertThat(measureRepository.getAddedRawMeasure(FILE_1_REF, codeCoverageKey).get().getDoubleValue()).isEqualTo(98.8d, DEFAULT_OFFSET);
-    assertThat(measureRepository.getAddedRawMeasure(FILE_1_REF, lineCoverageKey).get().getDoubleValue()).isEqualTo(99d, DEFAULT_OFFSET);
-    assertThat(measureRepository.getAddedRawMeasure(FILE_1_REF, branchCoverageKey).get().getDoubleValue()).isEqualTo(97d, DEFAULT_OFFSET);
-
-    assertThat(measureRepository.getAddedRawMeasure(FILE_2_REF, codeCoverageKey).get().getDoubleValue()).isEqualTo(91d, DEFAULT_OFFSET);
-    assertThat(measureRepository.getAddedRawMeasure(FILE_2_REF, lineCoverageKey).get().getDoubleValue()).isEqualTo(90d, DEFAULT_OFFSET);
-    assertThat(measureRepository.getAddedRawMeasure(FILE_2_REF, branchCoverageKey).get().getDoubleValue()).isEqualTo(96d, DEFAULT_OFFSET);
-
-    assertThat(measureRepository.getAddedRawMeasures(UNIT_TEST_FILE_REF)).isEmpty();
-
-    assertThat(measureRepository.getAddedRawMeasure(DIRECTORY_REF, codeCoverageKey).get().getDoubleValue()).isEqualTo(95.5d, DEFAULT_OFFSET);
-    assertThat(measureRepository.getAddedRawMeasure(DIRECTORY_REF, lineCoverageKey).get().getDoubleValue()).isEqualTo(95.4d, DEFAULT_OFFSET);
-    assertThat(measureRepository.getAddedRawMeasure(DIRECTORY_REF, branchCoverageKey).get().getDoubleValue()).isEqualTo(96.4d, DEFAULT_OFFSET);
-
-    assertThat(measureRepository.getAddedRawMeasure(SUB_MODULE_REF, codeCoverageKey).get().getDoubleValue()).isEqualTo(95.5d, DEFAULT_OFFSET);
-    assertThat(measureRepository.getAddedRawMeasure(SUB_MODULE_REF, lineCoverageKey).get().getDoubleValue()).isEqualTo(95.4d, DEFAULT_OFFSET);
-    assertThat(measureRepository.getAddedRawMeasure(SUB_MODULE_REF, branchCoverageKey).get().getDoubleValue()).isEqualTo(96.4d, DEFAULT_OFFSET);
-
-    assertThat(measureRepository.getAddedRawMeasure(MODULE_REF, codeCoverageKey).get().getDoubleValue()).isEqualTo(95.5d, DEFAULT_OFFSET);
-    assertThat(measureRepository.getAddedRawMeasure(MODULE_REF, lineCoverageKey).get().getDoubleValue()).isEqualTo(95.4d, DEFAULT_OFFSET);
-    assertThat(measureRepository.getAddedRawMeasure(MODULE_REF, branchCoverageKey).get().getDoubleValue()).isEqualTo(96.4d, DEFAULT_OFFSET);
-
-    assertThat(measureRepository.getAddedRawMeasure(ROOT_REF, codeCoverageKey).get().getDoubleValue()).isEqualTo(95.5d, DEFAULT_OFFSET);
-    assertThat(measureRepository.getAddedRawMeasure(ROOT_REF, lineCoverageKey).get().getDoubleValue()).isEqualTo(95.4d, DEFAULT_OFFSET);
-    assertThat(measureRepository.getAddedRawMeasure(ROOT_REF, branchCoverageKey).get().getDoubleValue()).isEqualTo(96.4d, DEFAULT_OFFSET);
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_1_REF))).containsOnly(
+      entryOf(codeCoverageKey, newMeasureBuilder().create(98.8d)),
+      entryOf(lineCoverageKey, newMeasureBuilder().create(99d)),
+      entryOf(branchCoverageKey, newMeasureBuilder().create(97d))
+    );
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_2_REF))).containsOnly(
+      entryOf(codeCoverageKey, newMeasureBuilder().create(91d)),
+      entryOf(lineCoverageKey, newMeasureBuilder().create(90d)),
+      entryOf(branchCoverageKey, newMeasureBuilder().create(96d))
+    );
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(UNIT_TEST_FILE_REF))).isEmpty();
+
+    MeasureRepoEntry[] nonFileRepoEntries = {
+      entryOf(codeCoverageKey, newMeasureBuilder().create(95.5d)),
+      entryOf(lineCoverageKey, newMeasureBuilder().create(95.4d)),
+      entryOf(branchCoverageKey, newMeasureBuilder().create(96.4d))
+    };
+
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(DIRECTORY_REF))).containsOnly(nonFileRepoEntries);
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(SUB_MODULE_REF))).containsOnly(nonFileRepoEntries);
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(MODULE_REF))).containsOnly(nonFileRepoEntries);
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(ROOT_REF))).containsOnly(nonFileRepoEntries);
   }
 
   @Test
@@ -224,7 +217,7 @@ public class CoverageMeasuresStepTest {
     LinesAndConditionsWithUncoveredMetricKeys metricKeys = new LinesAndConditionsWithUncoveredMetricKeys(
       CoreMetrics.NEW_LINES_TO_COVER_KEY, CoreMetrics.NEW_CONDITIONS_TO_COVER_KEY,
       CoreMetrics.NEW_UNCOVERED_LINES_KEY, CoreMetrics.NEW_UNCOVERED_CONDITIONS_KEY
-      );
+    );
     String codeCoverageKey = CoreMetrics.NEW_COVERAGE_KEY;
     String lineCoverageKey = CoreMetrics.NEW_LINE_COVERAGE_KEY;
     String branchCoverageKey = CoreMetrics.NEW_BRANCH_COVERAGE_KEY;
@@ -237,7 +230,7 @@ public class CoverageMeasuresStepTest {
     LinesAndConditionsWithUncoveredMetricKeys metricKeys = new LinesAndConditionsWithUncoveredMetricKeys(
       CoreMetrics.NEW_IT_LINES_TO_COVER_KEY, CoreMetrics.NEW_IT_CONDITIONS_TO_COVER_KEY,
       CoreMetrics.NEW_IT_UNCOVERED_LINES_KEY, CoreMetrics.NEW_IT_UNCOVERED_CONDITIONS_KEY
-      );
+    );
     String codeCoverageKey = CoreMetrics.NEW_IT_COVERAGE_KEY;
     String lineCoverageKey = CoreMetrics.NEW_IT_LINE_COVERAGE_KEY;
     String branchCoverageKey = CoreMetrics.NEW_IT_BRANCH_COVERAGE_KEY;
@@ -250,7 +243,7 @@ public class CoverageMeasuresStepTest {
     LinesAndConditionsWithUncoveredMetricKeys metricKeys = new LinesAndConditionsWithUncoveredMetricKeys(
       CoreMetrics.NEW_OVERALL_LINES_TO_COVER_KEY, CoreMetrics.NEW_OVERALL_CONDITIONS_TO_COVER_KEY,
       CoreMetrics.NEW_OVERALL_UNCOVERED_LINES_KEY, CoreMetrics.NEW_OVERALL_UNCOVERED_CONDITIONS_KEY
-      );
+    );
     String codeCoverageKey = CoreMetrics.NEW_OVERALL_COVERAGE_KEY;
     String lineCoverageKey = CoreMetrics.NEW_OVERALL_LINE_COVERAGE_KEY;
     String branchCoverageKey = CoreMetrics.NEW_OVERALL_BRANCH_COVERAGE_KEY;
@@ -277,53 +270,31 @@ public class CoverageMeasuresStepTest {
 
     underTest.execute();
 
-    checkMeasureVariations(FILE_1_REF, codeCoverageKey, null, 98.8, null, null, 91d);
-    checkMeasureVariations(FILE_1_REF, lineCoverageKey, null, 99d, null, null, 90d);
-    checkMeasureVariations(FILE_1_REF, branchCoverageKey, null, 97d, null, null, 96d);
-
-    checkMeasureVariations(FILE_2_REF, codeCoverageKey, null, 91d, null, null, 98.8d);
-    checkMeasureVariations(FILE_2_REF, lineCoverageKey, null, 90d, null, null, 99d);
-    checkMeasureVariations(FILE_2_REF, branchCoverageKey, null, 96d, null, null, 97d);
-
-    assertThat(measureRepository.getAddedRawMeasures(UNIT_TEST_FILE_REF)).isEmpty();
-
-    checkMeasureVariations(DIRECTORY_REF, codeCoverageKey, null, 95.5d, null, null, 95.5d);
-    checkMeasureVariations(DIRECTORY_REF, lineCoverageKey, null, 95.4d, null, null, 95.4d);
-    checkMeasureVariations(DIRECTORY_REF, branchCoverageKey, null, 96.4d, null, null, 96.4d);
-
-    checkMeasureVariations(SUB_MODULE_REF, codeCoverageKey, null, 95.5d, null, null, 95.5d);
-    checkMeasureVariations(SUB_MODULE_REF, lineCoverageKey, null, 95.4d, null, null, 95.4d);
-    checkMeasureVariations(SUB_MODULE_REF, branchCoverageKey, null, 96.4d, null, null, 96.4d);
-
-    checkMeasureVariations(MODULE_REF, codeCoverageKey, null, 95.5d, null, null, 95.5d);
-    checkMeasureVariations(MODULE_REF, lineCoverageKey, null, 95.4d, null, null, 95.4d);
-    checkMeasureVariations(MODULE_REF, branchCoverageKey, null, 96.4d, null, null, 96.4d);
-
-    checkMeasureVariations(ROOT_REF, codeCoverageKey, null, 95.5d, null, null, 95.5d);
-    checkMeasureVariations(ROOT_REF, lineCoverageKey, null, 95.4d, null, null, 95.4d);
-    checkMeasureVariations(ROOT_REF, branchCoverageKey, null, 96.4d, null, null, 96.4d);
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_1_REF))).containsOnly(
+      entryOf(codeCoverageKey, measureWithVariation(98.8d, 91d)),
+      entryOf(lineCoverageKey, measureWithVariation(99d, 90d)),
+      entryOf(branchCoverageKey, measureWithVariation(97d, 96d))
+    );
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_2_REF))).containsOnly(
+      entryOf(codeCoverageKey, measureWithVariation(91d, 98.8d)),
+      entryOf(lineCoverageKey, measureWithVariation(90d, 99d)),
+      entryOf(branchCoverageKey, measureWithVariation(96d, 97d))
+    );
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(UNIT_TEST_FILE_REF))).isEmpty();
+
+    MeasureRepoEntry[] nonFileRepoEntries = {
+      entryOf(codeCoverageKey, measureWithVariation(95.5d, 95.5d)),
+      entryOf(lineCoverageKey, measureWithVariation(95.4d, 95.4d)),
+      entryOf(branchCoverageKey, measureWithVariation(96.4d, 96.4d))
+    };
+
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(DIRECTORY_REF))).containsOnly(nonFileRepoEntries);
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(SUB_MODULE_REF))).containsOnly(nonFileRepoEntries);
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(MODULE_REF))).containsOnly(nonFileRepoEntries);
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(ROOT_REF))).containsOnly(nonFileRepoEntries);
   }
 
   private static Measure measureWithVariation(double variation2, double variation5) {
     return newMeasureBuilder().setVariations(new MeasureVariations(null, variation2, null, null, variation5)).createNoValue();
   }
-
-  private void checkMeasureVariations(int fileRef, String metricKey, Double... expectedVariations) {
-    Optional<Measure> measure = measureRepository.getAddedRawMeasure(fileRef, metricKey);
-    if (measure.isPresent()) {
-      MeasureVariations measureVariations = measure.get().getVariations();
-      for (int i = 0; i < expectedVariations.length - 1; i++) {
-        Double expectedVariation = expectedVariations[i];
-        int period = i + 1;
-        if (expectedVariation != null) {
-          assertThat(measureVariations.hasVariation(period)).isTrue();
-          assertThat(measureVariations.getVariation(period)).isEqualTo(expectedVariation, DEFAULT_OFFSET);
-        } else {
-          assertThat(measureVariations.hasVariation(period)).isFalse();
-        }
-      }
-    } else {
-      fail(String.format("No measure on metric '%s' for component '%s'", metricKey, fileRef));
-    }
-  }
 }
index 929673959a243627999b529ab285313479d3efc2..44c94f3cd7cb52e33b2f6ecb09c06581c0fcdb57 100644 (file)
@@ -19,9 +19,7 @@
  */
 package org.sonar.server.computation.step;
 
-import com.google.common.base.Optional;
 import javax.annotation.Nullable;
-import org.assertj.core.data.Offset;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -33,6 +31,7 @@ import org.sonar.server.computation.component.Component;
 import org.sonar.server.computation.component.DumbComponent;
 import org.sonar.server.computation.component.FileAttributes;
 import org.sonar.server.computation.measure.Measure;
+import org.sonar.server.computation.measure.MeasureRepoEntry;
 import org.sonar.server.computation.measure.MeasureRepositoryRule;
 import org.sonar.server.computation.measure.MeasureVariations;
 import org.sonar.server.computation.metric.MetricRepositoryRule;
@@ -40,7 +39,6 @@ import org.sonar.server.computation.period.Period;
 import org.sonar.server.computation.period.PeriodsHolderRule;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.fail;
 import static org.assertj.guava.api.Assertions.assertThat;
 import static org.sonar.api.measures.CoreMetrics.CONDITIONS_BY_LINE_KEY;
 import static org.sonar.api.measures.CoreMetrics.COVERAGE_LINE_HITS_DATA_KEY;
@@ -57,12 +55,11 @@ 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.DumbComponent.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;
 import static org.sonar.server.computation.measure.MeasureVariations.newMeasureVariationsBuilder;
 
 public class NewCoverageMeasuresStepTest {
-
-  private static final Offset<Double> DEFAULT_OFFSET = Offset.offset(0.1d);
-
   private static final DumbComponent MULTIPLE_FILES_TREE = builder(PROJECT, 1)
     .addChildren(
       builder(MODULE, 11)
@@ -178,19 +175,19 @@ public class NewCoverageMeasuresStepTest {
   public void verify_measure_of_condition_not_computed_if_there_is_none() {
     treeRootHolder.setRoot(FILE_COMPONENT);
     reportReader.putChangesets(Changesets.newBuilder()
-      .setComponentRef(FILE_COMPONENT.getRef())
-      .addChangeset(Changesets.Changeset.newBuilder().build())
-      .addChangeset(Changesets.Changeset.newBuilder()
-        .setDate(parseDate("2007-01-15").getTime())
-        .build())
-      .addChangeset(Changesets.Changeset.newBuilder()
-        .setDate(parseDate("2011-01-01").getTime())
-        .build())
-      .addChangesetIndexByLine(0)
-      .addChangesetIndexByLine(1)
-      .addChangesetIndexByLine(2)
-      .build()
-      );
+        .setComponentRef(FILE_COMPONENT.getRef())
+        .addChangeset(Changesets.Changeset.newBuilder().build())
+        .addChangeset(Changesets.Changeset.newBuilder()
+          .setDate(parseDate("2007-01-15").getTime())
+          .build())
+        .addChangeset(Changesets.Changeset.newBuilder()
+          .setDate(parseDate("2011-01-01").getTime())
+          .build())
+        .addChangesetIndexByLine(0)
+        .addChangesetIndexByLine(1)
+        .addChangesetIndexByLine(2)
+        .build()
+    );
 
     underTest.execute();
 
@@ -274,7 +271,7 @@ public class NewCoverageMeasuresStepTest {
   }
 
   private void verify_computation_of_measures_for_new_lines(String coverageLineHitsData,
-    String newLinesToCover, String newUncoveredLines, String newConditionsToCover, String newUncoveredConditions) {
+                                                            String newLinesToCover, String newUncoveredLines, String newConditionsToCover, String newUncoveredConditions) {
     treeRootHolder.setRoot(FILE_COMPONENT);
     reportReader.putChangesets(Changesets.newBuilder()
       .setComponentRef(FILE_COMPONENT.getRef())
@@ -294,17 +291,12 @@ public class NewCoverageMeasuresStepTest {
 
     underTest.execute();
 
-    assertThat(measureRepository.getAddedRawMeasure(FILE_COMPONENT.getRef(), newLinesToCover).get().getVariations().getVariation2()).isEqualTo(2d);
-    assertThat(measureRepository.getAddedRawMeasure(FILE_COMPONENT.getRef(), newLinesToCover).get().getVariations().hasVariation5()).isFalse();
-
-    assertThat(measureRepository.getAddedRawMeasure(FILE_COMPONENT.getRef(), newUncoveredLines).get().getVariations().getVariation2()).isEqualTo(1d);
-    assertThat(measureRepository.getAddedRawMeasure(FILE_COMPONENT.getRef(), newUncoveredLines).get().getVariations().hasVariation5()).isFalse();
-
-    assertThat(measureRepository.getAddedRawMeasure(FILE_COMPONENT.getRef(), newConditionsToCover).get().getVariations().getVariation2()).isEqualTo(0d);
-    assertThat(measureRepository.getAddedRawMeasure(FILE_COMPONENT.getRef(), newConditionsToCover).get().getVariations().hasVariation5()).isFalse();
-
-    assertThat(measureRepository.getAddedRawMeasure(FILE_COMPONENT.getRef(), newUncoveredConditions).get().getVariations().getVariation2()).isEqualTo(0d);
-    assertThat(measureRepository.getAddedRawMeasure(FILE_COMPONENT.getRef(), newUncoveredConditions).get().getVariations().hasVariation5()).isFalse();
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_COMPONENT.getRef()))).containsOnly(
+      entryOf(newLinesToCover, createMeasure(2d, null)),
+      entryOf(newUncoveredLines, createMeasure(1d, null)),
+      entryOf(newConditionsToCover, createMeasure(0d, null)),
+      entryOf(newUncoveredConditions, createMeasure(0d, null))
+    );
   }
 
   @Test
@@ -370,49 +362,47 @@ public class NewCoverageMeasuresStepTest {
     underTest.execute();
 
     // files
-    checkMeasureVariations(11111, metricKeys.newLinesToCover, null, 5d, null, null, 3d);
-    checkMeasureVariations(11111, metricKeys.newUncoveredLines, null, 3d, null, null, 2d);
-    checkMeasureVariations(11111, metricKeys.newConditionsToCover, null, 7d, null, null, 3d);
-    checkMeasureVariations(11111, metricKeys.newUncoveredConditions, null, 4d, null, null, 1d);
-
-    checkMeasureVariations(11121, metricKeys.newLinesToCover, null, 5d, null, null, 3d);
-    checkMeasureVariations(11121, metricKeys.newUncoveredLines, null, 4d, null, null, 2d);
-    checkMeasureVariations(11121, metricKeys.newConditionsToCover, null, 27d, null, null, 13d);
-    checkMeasureVariations(11121, metricKeys.newUncoveredConditions, null, 14d, null, null, 6d);
-
-    checkMeasureVariations(11122, metricKeys.newLinesToCover, null, 5d, null, null, 3d);
-    checkMeasureVariations(11122, metricKeys.newUncoveredLines, null, 2d, null, null, 1d);
-    checkMeasureVariations(11122, metricKeys.newConditionsToCover, null, 17d, null, null, 13d);
-    checkMeasureVariations(11122, metricKeys.newUncoveredConditions, null, 9d, null, null, 6d);
-
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(11111))).containsOnly(
+      entryOf(metricKeys.newLinesToCover, createMeasure(5d, 3d)),
+      entryOf(metricKeys.newUncoveredLines, createMeasure(3d, 2d)),
+      entryOf(metricKeys.newConditionsToCover, createMeasure(7d, 3d)),
+      entryOf(metricKeys.newUncoveredConditions, createMeasure(4d, 1d))
+    );
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(11121))).containsOnly(
+      entryOf(metricKeys.newLinesToCover, createMeasure(5d, 3d)),
+      entryOf(metricKeys.newUncoveredLines, createMeasure(4d, 2d)),
+      entryOf(metricKeys.newConditionsToCover, createMeasure(27d, 13d)),
+      entryOf(metricKeys.newUncoveredConditions, createMeasure(14d, 6d))
+    );
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(11122))).containsOnly(
+      entryOf(metricKeys.newLinesToCover, createMeasure(5d, 3d)),
+      entryOf(metricKeys.newUncoveredLines, createMeasure(2d, 1d)),
+      entryOf(metricKeys.newConditionsToCover, createMeasure(17d, 13d)),
+      entryOf(metricKeys.newUncoveredConditions, createMeasure(9d, 6d))
+    );
     // directories
-    checkMeasureVariations(1111, metricKeys.newLinesToCover, null, 5d, null, null, 3d);
-    checkMeasureVariations(1111, metricKeys.newUncoveredLines, null, 3d, null, null, 2d);
-    checkMeasureVariations(1111, metricKeys.newConditionsToCover, null, 7d, null, null, 3d);
-    checkMeasureVariations(1111, metricKeys.newUncoveredConditions, null, 4d, null, null, 1d);
-
-    checkMeasureVariations(1112, metricKeys.newLinesToCover, null, 10d, null, null, 6d);
-    checkMeasureVariations(1112, metricKeys.newUncoveredLines, null, 6d, null, null, 3d);
-    checkMeasureVariations(1112, metricKeys.newConditionsToCover, null, 44d, null, null, 26d);
-    checkMeasureVariations(1112, metricKeys.newUncoveredConditions, null, 23d, null, null, 12d);
-
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1111))).containsOnly(
+      entryOf(metricKeys.newLinesToCover, createMeasure(5d, 3d)),
+      entryOf(metricKeys.newUncoveredLines, createMeasure(3d, 2d)),
+      entryOf(metricKeys.newConditionsToCover, createMeasure(7d, 3d)),
+      entryOf(metricKeys.newUncoveredConditions, createMeasure(4d, 1d))
+    );
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(1112))).containsOnly(
+      entryOf(metricKeys.newLinesToCover, createMeasure(10d, 6d)),
+      entryOf(metricKeys.newUncoveredLines, createMeasure(6d, 3d)),
+      entryOf(metricKeys.newConditionsToCover, createMeasure(44d, 26d)),
+      entryOf(metricKeys.newUncoveredConditions, createMeasure(23d, 12d))
+    );
     // submodule
-    checkMeasureVariations(111, metricKeys.newLinesToCover, null, 15d, null, null, 9d);
-    checkMeasureVariations(111, metricKeys.newUncoveredLines, null, 9d, null, null, 5d);
-    checkMeasureVariations(111, metricKeys.newConditionsToCover, null, 51d, null, null, 29d);
-    checkMeasureVariations(111, metricKeys.newUncoveredConditions, null, 27d, null, null, 13d);
-
+    MeasureRepoEntry[] repoEntriesFromSubModuleUp = {entryOf(metricKeys.newLinesToCover, createMeasure(15d, 9d)),
+      entryOf(metricKeys.newUncoveredLines, createMeasure(9d, 5d)),
+      entryOf(metricKeys.newConditionsToCover, createMeasure(51d, 29d)),
+      entryOf(metricKeys.newUncoveredConditions, createMeasure(27d, 13d))};
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(111))).containsOnly(repoEntriesFromSubModuleUp);
     // module
-    checkMeasureVariations(11, metricKeys.newLinesToCover, null, 15d, null, null, 9d);
-    checkMeasureVariations(11, metricKeys.newUncoveredLines, null, 9d, null, null, 5d);
-    checkMeasureVariations(11, metricKeys.newConditionsToCover, null, 51d, null, null, 29d);
-    checkMeasureVariations(11, metricKeys.newUncoveredConditions, null, 27d, null, null, 13d);
-
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(11))).containsOnly(repoEntriesFromSubModuleUp);
     // project
-    checkMeasureVariations(1, metricKeys.newLinesToCover, null, 15d, null, null, 9d);
-    checkMeasureVariations(1, metricKeys.newUncoveredLines, null, 9d, null, null, 29d);
-    checkMeasureVariations(1, metricKeys.newConditionsToCover, null, 51d, null, null, 29d);
-    checkMeasureVariations(1, metricKeys.newUncoveredConditions, null, 27d, null, null, 13d);
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(11))).containsOnly(repoEntriesFromSubModuleUp);
   }
 
   private void defineChangeSetsAndMeasures(int componentRef, MetricKeys metricKeys, MeasureValues line4, MeasureValues line6) {
@@ -452,7 +442,7 @@ public class NewCoverageMeasuresStepTest {
     private final String newUncoveredConditions;
 
     public MetricKeys(String coverageLineHitsData, String conditionsByLine, String coveredConditionsByLine,
-      String newLinesToCover, String newUncoveredLines, String newConditionsToCover, String newUncoveredConditions) {
+                      String newLinesToCover, String newUncoveredLines, String newConditionsToCover, String newUncoveredConditions) {
       this.coverageLineHitsData = coverageLineHitsData;
       this.conditionsByLine = conditionsByLine;
       this.coveredConditionsByLine = coveredConditionsByLine;
@@ -481,17 +471,12 @@ public class NewCoverageMeasuresStepTest {
 
     underTest.execute();
 
-    assertThat(measureRepository.getAddedRawMeasure(FILE_COMPONENT.getRef(), metricKeys.newLinesToCover).get().getVariations().getVariation2()).isEqualTo(5d);
-    assertThat(measureRepository.getAddedRawMeasure(FILE_COMPONENT.getRef(), metricKeys.newLinesToCover).get().getVariations().getVariation5()).isEqualTo(3d);
-
-    assertThat(measureRepository.getAddedRawMeasure(FILE_COMPONENT.getRef(), metricKeys.newUncoveredLines).get().getVariations().getVariation2()).isEqualTo(3d);
-    assertThat(measureRepository.getAddedRawMeasure(FILE_COMPONENT.getRef(), metricKeys.newUncoveredLines).get().getVariations().getVariation5()).isEqualTo(2d);
-
-    assertThat(measureRepository.getAddedRawMeasure(FILE_COMPONENT.getRef(), metricKeys.newConditionsToCover).get().getVariations().getVariation2()).isEqualTo(7d);
-    assertThat(measureRepository.getAddedRawMeasure(FILE_COMPONENT.getRef(), metricKeys.newConditionsToCover).get().getVariations().getVariation5()).isEqualTo(3d);
-
-    assertThat(measureRepository.getAddedRawMeasure(FILE_COMPONENT.getRef(), metricKeys.newUncoveredConditions).get().getVariations().getVariation2()).isEqualTo(4d);
-    assertThat(measureRepository.getAddedRawMeasure(FILE_COMPONENT.getRef(), metricKeys.newUncoveredConditions).get().getVariations().getVariation5()).isEqualTo(1d);
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_COMPONENT.getRef()))).containsOnly(
+      entryOf(metricKeys.newLinesToCover, createMeasure(5d, 3d)),
+      entryOf(metricKeys.newUncoveredLines, createMeasure(3d, 2d)),
+      entryOf(metricKeys.newConditionsToCover, createMeasure(7d, 3d)),
+      entryOf(metricKeys.newUncoveredConditions, createMeasure(4d, 1d))
+    );
   }
 
   private static Measure createMeasure(@Nullable Double variationPeriod2, @Nullable Double variationPeriod5) {
@@ -507,23 +492,4 @@ public class NewCoverageMeasuresStepTest {
       .createNoValue();
   }
 
-  private void checkMeasureVariations(int fileRef, String metricKey, Double... expectedVariations) {
-    Optional<Measure> measure = measureRepository.getAddedRawMeasure(fileRef, metricKey);
-    if (measure.isPresent()) {
-      MeasureVariations measureVariations = measure.get().getVariations();
-      for (int i = 0; i < expectedVariations.length - 1; i++) {
-        Double expectedVariation = expectedVariations[i];
-        int period = i + 1;
-        if (expectedVariation != null) {
-          assertThat(measureVariations.hasVariation(period)).isTrue();
-          assertThat(measureVariations.getVariation(period)).isEqualTo(expectedVariation, DEFAULT_OFFSET);
-        } else {
-          assertThat(measureVariations.hasVariation(period)).isFalse();
-        }
-      }
-    } else {
-      fail(String.format("No measure on metric '%s' for component '%s'", metricKey, fileRef));
-    }
-  }
-
 }
index 1f2ab2925e9cc76d1a90d60d8dff49cd57ba337d..4031ad62dec6da19420d39683da8d435a275b332 100644 (file)
@@ -19,7 +19,6 @@
  */
 package org.sonar.server.computation.step;
 
-import org.assertj.core.data.Offset;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -27,6 +26,8 @@ import org.sonar.api.measures.CoreMetrics;
 import org.sonar.server.computation.batch.TreeRootHolderRule;
 import org.sonar.server.computation.component.DumbComponent;
 import org.sonar.server.computation.component.FileAttributes;
+import org.sonar.server.computation.measure.Measure;
+import org.sonar.server.computation.measure.MeasureRepoEntry;
 import org.sonar.server.computation.measure.MeasureRepositoryRule;
 import org.sonar.server.computation.metric.Metric;
 import org.sonar.server.computation.metric.MetricImpl;
@@ -46,6 +47,7 @@ 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.measure.Measure.newMeasureBuilder;
+import static org.sonar.server.computation.measure.MeasureRepoEntry.toEntries;
 import static org.sonar.server.computation.sqale.SqaleRatingGrid.SqaleRating.A;
 import static org.sonar.server.computation.sqale.SqaleRatingGrid.SqaleRating.C;
 
@@ -57,7 +59,7 @@ public class SqaleMeasuresStepTest {
   private static final Metric METRIC_2 = new MetricImpl(2, METRIC_KEY_2, "metric2", Metric.MetricType.WORK_DUR);
   private static final String LANGUAGE_KEY_1 = "lKey1";
   private static final String LANGUAGE_KEY_2 = "lKey2";
-  private static final double[] RATING_GRID = new double[] {34, 50, 362, 900, 36258};
+  private static final double[] RATING_GRID = new double[]{34, 50, 362, 900, 36258};
   private static final long DEV_COST_LANGUAGE_1 = 33;
   private static final long DEV_COST_LANGUAGE_2 = 42;
 
@@ -97,7 +99,15 @@ public class SqaleMeasuresStepTest {
 
     underTest.execute();
 
-    verifyComponentMeasures(root.getRef(), 0L, 0d, A);
+    assertThat(toEntries(measureRepository.getRawMeasures(root))).containsOnly(
+      MeasureRepoEntry.entryOf(DEVELOPMENT_COST_KEY, newMeasureBuilder().create("0")),
+      MeasureRepoEntry.entryOf(SQALE_DEBT_RATIO_KEY, newMeasureBuilder().create(0d)),
+      MeasureRepoEntry.entryOf(SQALE_RATING_KEY, createSqaleRatingMeasure(A))
+    );
+  }
+
+  private Measure createSqaleRatingMeasure(SqaleRatingGrid.SqaleRating sqaleRating) {
+    return newMeasureBuilder().create(sqaleRating.getIndex(), sqaleRating.name());
   }
 
   @Test
@@ -221,16 +231,21 @@ public class SqaleMeasuresStepTest {
     return DumbComponent.builder(FILE, fileRef).setFileAttributes(new FileAttributes(false, languageKey1)).build();
   }
 
+  private void verifyNoMeasure(int componentRef) {
+    assertThat(measureRepository.getRawMeasures(componentRef).isEmpty()).isTrue();
+  }
+
   private void verifyFileMeasures(int componentRef, long measureValue, long debt, long languageCost, SqaleRatingGrid.SqaleRating expectedRating) {
     long developmentCost = measureValue * languageCost;
     verifyComponentMeasures(componentRef, developmentCost, debt / developmentCost, expectedRating);
   }
 
   private void verifyComponentMeasures(int componentRef, long expectedDevCost, double expectedDebtRatio, SqaleRatingGrid.SqaleRating expectedRating) {
-    assertThat(measureRepository.getAddedRawMeasure(componentRef, DEVELOPMENT_COST_KEY).get().getStringValue()).isEqualTo(Long.toString(expectedDevCost));
-    assertThat(measureRepository.getAddedRawMeasure(componentRef, SQALE_DEBT_RATIO_KEY).get().getDoubleValue()).isEqualTo(expectedDebtRatio * 100d, Offset.offset(0.1d));
-    assertThat(measureRepository.getAddedRawMeasure(componentRef, SQALE_RATING_KEY).get().getIntValue()).isEqualTo(expectedRating.getIndex());
-    assertThat(measureRepository.getAddedRawMeasure(componentRef, SQALE_RATING_KEY).get().getData()).isEqualTo(expectedRating.name());
+    assertThat(toEntries(measureRepository.getAddedRawMeasures(componentRef))).containsOnly(
+      MeasureRepoEntry.entryOf(DEVELOPMENT_COST_KEY, newMeasureBuilder().create(Long.toString(expectedDevCost))),
+      MeasureRepoEntry.entryOf(SQALE_DEBT_RATIO_KEY, newMeasureBuilder().create(expectedDebtRatio * 100.0)),
+      MeasureRepoEntry.entryOf(SQALE_RATING_KEY, createSqaleRatingMeasure(expectedRating))
+    );
   }
 
 }