aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2015-08-20 12:46:21 +0200
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2015-08-24 14:00:32 +0200
commit7e1b42f565532e6a96619d044926fbdbe9f61066 (patch)
tree6b84ba31af0ff08e293076952db33b5482aae852 /server
parentdf279e84e4edc6d8d602656c7b18a38f16f3ea2f (diff)
downloadsonarqube-7e1b42f565532e6a96619d044926fbdbe9f61066.tar.gz
sonarqube-7e1b42f565532e6a96619d044926fbdbe9f61066.zip
make CoverageMeasuresStep support Views Component tree
Diffstat (limited to 'server')
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/computation/formula/coverage/CoverageFormula.java4
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/computation/formula/coverage/ElementsAndCoveredElementsCounter.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/computation/step/ReportCoverageMeasuresStepTest.java (renamed from server/sonar-server/src/test/java/org/sonar/server/computation/step/CoverageMeasuresStepTest.java)48
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/computation/step/ViewsCoverageMeasuresStepTest.java231
4 files changed, 258 insertions, 29 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/formula/coverage/CoverageFormula.java b/server/sonar-server/src/main/java/org/sonar/server/computation/formula/coverage/CoverageFormula.java
index 1521df8f9d0..2e42d0e5068 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/computation/formula/coverage/CoverageFormula.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/computation/formula/coverage/CoverageFormula.java
@@ -20,6 +20,7 @@
package org.sonar.server.computation.formula.coverage;
import com.google.common.base.Optional;
+import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.formula.Counter;
import org.sonar.server.computation.formula.CreateMeasureContext;
import org.sonar.server.computation.formula.Formula;
@@ -36,6 +37,9 @@ public abstract class CoverageFormula<T extends ElementsAndCoveredElementsCounte
@Override
public Optional<Measure> createMeasure(T counter, CreateMeasureContext context) {
+ if (context.getComponent().getType() == Component.Type.PROJECT_VIEW) {
+ return Optional.absent();
+ }
long elements = counter.elements;
long coveredElements = counter.coveredElements;
if (elements > 0L) {
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/formula/coverage/ElementsAndCoveredElementsCounter.java b/server/sonar-server/src/main/java/org/sonar/server/computation/formula/coverage/ElementsAndCoveredElementsCounter.java
index 38ef6f50284..b78ec62fee3 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/computation/formula/coverage/ElementsAndCoveredElementsCounter.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/computation/formula/coverage/ElementsAndCoveredElementsCounter.java
@@ -19,6 +19,7 @@
*/
package org.sonar.server.computation.formula.coverage;
+import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.formula.Counter;
import org.sonar.server.computation.formula.LeafAggregateContext;
@@ -37,7 +38,8 @@ public abstract class ElementsAndCoveredElementsCounter implements Counter<Eleme
@Override
public void aggregate(LeafAggregateContext context) {
- if (context.getLeaf().getFileAttributes().isUnitTest()) {
+ Component component = context.getLeaf();
+ if (component.getType().isReportType() && component.getFileAttributes().isUnitTest()) {
return;
}
aggregateForSupportedLeaf(context);
diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/CoverageMeasuresStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/ReportCoverageMeasuresStepTest.java
index a8d3fc9a5dd..220773de571 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/CoverageMeasuresStepTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/ReportCoverageMeasuresStepTest.java
@@ -40,7 +40,7 @@ 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 {
+public class ReportCoverageMeasuresStepTest {
private static final int ROOT_REF = 1;
private static final int MODULE_REF = 12;
private static final int SUB_MODULE_REF = 123;
@@ -51,7 +51,7 @@ public class CoverageMeasuresStepTest {
@Rule
public TreeRootHolderRule treeRootHolder = new TreeRootHolderRule();
-
+
@Rule
public MetricRepositoryRule metricRepository = new MetricRepositoryRule()
.add(CoreMetrics.LINES_TO_COVER)
@@ -62,7 +62,7 @@ public class CoverageMeasuresStepTest {
.add(CoreMetrics.BRANCH_COVERAGE)
.add(CoreMetrics.LINE_COVERAGE)
- .add(CoreMetrics.IT_LINES_TO_COVER)
+ .add(CoreMetrics.IT_LINES_TO_COVER)
.add(CoreMetrics.IT_CONDITIONS_TO_COVER)
.add(CoreMetrics.IT_UNCOVERED_LINES)
.add(CoreMetrics.IT_UNCOVERED_CONDITIONS)
@@ -70,7 +70,7 @@ public class CoverageMeasuresStepTest {
.add(CoreMetrics.IT_BRANCH_COVERAGE)
.add(CoreMetrics.IT_LINE_COVERAGE)
- .add(CoreMetrics.OVERALL_LINES_TO_COVER)
+ .add(CoreMetrics.OVERALL_LINES_TO_COVER)
.add(CoreMetrics.OVERALL_CONDITIONS_TO_COVER)
.add(CoreMetrics.OVERALL_UNCOVERED_LINES)
.add(CoreMetrics.OVERALL_UNCOVERED_CONDITIONS)
@@ -95,19 +95,18 @@ public class CoverageMeasuresStepTest {
.addChildren(
builder(FILE, FILE_1_REF).build(),
builder(FILE, UNIT_TEST_FILE_REF).setFileAttributes(new FileAttributes(true, "some language")).build(),
- builder(FILE, FILE_2_REF).build()
- ).build()
- ).build()
- ).build()
- ).build());
+ builder(FILE, FILE_2_REF).build())
+ .build())
+ .build())
+ .build())
+ .build());
}
@Test
public void verify_aggregates_values_for_ut_lines_and_conditions() {
LinesAndConditionsWithUncoveredMetricKeys metricKeys = new LinesAndConditionsWithUncoveredMetricKeys(
CoreMetrics.LINES_TO_COVER_KEY, CoreMetrics.CONDITIONS_TO_COVER_KEY,
- CoreMetrics.UNCOVERED_LINES_KEY, CoreMetrics.UNCOVERED_CONDITIONS_KEY
- );
+ CoreMetrics.UNCOVERED_LINES_KEY, CoreMetrics.UNCOVERED_CONDITIONS_KEY);
verify_lines_and_conditions_aggregates_values(metricKeys);
}
@@ -115,8 +114,7 @@ public class CoverageMeasuresStepTest {
public void verify_aggregates_values_for_it_lines_and_conditions() {
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
- );
+ CoreMetrics.IT_UNCOVERED_LINES_KEY, CoreMetrics.IT_UNCOVERED_CONDITIONS_KEY);
verify_lines_and_conditions_aggregates_values(metricKeys);
}
@@ -124,8 +122,7 @@ public class CoverageMeasuresStepTest {
public void verify_aggregates_values_for_overall_lines_and_conditions() {
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
- );
+ CoreMetrics.OVERALL_UNCOVERED_LINES_KEY, CoreMetrics.OVERALL_UNCOVERED_CONDITIONS_KEY);
verify_lines_and_conditions_aggregates_values(metricKeys);
}
@@ -136,7 +133,7 @@ public class CoverageMeasuresStepTest {
.addRawMeasure(FILE_1_REF, metricKeys.getUncoveredLines(), newMeasureBuilder().create(30))
.addRawMeasure(FILE_1_REF, metricKeys.getUncoveredConditions(), newMeasureBuilder().create(9))
- .addRawMeasure(FILE_2_REF, metricKeys.getLines(), newMeasureBuilder().create(2000))
+ .addRawMeasure(FILE_2_REF, metricKeys.getLines(), newMeasureBuilder().create(2000))
.addRawMeasure(FILE_2_REF, metricKeys.getConditions(), newMeasureBuilder().create(400))
.addRawMeasure(FILE_2_REF, metricKeys.getUncoveredLines(), newMeasureBuilder().create(200))
.addRawMeasure(FILE_2_REF, metricKeys.getUncoveredConditions(), newMeasureBuilder().create(16));
@@ -145,7 +142,7 @@ public class CoverageMeasuresStepTest {
MeasureRepoEntry[] nonFileRepoEntries = {
entryOf(metricKeys.getLines(), newMeasureBuilder().create(5000)),
- entryOf( metricKeys.getConditions(), newMeasureBuilder().create(700)),
+ entryOf(metricKeys.getConditions(), newMeasureBuilder().create(700)),
entryOf(metricKeys.getUncoveredLines(), newMeasureBuilder().create(230)),
entryOf(metricKeys.getUncoveredConditions(), newMeasureBuilder().create(25))
};
@@ -160,8 +157,7 @@ public class CoverageMeasuresStepTest {
public void verify_aggregates_values_for_code_line_and_branch_coverage() {
LinesAndConditionsWithUncoveredMetricKeys metricKeys = new LinesAndConditionsWithUncoveredMetricKeys(
CoreMetrics.LINES_TO_COVER_KEY, CoreMetrics.CONDITIONS_TO_COVER_KEY,
- CoreMetrics.UNCOVERED_LINES_KEY, CoreMetrics.UNCOVERED_CONDITIONS_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;
@@ -173,8 +169,7 @@ public class CoverageMeasuresStepTest {
public void verify_aggregates_values_for_IT_code_line_and_branch_coverage() {
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
- );
+ 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;
@@ -186,8 +181,7 @@ public class CoverageMeasuresStepTest {
public void verify_aggregates_values_for_Overall_code_line_and_branch_coverage() {
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
- );
+ 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;
@@ -202,7 +196,7 @@ public class CoverageMeasuresStepTest {
.addRawMeasure(FILE_1_REF, metricKeys.getUncoveredLines(), newMeasureBuilder().create(30))
.addRawMeasure(FILE_1_REF, metricKeys.getUncoveredConditions(), newMeasureBuilder().create(9))
- .addRawMeasure(FILE_2_REF, metricKeys.getLines(), newMeasureBuilder().create(2000))
+ .addRawMeasure(FILE_2_REF, metricKeys.getLines(), newMeasureBuilder().create(2000))
.addRawMeasure(FILE_2_REF, metricKeys.getConditions(), newMeasureBuilder().create(400))
.addRawMeasure(FILE_2_REF, metricKeys.getUncoveredLines(), newMeasureBuilder().create(200))
.addRawMeasure(FILE_2_REF, metricKeys.getUncoveredConditions(), newMeasureBuilder().create(16));
@@ -212,13 +206,11 @@ public class CoverageMeasuresStepTest {
assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_1_REF))).contains(
entryOf(codeCoverageKey, newMeasureBuilder().create(98.8d)),
entryOf(lineCoverageKey, newMeasureBuilder().create(99d)),
- entryOf(branchCoverageKey, newMeasureBuilder().create(97d))
- );
+ entryOf(branchCoverageKey, newMeasureBuilder().create(97d)));
assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_2_REF))).contains(
entryOf(codeCoverageKey, newMeasureBuilder().create(91d)),
entryOf(lineCoverageKey, newMeasureBuilder().create(90d)),
- entryOf(branchCoverageKey, newMeasureBuilder().create(96d))
- );
+ entryOf(branchCoverageKey, newMeasureBuilder().create(96d)));
assertThat(toEntries(measureRepository.getAddedRawMeasures(UNIT_TEST_FILE_REF))).isEmpty();
MeasureRepoEntry[] nonFileRepoEntries = {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/ViewsCoverageMeasuresStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/ViewsCoverageMeasuresStepTest.java
new file mode 100644
index 00000000000..9d454dec179
--- /dev/null
+++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/ViewsCoverageMeasuresStepTest.java
@@ -0,0 +1,231 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2014 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * SonarQube is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * SonarQube is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+package org.sonar.server.computation.step;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.sonar.api.measures.CoreMetrics;
+import org.sonar.server.computation.batch.TreeRootHolderRule;
+import org.sonar.server.computation.formula.coverage.LinesAndConditionsWithUncoveredMetricKeys;
+import org.sonar.server.computation.measure.MeasureRepoEntry;
+import org.sonar.server.computation.measure.MeasureRepositoryRule;
+import org.sonar.server.computation.metric.MetricRepositoryRule;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.sonar.server.computation.component.Component.Type.PROJECT_VIEW;
+import static org.sonar.server.computation.component.Component.Type.SUBVIEW;
+import static org.sonar.server.computation.component.Component.Type.VIEW;
+import static org.sonar.server.computation.component.ViewsComponent.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 ViewsCoverageMeasuresStepTest {
+ private static final int ROOT_REF = 1;
+ private static final int SUBVIEW_REF = 12;
+ private static final int SUB_SUBVIEW_REF = 121;
+ private static final int PROJECTVIEW_1_REF = 1211;
+ private static final int PROJECTVIEW_2_REF = 1212;
+ private static final int PROJECTVIEW_3_REF = 123;
+
+ @Rule
+ public TreeRootHolderRule treeRootHolder = new TreeRootHolderRule();
+
+ @Rule
+ public MetricRepositoryRule metricRepository = new MetricRepositoryRule()
+ .add(CoreMetrics.LINES_TO_COVER)
+ .add(CoreMetrics.CONDITIONS_TO_COVER)
+ .add(CoreMetrics.UNCOVERED_LINES)
+ .add(CoreMetrics.UNCOVERED_CONDITIONS)
+ .add(CoreMetrics.COVERAGE)
+ .add(CoreMetrics.BRANCH_COVERAGE)
+ .add(CoreMetrics.LINE_COVERAGE)
+
+ .add(CoreMetrics.IT_LINES_TO_COVER)
+ .add(CoreMetrics.IT_CONDITIONS_TO_COVER)
+ .add(CoreMetrics.IT_UNCOVERED_LINES)
+ .add(CoreMetrics.IT_UNCOVERED_CONDITIONS)
+ .add(CoreMetrics.IT_COVERAGE)
+ .add(CoreMetrics.IT_BRANCH_COVERAGE)
+ .add(CoreMetrics.IT_LINE_COVERAGE)
+
+ .add(CoreMetrics.OVERALL_LINES_TO_COVER)
+ .add(CoreMetrics.OVERALL_CONDITIONS_TO_COVER)
+ .add(CoreMetrics.OVERALL_UNCOVERED_LINES)
+ .add(CoreMetrics.OVERALL_UNCOVERED_CONDITIONS)
+ .add(CoreMetrics.OVERALL_COVERAGE)
+ .add(CoreMetrics.OVERALL_BRANCH_COVERAGE)
+ .add(CoreMetrics.OVERALL_LINE_COVERAGE);
+ @Rule
+ public MeasureRepositoryRule measureRepository = MeasureRepositoryRule.create(treeRootHolder, metricRepository);
+
+ CoverageMeasuresStep underTest = new CoverageMeasuresStep(treeRootHolder, metricRepository, measureRepository);
+
+ @Before
+ public void setUp() throws Exception {
+ treeRootHolder.setRoot(
+ builder(VIEW, ROOT_REF)
+ .addChildren(
+ builder(SUBVIEW, SUBVIEW_REF)
+ .addChildren(
+ builder(SUBVIEW, SUB_SUBVIEW_REF)
+ .addChildren(
+ builder(PROJECT_VIEW, PROJECTVIEW_1_REF).build(),
+ builder(PROJECT_VIEW, PROJECTVIEW_2_REF).build())
+ .build())
+ .build(),
+ builder(PROJECT_VIEW, PROJECTVIEW_3_REF).build())
+ .build());
+ }
+
+ @Test
+ public void verify_aggregates_values_for_ut_lines_and_conditions() {
+ LinesAndConditionsWithUncoveredMetricKeys metricKeys = new LinesAndConditionsWithUncoveredMetricKeys(
+ CoreMetrics.LINES_TO_COVER_KEY, CoreMetrics.CONDITIONS_TO_COVER_KEY,
+ CoreMetrics.UNCOVERED_LINES_KEY, CoreMetrics.UNCOVERED_CONDITIONS_KEY);
+ verify_lines_and_conditions_aggregates_values(metricKeys);
+ }
+
+ @Test
+ public void verify_aggregates_values_for_it_lines_and_conditions() {
+ 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);
+ verify_lines_and_conditions_aggregates_values(metricKeys);
+ }
+
+ @Test
+ public void verify_aggregates_values_for_overall_lines_and_conditions() {
+ 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);
+ verify_lines_and_conditions_aggregates_values(metricKeys);
+ }
+
+ private void verify_lines_and_conditions_aggregates_values(LinesAndConditionsWithUncoveredMetricKeys metricKeys) {
+ measureRepository
+ .addRawMeasure(PROJECTVIEW_1_REF, metricKeys.getLines(), newMeasureBuilder().create(3000))
+ .addRawMeasure(PROJECTVIEW_1_REF, metricKeys.getConditions(), newMeasureBuilder().create(300))
+ .addRawMeasure(PROJECTVIEW_1_REF, metricKeys.getUncoveredLines(), newMeasureBuilder().create(30))
+ .addRawMeasure(PROJECTVIEW_1_REF, metricKeys.getUncoveredConditions(), newMeasureBuilder().create(9))
+
+ .addRawMeasure(PROJECTVIEW_2_REF, metricKeys.getLines(), newMeasureBuilder().create(2000))
+ .addRawMeasure(PROJECTVIEW_2_REF, metricKeys.getConditions(), newMeasureBuilder().create(400))
+ .addRawMeasure(PROJECTVIEW_2_REF, metricKeys.getUncoveredLines(), newMeasureBuilder().create(200))
+ .addRawMeasure(PROJECTVIEW_2_REF, metricKeys.getUncoveredConditions(), newMeasureBuilder().create(16))
+
+ .addRawMeasure(PROJECTVIEW_3_REF, metricKeys.getLines(), newMeasureBuilder().create(1000))
+ .addRawMeasure(PROJECTVIEW_3_REF, metricKeys.getConditions(), newMeasureBuilder().create(500))
+ .addRawMeasure(PROJECTVIEW_3_REF, metricKeys.getUncoveredLines(), newMeasureBuilder().create(300))
+ .addRawMeasure(PROJECTVIEW_3_REF, metricKeys.getUncoveredConditions(), newMeasureBuilder().create(19));
+
+ underTest.execute();
+
+ MeasureRepoEntry[] subViewRepoEntries = {
+ entryOf(metricKeys.getLines(), newMeasureBuilder().create(5000)),
+ entryOf(metricKeys.getConditions(), newMeasureBuilder().create(700)),
+ entryOf(metricKeys.getUncoveredLines(), newMeasureBuilder().create(230)),
+ entryOf(metricKeys.getUncoveredConditions(), newMeasureBuilder().create(25))
+ };
+
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(SUB_SUBVIEW_REF))).contains(subViewRepoEntries);
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(SUBVIEW_REF))).contains(subViewRepoEntries);
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(ROOT_REF))).contains(
+ entryOf(metricKeys.getLines(), newMeasureBuilder().create(6000)),
+ entryOf(metricKeys.getConditions(), newMeasureBuilder().create(1200)),
+ entryOf(metricKeys.getUncoveredLines(), newMeasureBuilder().create(530)),
+ entryOf(metricKeys.getUncoveredConditions(), newMeasureBuilder().create(44)));
+ }
+
+ @Test
+ public void verify_aggregates_values_for_code_line_and_branch_coverage() {
+ 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;
+
+ verify_coverage_aggregates_values(metricKeys, codeCoverageKey, lineCoverageKey, branchCoverageKey);
+ }
+
+ @Test
+ public void verify_aggregates_values_for_IT_code_line_and_branch_coverage() {
+ 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;
+
+ verify_coverage_aggregates_values(metricKeys, codeCoverageKey, lineCoverageKey, branchCoverageKey);
+ }
+
+ @Test
+ public void verify_aggregates_values_for_Overall_code_line_and_branch_coverage() {
+ 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;
+
+ verify_coverage_aggregates_values(metricKeys, codeCoverageKey, lineCoverageKey, branchCoverageKey);
+ }
+
+ private void verify_coverage_aggregates_values(LinesAndConditionsWithUncoveredMetricKeys metricKeys, String codeCoverageKey, String lineCoverageKey, String branchCoverageKey) {
+ measureRepository
+ .addRawMeasure(PROJECTVIEW_1_REF, metricKeys.getLines(), newMeasureBuilder().create(3000))
+ .addRawMeasure(PROJECTVIEW_1_REF, metricKeys.getConditions(), newMeasureBuilder().create(300))
+ .addRawMeasure(PROJECTVIEW_1_REF, metricKeys.getUncoveredLines(), newMeasureBuilder().create(30))
+ .addRawMeasure(PROJECTVIEW_1_REF, metricKeys.getUncoveredConditions(), newMeasureBuilder().create(9))
+
+ .addRawMeasure(PROJECTVIEW_2_REF, metricKeys.getLines(), newMeasureBuilder().create(2000))
+ .addRawMeasure(PROJECTVIEW_2_REF, metricKeys.getConditions(), newMeasureBuilder().create(400))
+ .addRawMeasure(PROJECTVIEW_2_REF, metricKeys.getUncoveredLines(), newMeasureBuilder().create(200))
+ .addRawMeasure(PROJECTVIEW_2_REF, metricKeys.getUncoveredConditions(), newMeasureBuilder().create(16))
+
+ .addRawMeasure(PROJECTVIEW_3_REF, metricKeys.getLines(), newMeasureBuilder().create(1000))
+ .addRawMeasure(PROJECTVIEW_3_REF, metricKeys.getConditions(), newMeasureBuilder().create(500))
+ .addRawMeasure(PROJECTVIEW_3_REF, metricKeys.getUncoveredLines(), newMeasureBuilder().create(300))
+ .addRawMeasure(PROJECTVIEW_3_REF, metricKeys.getUncoveredConditions(), newMeasureBuilder().create(19));
+
+ underTest.execute();
+
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(PROJECTVIEW_1_REF))).isEmpty();
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(PROJECTVIEW_2_REF))).isEmpty();
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(PROJECTVIEW_3_REF))).isEmpty();
+
+ MeasureRepoEntry[] subViewRepoEntries = {
+ entryOf(codeCoverageKey, newMeasureBuilder().create(95.5d)),
+ entryOf(lineCoverageKey, newMeasureBuilder().create(95.4d)),
+ entryOf(branchCoverageKey, newMeasureBuilder().create(96.4d))
+ };
+
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(SUB_SUBVIEW_REF))).contains(subViewRepoEntries);
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(SUBVIEW_REF))).contains(subViewRepoEntries);
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(ROOT_REF))).contains(
+ entryOf(codeCoverageKey, newMeasureBuilder().create(92d)),
+ entryOf(lineCoverageKey, newMeasureBuilder().create(91.2d)),
+ entryOf(branchCoverageKey, newMeasureBuilder().create(96.3d)));
+ }
+
+}