import java.util.Iterator;
import java.util.NoSuchElementException;
-public class DequeBasedPath<T> implements PathAwareVisitor.Path<T>, Iterable<PathAwareVisitor.PathElement<T>> {
+final class DequeBasedPath<T> implements PathAwareVisitor.Path<T>, Iterable<PathAwareVisitor.PathElement<T>> {
private final Deque<PathAwareVisitor.PathElement<T>> deque = new ArrayDeque<>();
@Override
--- /dev/null
+/*
+ * 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.measure;
+
+import org.sonar.api.ce.measure.MeasureComputer;
+import org.sonar.server.computation.component.ProjectSettingsRepository;
+import org.sonar.server.computation.component.TypeAwareVisitorAdapter;
+import org.sonar.server.computation.measure.api.MeasureComputerImplementationContext;
+import org.sonar.server.computation.metric.MetricRepository;
+
+import static org.sonar.server.computation.component.Component.Type.FILE;
+import static org.sonar.server.computation.component.Visitor.Order.PRE_ORDER;
+
+public class MeasureComputersVisitor extends TypeAwareVisitorAdapter {
+
+ private final MetricRepository metricRepository;
+ private final MeasureRepository measureRepository;
+ private final ProjectSettingsRepository settings;
+
+ private final MeasureComputersHolder measureComputersHolder;
+
+ public MeasureComputersVisitor(MetricRepository metricRepository, MeasureRepository measureRepository, ProjectSettingsRepository settings,
+ MeasureComputersHolder measureComputersHolder) {
+ super(FILE, PRE_ORDER);
+ this.metricRepository = metricRepository;
+ this.measureRepository = measureRepository;
+ this.settings = settings;
+ this.measureComputersHolder = measureComputersHolder;
+ }
+
+ @Override
+ public void visitAny(org.sonar.server.computation.component.Component component) {
+ for (MeasureComputer computer : measureComputersHolder.getMeasureComputers()) {
+ MeasureComputerImplementationContext measureComputerContext = new MeasureComputerImplementationContext(component, computer, settings, measureRepository, metricRepository);
+ computer.getImplementation().compute(measureComputerContext);
+ }
+ }
+}
import javax.annotation.Nonnull;
import org.sonar.server.computation.component.Visitor;
import org.sonar.server.computation.container.ComputeEngineContainer;
+import org.sonar.server.computation.measure.MeasureComputersVisitor;
import org.sonar.server.computation.sqale.SqaleMeasuresVisitor;
/**
*/
public class ComponentVisitors {
- private static final List<Class<? extends Visitor>> ORDERED_VISITOR_CLASSES = ImmutableList.<Visitor>of(
- SqaleMeasuresVisitor.class
+ private static final List<Class<? extends Visitor>> ORDERED_VISITOR_CLASSES = ImmutableList.of(
+ SqaleMeasuresVisitor.class,
+
+ // Must be after all other visitors as it requires measures computed by previous visitors
+ MeasureComputersVisitor.class
);
/**
// must be executed after the measures required for common rules (coverage, comment density, duplications)
IntegrateIssuesStep.class,
- ExecuteVisitorsStep.class,
-
FeedMeasureComputers.class,
- ComputePluginMeasuresStep.class,
+ ExecuteVisitorsStep.class,
// Must be executed after computation of all measures
FillMeasuresWithVariationsStep.class,
+++ /dev/null
-/*
- * 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.sonar.api.ce.measure.MeasureComputer;
-import org.sonar.server.computation.component.DepthTraversalTypeAwareCrawler;
-import org.sonar.server.computation.component.ProjectSettingsRepository;
-import org.sonar.server.computation.component.TreeRootHolder;
-import org.sonar.server.computation.measure.MeasureComputersHolder;
-import org.sonar.server.computation.measure.MeasureRepository;
-import org.sonar.server.computation.measure.api.MeasureComputerImplementationContext;
-import org.sonar.server.computation.metric.MetricRepository;
-
-import static org.sonar.server.computation.component.Component.Type.FILE;
-import static org.sonar.server.computation.component.Visitor.Order.PRE_ORDER;
-
-public class ComputePluginMeasuresStep implements ComputationStep {
-
- private final TreeRootHolder treeRootHolder;
- private final MetricRepository metricRepository;
- private final MeasureRepository measureRepository;
- private final ProjectSettingsRepository settings;
-
- private final MeasureComputersHolder measureComputersHolder;
-
- public ComputePluginMeasuresStep(TreeRootHolder treeRootHolder, MetricRepository metricRepository, MeasureRepository measureRepository, ProjectSettingsRepository settings,
- MeasureComputersHolder measureComputersHolder) {
- this.treeRootHolder = treeRootHolder;
- this.metricRepository = metricRepository;
- this.measureRepository = measureRepository;
- this.settings = settings;
- this.measureComputersHolder = measureComputersHolder;
- }
-
- @Override
- public void execute() {
- new NewMetricDefinitionsVisitor().visit(treeRootHolder.getRoot());
- }
-
- private class NewMetricDefinitionsVisitor extends DepthTraversalTypeAwareCrawler {
-
- public NewMetricDefinitionsVisitor() {
- super(FILE, PRE_ORDER);
- }
-
- @Override
- public void visitAny(org.sonar.server.computation.component.Component component) {
- for (MeasureComputer computer : measureComputersHolder.getMeasureComputers()) {
- MeasureComputerImplementationContext measureComputerContext = new MeasureComputerImplementationContext(component, computer, settings, measureRepository, metricRepository);
- computer.getImplementation().compute(measureComputerContext);
- }
- }
- }
-
- @Override
- public String getDescription() {
- return "Compute measures from plugin";
- }
-
-}
--- /dev/null
+/*
+ * 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.measure;
+
+import java.util.Arrays;
+import java.util.Collections;
+import org.junit.Rule;
+import org.junit.Test;
+import org.sonar.api.ce.measure.MeasureComputer;
+import org.sonar.server.computation.component.Component;
+import org.sonar.server.computation.component.Visitor;
+import org.sonar.server.computation.component.VisitorsCrawler;
+import org.sonar.server.computation.measure.api.MeasureComputerImpl;
+import org.sonar.server.computation.metric.MetricRepositoryRule;
+
+import static com.google.common.collect.Lists.newArrayList;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.sonar.api.measures.CoreMetrics.COMMENT_LINES;
+import static org.sonar.api.measures.CoreMetrics.COMMENT_LINES_KEY;
+import static org.sonar.api.measures.CoreMetrics.NCLOC;
+import static org.sonar.api.measures.CoreMetrics.NCLOC_KEY;
+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 MeasureComputersVisitorTest {
+
+ private static final String NEW_METRIC_KEY = "new_metric_key";
+ private static final String NEW_METRIC_NAME = "new metric name";
+
+ private static final org.sonar.api.measures.Metric<Integer> NEW_METRIC = new org.sonar.api.measures.Metric.Builder(NEW_METRIC_KEY, NEW_METRIC_NAME,
+ org.sonar.api.measures.Metric.ValueType.INT)
+ .create();
+
+ private static final int ROOT_REF = 1;
+ private static final int MODULE_REF = 12;
+ private static final int DIRECTORY_REF = 123;
+ private static final int FILE_1_REF = 1231;
+ private static final int FILE_2_REF = 1232;
+
+ private static final Component ROOT = builder(PROJECT, ROOT_REF).setKey("project")
+ .addChildren(
+ builder(MODULE, MODULE_REF).setKey("module")
+ .addChildren(
+ builder(DIRECTORY, DIRECTORY_REF).setKey("directory")
+ .addChildren(
+ builder(FILE, FILE_1_REF).setKey("file1").build(),
+ builder(FILE, FILE_2_REF).setKey("file2").build()
+ ).build()
+ ).build()
+ ).build();
+
+ @Rule
+ public MetricRepositoryRule metricRepository = new MetricRepositoryRule()
+ .add(NCLOC)
+ .add(COMMENT_LINES)
+ .add(NEW_METRIC);
+
+ @Rule
+ public MeasureRepositoryRule measureRepository = MeasureRepositoryRule.create(ROOT, metricRepository);
+
+ MeasureComputersHolderImpl measureComputersHolder = new MeasureComputersHolderImpl();
+
+ @Test
+ public void compute_plugin_measure() throws Exception {
+ measureRepository.addRawMeasure(FILE_1_REF, NCLOC_KEY, newMeasureBuilder().create(10));
+ measureRepository.addRawMeasure(FILE_1_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(2));
+ measureRepository.addRawMeasure(FILE_2_REF, NCLOC_KEY, newMeasureBuilder().create(40));
+ measureRepository.addRawMeasure(FILE_2_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(5));
+ measureRepository.addRawMeasure(DIRECTORY_REF, NCLOC_KEY, newMeasureBuilder().create(50));
+ measureRepository.addRawMeasure(DIRECTORY_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(7));
+ measureRepository.addRawMeasure(MODULE_REF, NCLOC_KEY, newMeasureBuilder().create(50));
+ measureRepository.addRawMeasure(MODULE_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(7));
+ measureRepository.addRawMeasure(ROOT_REF, NCLOC_KEY, newMeasureBuilder().create(50));
+ measureRepository.addRawMeasure(ROOT_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(7));
+
+ measureComputersHolder.setMeasureComputers(newArrayList(
+ new MeasureComputerImpl.MeasureComputerBuilderImpl()
+ .setInputMetrics(NCLOC_KEY, COMMENT_LINES_KEY)
+ .setOutputMetrics(NEW_METRIC_KEY)
+ .setImplementation(
+ new MeasureComputer.Implementation() {
+ @Override
+ public void compute(Context ctx) {
+ org.sonar.api.ce.measure.Measure ncloc = ctx.getMeasure(NCLOC_KEY);
+ org.sonar.api.ce.measure.Measure comment = ctx.getMeasure(COMMENT_LINES_KEY);
+ if (ncloc != null && comment != null) {
+ ctx.addMeasure(NEW_METRIC_KEY, ncloc.getIntValue() + comment.getIntValue());
+ }
+ }
+ }
+ )
+ .build()
+ ));
+
+ VisitorsCrawler visitorsCrawler = new VisitorsCrawler(Arrays.<Visitor>asList(new MeasureComputersVisitor(metricRepository, measureRepository, null, measureComputersHolder)));
+ visitorsCrawler.visit(ROOT);
+
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_1_REF))).containsOnly(entryOf(NEW_METRIC_KEY, newMeasureBuilder().create(12)));
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_2_REF))).containsOnly(entryOf(NEW_METRIC_KEY, newMeasureBuilder().create(45)));
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(DIRECTORY_REF))).containsOnly(entryOf(NEW_METRIC_KEY, newMeasureBuilder().create(57)));
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(MODULE_REF))).containsOnly(entryOf(NEW_METRIC_KEY, newMeasureBuilder().create(57)));
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(ROOT_REF))).containsOnly(entryOf(NEW_METRIC_KEY, newMeasureBuilder().create(57)));
+ }
+
+ @Test
+ public void nothing_to_compute() throws Exception {
+ measureRepository.addRawMeasure(FILE_1_REF, NCLOC_KEY, newMeasureBuilder().create(10));
+ measureRepository.addRawMeasure(FILE_1_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(2));
+ measureRepository.addRawMeasure(FILE_2_REF, NCLOC_KEY, newMeasureBuilder().create(40));
+ measureRepository.addRawMeasure(FILE_2_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(5));
+ measureRepository.addRawMeasure(DIRECTORY_REF, NCLOC_KEY, newMeasureBuilder().create(50));
+ measureRepository.addRawMeasure(DIRECTORY_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(7));
+ measureRepository.addRawMeasure(MODULE_REF, NCLOC_KEY, newMeasureBuilder().create(50));
+ measureRepository.addRawMeasure(MODULE_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(7));
+ measureRepository.addRawMeasure(ROOT_REF, NCLOC_KEY, newMeasureBuilder().create(50));
+ measureRepository.addRawMeasure(ROOT_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(7));
+
+ measureComputersHolder.setMeasureComputers(Collections.<MeasureComputer>emptyList());
+ VisitorsCrawler visitorsCrawler = new VisitorsCrawler(Arrays.<Visitor>asList(new MeasureComputersVisitor(metricRepository, measureRepository, null, measureComputersHolder)));
+ visitorsCrawler.visit(ROOT);
+
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_1_REF))).isEmpty();
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_2_REF))).isEmpty();
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(DIRECTORY_REF))).isEmpty();
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(MODULE_REF))).isEmpty();
+ assertThat(toEntries(measureRepository.getAddedRawMeasures(ROOT_REF))).isEmpty();
+ }
+
+}
+++ /dev/null
-/*
- * 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 java.util.Collections;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.sonar.api.ce.measure.Measure;
-import org.sonar.api.ce.measure.MeasureComputer;
-import org.sonar.server.computation.batch.TreeRootHolderRule;
-import org.sonar.server.computation.measure.MeasureComputersHolderImpl;
-import org.sonar.server.computation.measure.MeasureRepositoryRule;
-import org.sonar.server.computation.measure.api.MeasureComputerImpl;
-import org.sonar.server.computation.metric.MetricRepositoryRule;
-
-import static com.google.common.collect.Lists.newArrayList;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.sonar.api.measures.CoreMetrics.COMMENT_LINES;
-import static org.sonar.api.measures.CoreMetrics.COMMENT_LINES_KEY;
-import static org.sonar.api.measures.CoreMetrics.NCLOC;
-import static org.sonar.api.measures.CoreMetrics.NCLOC_KEY;
-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 ComputePluginMeasuresStepTest {
-
- private static final String NEW_METRIC_KEY = "new_metric_key";
- private static final String NEW_METRIC_NAME = "new metric name";
-
- private static final org.sonar.api.measures.Metric<Integer> NEW_METRIC = new org.sonar.api.measures.Metric.Builder(NEW_METRIC_KEY, NEW_METRIC_NAME,
- org.sonar.api.measures.Metric.ValueType.INT)
- .create();
-
- private static final int ROOT_REF = 1;
- private static final int MODULE_REF = 12;
- private static final int DIRECTORY_REF = 123;
- private static final int FILE_1_REF = 1231;
- private static final int FILE_2_REF = 1232;
-
- @Rule
- public TreeRootHolderRule treeRootHolder = new TreeRootHolderRule();
-
- @Rule
- public MetricRepositoryRule metricRepository = new MetricRepositoryRule()
- .add(NCLOC)
- .add(COMMENT_LINES)
- .add(NEW_METRIC);
-
- @Rule
- public MeasureRepositoryRule measureRepository = MeasureRepositoryRule.create(treeRootHolder, metricRepository);
-
- @Before
- public void setUp() throws Exception {
- treeRootHolder.setRoot(
- builder(PROJECT, ROOT_REF).setKey("project")
- .addChildren(
- builder(MODULE, MODULE_REF).setKey("module")
- .addChildren(
- builder(DIRECTORY, DIRECTORY_REF).setKey("directory")
- .addChildren(
- builder(FILE, FILE_1_REF).setKey("file1").build(),
- builder(FILE, FILE_2_REF).setKey("file2").build()
- ).build()
- ).build()
- ).build());
- }
-
- MeasureComputersHolderImpl measureComputersHolder = new MeasureComputersHolderImpl();
-
- @Test
- public void compute_plugin_measure() throws Exception {
- measureRepository.addRawMeasure(FILE_1_REF, NCLOC_KEY, newMeasureBuilder().create(10));
- measureRepository.addRawMeasure(FILE_1_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(2));
- measureRepository.addRawMeasure(FILE_2_REF, NCLOC_KEY, newMeasureBuilder().create(40));
- measureRepository.addRawMeasure(FILE_2_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(5));
- measureRepository.addRawMeasure(DIRECTORY_REF, NCLOC_KEY, newMeasureBuilder().create(50));
- measureRepository.addRawMeasure(DIRECTORY_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(7));
- measureRepository.addRawMeasure(MODULE_REF, NCLOC_KEY, newMeasureBuilder().create(50));
- measureRepository.addRawMeasure(MODULE_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(7));
- measureRepository.addRawMeasure(ROOT_REF, NCLOC_KEY, newMeasureBuilder().create(50));
- measureRepository.addRawMeasure(ROOT_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(7));
-
- measureComputersHolder.setMeasureComputers(newArrayList(
- new MeasureComputerImpl.MeasureComputerBuilderImpl()
- .setInputMetrics(NCLOC_KEY, COMMENT_LINES_KEY)
- .setOutputMetrics(NEW_METRIC_KEY)
- .setImplementation(
- new MeasureComputer.Implementation() {
- @Override
- public void compute(Context ctx) {
- Measure ncloc = ctx.getMeasure(NCLOC_KEY);
- Measure comment = ctx.getMeasure(COMMENT_LINES_KEY);
- if (ncloc != null && comment != null) {
- ctx.addMeasure(NEW_METRIC_KEY, ncloc.getIntValue() + comment.getIntValue());
- }
- }
- }
- )
- .build()
- ));
- ComputationStep underTest = new ComputePluginMeasuresStep(treeRootHolder, metricRepository, measureRepository, null, measureComputersHolder);
- underTest.execute();
-
- assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_1_REF))).containsOnly(entryOf(NEW_METRIC_KEY, newMeasureBuilder().create(12)));
- assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_2_REF))).containsOnly(entryOf(NEW_METRIC_KEY, newMeasureBuilder().create(45)));
- assertThat(toEntries(measureRepository.getAddedRawMeasures(DIRECTORY_REF))).containsOnly(entryOf(NEW_METRIC_KEY, newMeasureBuilder().create(57)));
- assertThat(toEntries(measureRepository.getAddedRawMeasures(MODULE_REF))).containsOnly(entryOf(NEW_METRIC_KEY, newMeasureBuilder().create(57)));
- assertThat(toEntries(measureRepository.getAddedRawMeasures(ROOT_REF))).containsOnly(entryOf(NEW_METRIC_KEY, newMeasureBuilder().create(57)));
- }
-
- @Test
- public void nothing_to_compute() throws Exception {
- measureRepository.addRawMeasure(FILE_1_REF, NCLOC_KEY, newMeasureBuilder().create(10));
- measureRepository.addRawMeasure(FILE_1_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(2));
- measureRepository.addRawMeasure(FILE_2_REF, NCLOC_KEY, newMeasureBuilder().create(40));
- measureRepository.addRawMeasure(FILE_2_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(5));
- measureRepository.addRawMeasure(DIRECTORY_REF, NCLOC_KEY, newMeasureBuilder().create(50));
- measureRepository.addRawMeasure(DIRECTORY_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(7));
- measureRepository.addRawMeasure(MODULE_REF, NCLOC_KEY, newMeasureBuilder().create(50));
- measureRepository.addRawMeasure(MODULE_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(7));
- measureRepository.addRawMeasure(ROOT_REF, NCLOC_KEY, newMeasureBuilder().create(50));
- measureRepository.addRawMeasure(ROOT_REF, COMMENT_LINES_KEY, newMeasureBuilder().create(7));
-
- measureComputersHolder.setMeasureComputers(Collections.<MeasureComputer>emptyList());
- ComputationStep underTest = new ComputePluginMeasuresStep(treeRootHolder, metricRepository, measureRepository, null, measureComputersHolder);
- underTest.execute();
-
- assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_1_REF))).isEmpty();
- assertThat(toEntries(measureRepository.getAddedRawMeasures(FILE_2_REF))).isEmpty();
- assertThat(toEntries(measureRepository.getAddedRawMeasures(DIRECTORY_REF))).isEmpty();
- assertThat(toEntries(measureRepository.getAddedRawMeasures(MODULE_REF))).isEmpty();
- assertThat(toEntries(measureRepository.getAddedRawMeasures(ROOT_REF))).isEmpty();
- }
-
-}