From abac7619c39e0e24aa86bb1150ce00b4063fa241 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Lesaint?= Date: Thu, 21 Jun 2018 11:27:56 +0200 Subject: [PATCH] fix wrong dependencies onto package computation.task.projectanalysis --- .../container/ComputeEngineContainerImpl.java | 2 +- .../sonar/server/badge/ws/MeasureAction.java | 14 +- .../ProjectConfigurationFactory.java | 3 +- .../ConfigurationRepositoryImpl.java | 2 +- .../formula/counter/RatingValue.java | 2 +- .../projectanalysis/issue/RuleRepository.java | 1 + .../issue/RuleRepositoryImpl.java | 75 +++++- .../issue/TrackerRawInputFactory.java | 1 + .../PostMeasuresComputationCheck.java | 2 +- .../PostMeasuresComputationChecksStep.java | 5 +- .../MaintainabilityMeasuresVisitor.java | 1 + ...ilityAndSecurityRatingMeasuresVisitor.java | 11 +- .../qualitymodel/RatingSettings.java | 1 + ...ilityAndSecurityRatingMeasuresVisitor.java | 3 +- .../step/ReportComputationSteps.java | 2 +- .../task/step/ComputationStep.java | 5 +- .../DebtRatingGrid.java | 14 +- .../qualitymodel => measure}/Rating.java | 2 +- .../measure/live/IssueMetricFormula.java | 4 +- .../live/IssueMetricFormulaFactoryImpl.java | 4 +- .../measure/live/LiveMeasureComputerImpl.java | 4 +- .../server/measure/live/MeasureMatrix.java | 2 +- .../sonar/server/measure/package-info.java | 23 ++ .../platformlevel/PlatformLevel4.java | 2 - .../QualityGateConditionsUpdater.java | 4 +- .../qualitygate/RegisterQualityGates.java | 2 +- .../server/rule/ExternalRuleCreator.java | 14 +- .../issue => rule}/NewExternalRule.java | 42 +--- .../server/badge/ws/MeasureActionTest.java | 2 +- .../ws/ProjectMeasuresQueryFactoryTest.java | 3 +- .../ws/SearchProjectsActionTest.java | 41 ++-- .../ProjectConfigurationFactoryTest.java | 3 +- .../ConfigurationRepositoryTest.java | 2 +- .../formula/counter/RatingValueTest.java | 10 +- .../issue/RuleRepositoryImplTest.java | 1 + .../issue/RuleRepositoryRule.java | 1 + .../measure/BestValueOptimizationTest.java | 4 +- ...PostMeasuresComputationChecksStepTest.java | 6 +- .../MaintainabilityMeasuresVisitorTest.java | 8 +- ...NewMaintainabilityMeasuresVisitorTest.java | 6 +- ...yAndSecurityRatingMeasuresVisitorTest.java | 11 +- ...yAndSecurityRatingMeasuresVisitorTest.java | 11 +- .../step/PersistExternalRulesStepTest.java | 2 +- .../DebtRatingGridTest.java | 12 +- .../IssueMetricFormulaFactoryImplTest.java | 4 +- .../live/LiveMeasureComputerImplTest.java | 2 +- .../measure/ws/ComponentActionTest.java | 42 ++-- .../qualitygate/ConditionEvaluatorTest.java | 217 ------------------ .../server/rule/ExternalRuleCreatorTest.java | 7 +- .../issue => rule}/NewExternalRuleTest.java | 2 +- 50 files changed, 237 insertions(+), 407 deletions(-) rename server/sonar-server/src/main/java/org/sonar/{ce/settings => server/computation/task/projectanalysis/analysis}/ProjectConfigurationFactory.java (95%) rename server/sonar-server/src/main/java/org/sonar/server/computation/task/{step => projectanalysis/measure}/PostMeasuresComputationCheck.java (96%) rename server/sonar-server/src/main/java/org/sonar/server/computation/task/{step => projectanalysis/measure}/PostMeasuresComputationChecksStep.java (94%) rename server/sonar-server/src/main/java/org/sonar/server/{computation/task/projectanalysis/qualitymodel => measure}/DebtRatingGrid.java (87%) rename server/sonar-server/src/main/java/org/sonar/server/{computation/task/projectanalysis/qualitymodel => measure}/Rating.java (96%) create mode 100644 server/sonar-server/src/main/java/org/sonar/server/measure/package-info.java rename server/sonar-server/src/main/java/org/sonar/server/{computation/task/projectanalysis/issue => rule}/NewExternalRule.java (71%) rename server/sonar-server/src/test/java/org/sonar/{ce/settings => server/computation/task/projectanalysis/analysis}/ProjectConfigurationFactoryTest.java (98%) rename server/sonar-server/src/test/java/org/sonar/server/computation/task/{step => projectanalysis/measure}/PostMeasuresComputationChecksStepTest.java (96%) rename server/sonar-server/src/test/java/org/sonar/server/{computation/task/projectanalysis/qualitymodel => measure}/DebtRatingGridTest.java (86%) rename server/sonar-server/src/test/java/org/sonar/server/{computation/task/projectanalysis/issue => rule}/NewExternalRuleTest.java (96%) diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java index 061785baef5..6039f9f9d26 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java @@ -57,7 +57,7 @@ import org.sonar.ce.platform.CECoreExtensionsInstaller; import org.sonar.ce.platform.ComputeEngineExtensionInstaller; import org.sonar.ce.queue.CeQueueCleaner; import org.sonar.ce.queue.PurgeCeActivities; -import org.sonar.ce.settings.ProjectConfigurationFactory; +import org.sonar.server.computation.task.projectanalysis.analysis.ProjectConfigurationFactory; import org.sonar.ce.taskprocessor.CeProcessingScheduler; import org.sonar.ce.taskprocessor.CeTaskProcessorModule; import org.sonar.ce.user.CeUserSession; diff --git a/server/sonar-server/src/main/java/org/sonar/server/badge/ws/MeasureAction.java b/server/sonar-server/src/main/java/org/sonar/server/badge/ws/MeasureAction.java index 462fcd9b90c..645fe3cc9a8 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/badge/ws/MeasureAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/badge/ws/MeasureAction.java @@ -38,7 +38,7 @@ import org.sonar.db.component.ComponentDto; import org.sonar.db.measure.LiveMeasureDto; import org.sonar.db.metric.MetricDto; import org.sonar.server.badge.ws.SvgGenerator.Color; -import org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating; +import org.sonar.server.measure.Rating; import org.sonar.server.exceptions.ForbiddenException; import org.sonar.server.exceptions.NotFoundException; @@ -67,12 +67,12 @@ import static org.sonar.server.badge.ws.ETagUtils.getETag; import static org.sonar.server.badge.ws.SvgFormatter.formatDuration; import static org.sonar.server.badge.ws.SvgFormatter.formatNumeric; import static org.sonar.server.badge.ws.SvgFormatter.formatPercent; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.A; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.B; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.C; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.D; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.E; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.valueOf; +import static org.sonar.server.measure.Rating.A; +import static org.sonar.server.measure.Rating.B; +import static org.sonar.server.measure.Rating.C; +import static org.sonar.server.measure.Rating.D; +import static org.sonar.server.measure.Rating.E; +import static org.sonar.server.measure.Rating.valueOf; import static org.sonarqube.ws.MediaTypes.SVG; public class MeasureAction implements ProjectBadgesWsAction { diff --git a/server/sonar-server/src/main/java/org/sonar/ce/settings/ProjectConfigurationFactory.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/analysis/ProjectConfigurationFactory.java similarity index 95% rename from server/sonar-server/src/main/java/org/sonar/ce/settings/ProjectConfigurationFactory.java rename to server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/analysis/ProjectConfigurationFactory.java index c750ecabe2b..4cb040efd85 100644 --- a/server/sonar-server/src/main/java/org/sonar/ce/settings/ProjectConfigurationFactory.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/analysis/ProjectConfigurationFactory.java @@ -17,7 +17,7 @@ * 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.ce.settings; +package org.sonar.server.computation.task.projectanalysis.analysis; import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.config.Configuration; @@ -25,7 +25,6 @@ import org.sonar.api.config.Settings; import org.sonar.api.config.internal.ConfigurationBridge; import org.sonar.db.DbClient; import org.sonar.db.component.BranchType; -import org.sonar.server.computation.task.projectanalysis.analysis.Branch; import org.sonar.server.settings.ChildSettings; import static org.sonar.db.component.ComponentDto.generateBranchKey; diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/component/ConfigurationRepositoryImpl.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/component/ConfigurationRepositoryImpl.java index 4383d76ba7a..736bf014cfa 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/component/ConfigurationRepositoryImpl.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/component/ConfigurationRepositoryImpl.java @@ -22,7 +22,7 @@ package org.sonar.server.computation.task.projectanalysis.component; import com.google.common.base.Supplier; import com.google.common.base.Suppliers; import org.sonar.api.config.Configuration; -import org.sonar.ce.settings.ProjectConfigurationFactory; +import org.sonar.server.computation.task.projectanalysis.analysis.ProjectConfigurationFactory; import org.sonar.server.computation.task.projectanalysis.analysis.AnalysisMetadataHolder; /** diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/formula/counter/RatingValue.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/formula/counter/RatingValue.java index 03077e12a64..39ce513fd44 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/formula/counter/RatingValue.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/formula/counter/RatingValue.java @@ -20,7 +20,7 @@ package org.sonar.server.computation.task.projectanalysis.formula.counter; import javax.annotation.Nullable; -import org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating; +import org.sonar.server.measure.Rating; /** * Convenience class wrapping a rating to compute the value and know it is has ever been set. diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepository.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepository.java index adb1dd8d18e..1831b74b8a1 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepository.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepository.java @@ -23,6 +23,7 @@ import java.util.Optional; import java.util.function.Supplier; import org.sonar.api.rule.RuleKey; import org.sonar.db.DbSession; +import org.sonar.server.rule.NewExternalRule; /** * Repository of every rule in DB (including manual rules) whichever their status. diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepositoryImpl.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepositoryImpl.java index b29dea960cd..1c3f13cf700 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepositoryImpl.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepositoryImpl.java @@ -20,12 +20,17 @@ package org.sonar.server.computation.task.projectanalysis.issue; import com.google.common.collect.Multimap; +import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.function.Supplier; import javax.annotation.CheckForNull; import org.sonar.api.rule.RuleKey; +import org.sonar.api.rule.RuleStatus; +import org.sonar.api.rules.RuleType; +import org.sonar.api.server.debt.DebtRemediationFunction; import org.sonar.core.util.stream.MoreCollectors; import org.sonar.db.DbClient; import org.sonar.db.DbSession; @@ -33,6 +38,7 @@ import org.sonar.db.rule.DeprecatedRuleKeyDto; import org.sonar.db.rule.RuleDto; import org.sonar.server.computation.task.projectanalysis.analysis.AnalysisMetadataHolder; import org.sonar.server.rule.ExternalRuleCreator; +import org.sonar.server.rule.NewExternalRule; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; @@ -58,7 +64,7 @@ public class RuleRepositoryImpl implements RuleRepository { ensureInitialized(); if (!rulesByKey.containsKey(ruleKey)) { - rulesByKey.computeIfAbsent(ruleKey, s -> ruleSupplier.get()); + rulesByKey.computeIfAbsent(ruleKey, s -> new ExternalRuleWrapper(ruleSupplier.get())); } } @@ -67,12 +73,12 @@ public class RuleRepositoryImpl implements RuleRepository { ensureInitialized(); rulesByKey.values().stream() - .filter(NewExternalRule.class::isInstance) - .forEach(extRule -> persistAndIndex(dbSession, (NewExternalRule) extRule)); + .filter(ExternalRuleWrapper.class::isInstance) + .forEach(extRule -> persistAndIndex(dbSession, (ExternalRuleWrapper) extRule)); } - private void persistAndIndex(DbSession dbSession, NewExternalRule external) { - Rule rule = creator.persistAndIndex(dbSession, external); + private void persistAndIndex(DbSession dbSession, ExternalRuleWrapper external) { + Rule rule = new RuleImpl(creator.persistAndIndex(dbSession, external.getDelegate())); rulesById.put(rule.getId(), rule); rulesByKey.put(external.getKey(), rule); } @@ -139,4 +145,63 @@ public class RuleRepositoryImpl implements RuleRepository { } } + private static class ExternalRuleWrapper implements Rule { + private final NewExternalRule externalRule; + + private ExternalRuleWrapper(NewExternalRule externalRule) { + this.externalRule = externalRule; + } + + public NewExternalRule getDelegate() { + return externalRule; + } + + @Override + public int getId() { + return 0; + } + + @Override + public RuleKey getKey() { + return externalRule.getKey(); + } + + @Override + public String getName() { + return externalRule.getName(); + } + + @Override + public RuleStatus getStatus() { + return RuleStatus.defaultStatus(); + } + + @Override + @CheckForNull + public RuleType getType() { + return null; + } + + @Override + public boolean isExternal() { + return true; + } + + @Override + public Set getTags() { + return Collections.emptySet(); + } + + @CheckForNull + @Override + public DebtRemediationFunction getRemediationFunction() { + return null; + } + + @CheckForNull + @Override + public String getPluginKey() { + return externalRule.getPluginKey(); + } + } } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/TrackerRawInputFactory.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/TrackerRawInputFactory.java index cb5b312638d..d3e9d2f157a 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/TrackerRawInputFactory.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/TrackerRawInputFactory.java @@ -46,6 +46,7 @@ import org.sonar.server.computation.task.projectanalysis.issue.filter.IssueFilte import org.sonar.server.computation.task.projectanalysis.qualityprofile.ActiveRulesHolder; import org.sonar.server.computation.task.projectanalysis.source.SourceLinesHashRepository; import org.sonar.server.rule.CommonRuleKeys; +import org.sonar.server.rule.NewExternalRule; import static org.apache.commons.lang.StringUtils.isNotEmpty; diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/step/PostMeasuresComputationCheck.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/measure/PostMeasuresComputationCheck.java similarity index 96% rename from server/sonar-server/src/main/java/org/sonar/server/computation/task/step/PostMeasuresComputationCheck.java rename to server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/measure/PostMeasuresComputationCheck.java index 2ba9c1ca31d..967778694b7 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/step/PostMeasuresComputationCheck.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/measure/PostMeasuresComputationCheck.java @@ -17,7 +17,7 @@ * 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.task.step; +package org.sonar.server.computation.task.projectanalysis.measure; import org.sonar.api.ExtensionPoint; import org.sonar.api.ce.ComputeEngineSide; diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/step/PostMeasuresComputationChecksStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/measure/PostMeasuresComputationChecksStep.java similarity index 94% rename from server/sonar-server/src/main/java/org/sonar/server/computation/task/step/PostMeasuresComputationChecksStep.java rename to server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/measure/PostMeasuresComputationChecksStep.java index 844643fa22e..b03e3e39ba1 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/step/PostMeasuresComputationChecksStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/measure/PostMeasuresComputationChecksStep.java @@ -17,17 +17,16 @@ * 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.task.step; +package org.sonar.server.computation.task.projectanalysis.measure; import com.google.common.base.Optional; import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.measures.CoreMetrics; import org.sonar.server.computation.task.projectanalysis.analysis.AnalysisMetadataHolder; import org.sonar.server.computation.task.projectanalysis.component.TreeRootHolder; -import org.sonar.server.computation.task.projectanalysis.measure.Measure; -import org.sonar.server.computation.task.projectanalysis.measure.MeasureRepository; import org.sonar.server.computation.task.projectanalysis.metric.Metric; import org.sonar.server.computation.task.projectanalysis.metric.MetricRepository; +import org.sonar.server.computation.task.step.ComputationStep; /** * Execute {@link PostMeasuresComputationCheck} instances in no specific order. diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/MaintainabilityMeasuresVisitor.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/MaintainabilityMeasuresVisitor.java index e707df6d9fc..ae5deada236 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/MaintainabilityMeasuresVisitor.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/MaintainabilityMeasuresVisitor.java @@ -29,6 +29,7 @@ import org.sonar.server.computation.task.projectanalysis.measure.Measure; import org.sonar.server.computation.task.projectanalysis.measure.MeasureRepository; import org.sonar.server.computation.task.projectanalysis.metric.Metric; import org.sonar.server.computation.task.projectanalysis.metric.MetricRepository; +import org.sonar.server.measure.Rating; import static org.sonar.api.measures.CoreMetrics.DEVELOPMENT_COST_KEY; import static org.sonar.api.measures.CoreMetrics.EFFORT_TO_REACH_MAINTAINABILITY_RATING_A_KEY; diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/NewReliabilityAndSecurityRatingMeasuresVisitor.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/NewReliabilityAndSecurityRatingMeasuresVisitor.java index b683fab8ceb..9b518b502b8 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/NewReliabilityAndSecurityRatingMeasuresVisitor.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/NewReliabilityAndSecurityRatingMeasuresVisitor.java @@ -33,6 +33,7 @@ import org.sonar.server.computation.task.projectanalysis.metric.Metric; import org.sonar.server.computation.task.projectanalysis.metric.MetricRepository; import org.sonar.server.computation.task.projectanalysis.period.Period; import org.sonar.server.computation.task.projectanalysis.period.PeriodHolder; +import org.sonar.server.measure.Rating; import static org.sonar.api.measures.CoreMetrics.NEW_RELIABILITY_RATING_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_SECURITY_RATING_KEY; @@ -48,11 +49,11 @@ import static org.sonar.server.computation.task.projectanalysis.component.Compon import static org.sonar.server.computation.task.projectanalysis.component.CrawlerDepthLimit.LEAVES; import static org.sonar.server.computation.task.projectanalysis.measure.Measure.newMeasureBuilder; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.A; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.B; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.C; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.D; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.E; +import static org.sonar.server.measure.Rating.A; +import static org.sonar.server.measure.Rating.B; +import static org.sonar.server.measure.Rating.C; +import static org.sonar.server.measure.Rating.D; +import static org.sonar.server.measure.Rating.E; /** * Compute following measures : diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/RatingSettings.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/RatingSettings.java index 023875ff2b8..8be66d201b0 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/RatingSettings.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/RatingSettings.java @@ -27,6 +27,7 @@ import javax.annotation.concurrent.Immutable; import org.sonar.api.ce.ComputeEngineSide; import org.sonar.api.config.Configuration; import org.sonar.api.utils.MessageException; +import org.sonar.server.measure.DebtRatingGrid; import static java.lang.String.format; import static org.sonar.api.CoreProperties.DEVELOPMENT_COST; diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/ReliabilityAndSecurityRatingMeasuresVisitor.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/ReliabilityAndSecurityRatingMeasuresVisitor.java index b9d55d835ff..673129894c0 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/ReliabilityAndSecurityRatingMeasuresVisitor.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/ReliabilityAndSecurityRatingMeasuresVisitor.java @@ -29,6 +29,7 @@ import org.sonar.server.computation.task.projectanalysis.issue.ComponentIssuesRe import org.sonar.server.computation.task.projectanalysis.measure.MeasureRepository; import org.sonar.server.computation.task.projectanalysis.metric.Metric; import org.sonar.server.computation.task.projectanalysis.metric.MetricRepository; +import org.sonar.server.measure.Rating; import static org.sonar.api.measures.CoreMetrics.RELIABILITY_RATING_KEY; import static org.sonar.api.measures.CoreMetrics.SECURITY_RATING_KEY; @@ -37,7 +38,7 @@ import static org.sonar.api.rules.RuleType.VULNERABILITY; import static org.sonar.server.computation.task.projectanalysis.component.ComponentVisitor.Order.POST_ORDER; import static org.sonar.server.computation.task.projectanalysis.component.CrawlerDepthLimit.FILE; import static org.sonar.server.computation.task.projectanalysis.measure.Measure.newMeasureBuilder; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.RATING_BY_SEVERITY; +import static org.sonar.server.measure.Rating.RATING_BY_SEVERITY; /** * Compute following measures for projects and descendants: diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/ReportComputationSteps.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/ReportComputationSteps.java index e75c98dba74..b28b1a144bd 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/ReportComputationSteps.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/ReportComputationSteps.java @@ -25,7 +25,7 @@ import org.sonar.server.computation.task.container.TaskContainer; import org.sonar.server.computation.task.projectanalysis.filemove.FileMoveDetectionStep; import org.sonar.server.computation.task.step.ComputationStep; import org.sonar.server.computation.task.step.ExecuteStatelessInitExtensionsStep; -import org.sonar.server.computation.task.step.PostMeasuresComputationChecksStep; +import org.sonar.server.computation.task.projectanalysis.measure.PostMeasuresComputationChecksStep; /** * Ordered list of steps classes and instances to be executed for batch processing diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/step/ComputationStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/step/ComputationStep.java index c65b3f706bb..f8fd66fe961 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/step/ComputationStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/step/ComputationStep.java @@ -19,10 +19,9 @@ */ package org.sonar.server.computation.task.step; -import org.sonar.server.computation.task.projectanalysis.step.ReportComputationSteps; - /** - * Implementations must be declared into {@link ReportComputationSteps#orderedStepClasses()} + * A way of splitting the processing of a task into smaller items which can be executed sequencially + * by {@link ComputationStepExecutor}. */ public interface ComputationStep { diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/DebtRatingGrid.java b/server/sonar-server/src/main/java/org/sonar/server/measure/DebtRatingGrid.java similarity index 87% rename from server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/DebtRatingGrid.java rename to server/sonar-server/src/main/java/org/sonar/server/measure/DebtRatingGrid.java index 30e0cf2519e..faac02fc016 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/DebtRatingGrid.java +++ b/server/sonar-server/src/main/java/org/sonar/server/measure/DebtRatingGrid.java @@ -17,7 +17,7 @@ * 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.task.projectanalysis.qualitymodel; +package org.sonar.server.measure; import com.google.common.annotations.VisibleForTesting; import java.util.Arrays; @@ -29,11 +29,11 @@ import static com.google.common.base.Preconditions.checkState; import static java.lang.String.format; import static org.sonar.api.CoreProperties.RATING_GRID; import static org.sonar.api.CoreProperties.RATING_GRID_DEF_VALUES; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.A; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.B; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.C; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.D; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.E; +import static org.sonar.server.measure.Rating.A; +import static org.sonar.server.measure.Rating.B; +import static org.sonar.server.measure.Rating.C; +import static org.sonar.server.measure.Rating.D; +import static org.sonar.server.measure.Rating.E; public class DebtRatingGrid { @@ -86,7 +86,7 @@ public class DebtRatingGrid { } @VisibleForTesting - double[] getGridValues() { + public double[] getGridValues() { return gridValues; } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/Rating.java b/server/sonar-server/src/main/java/org/sonar/server/measure/Rating.java similarity index 96% rename from server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/Rating.java rename to server/sonar-server/src/main/java/org/sonar/server/measure/Rating.java index 82e37937c34..873f682f998 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/Rating.java +++ b/server/sonar-server/src/main/java/org/sonar/server/measure/Rating.java @@ -17,7 +17,7 @@ * 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.task.projectanalysis.qualitymodel; +package org.sonar.server.measure; import com.google.common.collect.ImmutableMap; import java.util.Map; diff --git a/server/sonar-server/src/main/java/org/sonar/server/measure/live/IssueMetricFormula.java b/server/sonar-server/src/main/java/org/sonar/server/measure/live/IssueMetricFormula.java index 521e65be629..9b3630e7519 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/measure/live/IssueMetricFormula.java +++ b/server/sonar-server/src/main/java/org/sonar/server/measure/live/IssueMetricFormula.java @@ -24,8 +24,8 @@ import java.util.Optional; import java.util.function.BiConsumer; import org.sonar.api.measures.Metric; import org.sonar.db.component.ComponentDto; -import org.sonar.server.computation.task.projectanalysis.qualitymodel.DebtRatingGrid; -import org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating; +import org.sonar.server.measure.DebtRatingGrid; +import org.sonar.server.measure.Rating; import static java.util.Collections.emptyList; diff --git a/server/sonar-server/src/main/java/org/sonar/server/measure/live/IssueMetricFormulaFactoryImpl.java b/server/sonar-server/src/main/java/org/sonar/server/measure/live/IssueMetricFormulaFactoryImpl.java index 4044e5d7ea4..def6ce168c0 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/measure/live/IssueMetricFormulaFactoryImpl.java +++ b/server/sonar-server/src/main/java/org/sonar/server/measure/live/IssueMetricFormulaFactoryImpl.java @@ -27,10 +27,10 @@ import org.sonar.api.measures.CoreMetrics; import org.sonar.api.measures.Metric; import org.sonar.api.rule.Severity; import org.sonar.api.rules.RuleType; -import org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating; +import org.sonar.server.measure.Rating; import static java.util.Arrays.asList; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.RATING_BY_SEVERITY; +import static org.sonar.server.measure.Rating.RATING_BY_SEVERITY; public class IssueMetricFormulaFactoryImpl implements IssueMetricFormulaFactory { diff --git a/server/sonar-server/src/main/java/org/sonar/server/measure/live/LiveMeasureComputerImpl.java b/server/sonar-server/src/main/java/org/sonar/server/measure/live/LiveMeasureComputerImpl.java index 9974d3eca3c..7fc29cb154d 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/measure/live/LiveMeasureComputerImpl.java +++ b/server/sonar-server/src/main/java/org/sonar/server/measure/live/LiveMeasureComputerImpl.java @@ -39,8 +39,8 @@ import org.sonar.db.component.SnapshotDto; import org.sonar.db.measure.LiveMeasureDto; import org.sonar.db.metric.MetricDto; import org.sonar.db.organization.OrganizationDto; -import org.sonar.server.computation.task.projectanalysis.qualitymodel.DebtRatingGrid; -import org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating; +import org.sonar.server.measure.DebtRatingGrid; +import org.sonar.server.measure.Rating; import org.sonar.server.es.ProjectIndexer; import org.sonar.server.es.ProjectIndexers; import org.sonar.server.qualitygate.EvaluatedQualityGate; diff --git a/server/sonar-server/src/main/java/org/sonar/server/measure/live/MeasureMatrix.java b/server/sonar-server/src/main/java/org/sonar/server/measure/live/MeasureMatrix.java index 0dad8f5b745..353dd117ff9 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/measure/live/MeasureMatrix.java +++ b/server/sonar-server/src/main/java/org/sonar/server/measure/live/MeasureMatrix.java @@ -36,7 +36,7 @@ import javax.annotation.Nullable; import org.sonar.db.component.ComponentDto; import org.sonar.db.measure.LiveMeasureDto; import org.sonar.db.metric.MetricDto; -import org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating; +import org.sonar.server.measure.Rating; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; diff --git a/server/sonar-server/src/main/java/org/sonar/server/measure/package-info.java b/server/sonar-server/src/main/java/org/sonar/server/measure/package-info.java new file mode 100644 index 00000000000..16ec2482de6 --- /dev/null +++ b/server/sonar-server/src/main/java/org/sonar/server/measure/package-info.java @@ -0,0 +1,23 @@ +/* + * SonarQube + * Copyright (C) 2009-2018 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program 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. + * + * This program 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. + */ +@ParametersAreNonnullByDefault +package org.sonar.server.measure; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java b/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java index 4cf3c4492d0..3b9dc86758c 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java +++ b/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java @@ -30,7 +30,6 @@ import org.sonar.api.rules.XMLRuleParser; import org.sonar.api.server.rule.RulesDefinitionXmlLoader; import org.sonar.ce.CeModule; import org.sonar.ce.notification.ReportAnalysisFailureNotificationModule; -import org.sonar.ce.settings.ProjectConfigurationFactory; import org.sonar.core.component.DefaultResourceTypes; import org.sonar.core.extension.CoreExtensionsInstaller; import org.sonar.core.platform.ComponentContainer; @@ -551,7 +550,6 @@ public class PlatformLevel4 extends PlatformLevel { PlatformEditionProvider.class, InternalPropertiesImpl.class, - ProjectConfigurationFactory.class, // UI NavigationWsModule.class, diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGateConditionsUpdater.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGateConditionsUpdater.java index 0a70ed55ad6..40e26606a8e 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGateConditionsUpdater.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGateConditionsUpdater.java @@ -34,7 +34,7 @@ import org.sonar.db.DbSession; import org.sonar.db.metric.MetricDto; import org.sonar.db.qualitygate.QualityGateConditionDto; import org.sonar.db.qualitygate.QualityGateDto; -import org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating; +import org.sonar.server.measure.Rating; import org.sonar.server.exceptions.NotFoundException; import static com.google.common.base.Strings.isNullOrEmpty; @@ -46,7 +46,7 @@ import static java.util.Arrays.stream; import static org.sonar.api.measures.Metric.ValueType.RATING; import static org.sonar.api.measures.Metric.ValueType.valueOf; import static org.sonar.db.qualitygate.QualityGateConditionDto.isOperatorAllowed; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.E; +import static org.sonar.server.measure.Rating.E; import static org.sonar.server.qualitygate.ValidRatingMetrics.isCoreRatingMetric; import static org.sonar.server.ws.WsUtils.checkRequest; diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/RegisterQualityGates.java b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/RegisterQualityGates.java index 3effb8aa841..5b9a6517850 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualitygate/RegisterQualityGates.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualitygate/RegisterQualityGates.java @@ -39,7 +39,7 @@ import org.sonar.db.qualitygate.QualityGateConditionDao; import org.sonar.db.qualitygate.QualityGateConditionDto; import org.sonar.db.qualitygate.QualityGateDao; import org.sonar.db.qualitygate.QualityGateDto; -import org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating; +import org.sonar.server.measure.Rating; import static java.util.Arrays.asList; import static java.util.stream.Collectors.toMap; diff --git a/server/sonar-server/src/main/java/org/sonar/server/rule/ExternalRuleCreator.java b/server/sonar-server/src/main/java/org/sonar/server/rule/ExternalRuleCreator.java index 30ee1919563..9044ebff3a1 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/rule/ExternalRuleCreator.java +++ b/server/sonar-server/src/main/java/org/sonar/server/rule/ExternalRuleCreator.java @@ -24,9 +24,7 @@ import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.rule.RuleDao; import org.sonar.db.rule.RuleDefinitionDto; -import org.sonar.server.computation.task.projectanalysis.issue.NewExternalRule; -import org.sonar.server.computation.task.projectanalysis.issue.Rule; -import org.sonar.server.computation.task.projectanalysis.issue.RuleImpl; +import org.sonar.db.rule.RuleDto; import org.sonar.server.rule.index.RuleIndexer; import static org.sonar.api.rule.RuleStatus.READY; @@ -48,21 +46,21 @@ public class ExternalRuleCreator { * Persists a rule in the DB and indexes it. * @return the rule that was inserted in the DB, which includes the generated ID. */ - public Rule persistAndIndex(DbSession dbSession, NewExternalRule external) { + public RuleDto persistAndIndex(DbSession dbSession, NewExternalRule external) { RuleDao dao = dbClient.ruleDao(); dao.insert(dbSession, new RuleDefinitionDto() .setRuleKey(external.getKey()) .setPluginKey(external.getPluginKey()) - .setIsExternal(external.isExternal()) + .setIsExternal(true) .setName(external.getName()) .setScope(ALL) .setStatus(READY) .setCreatedAt(system2.now()) .setUpdatedAt(system2.now())); - Rule newRule = new RuleImpl(dao.selectOrFailByKey(dbSession, external.getKey())); - ruleIndexer.commitAndIndex(dbSession, newRule.getId()); - return newRule; + RuleDto ruleDto = dao.selectOrFailByKey(dbSession, external.getKey()); + ruleIndexer.commitAndIndex(dbSession, ruleDto.getId()); + return ruleDto; } } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/NewExternalRule.java b/server/sonar-server/src/main/java/org/sonar/server/rule/NewExternalRule.java similarity index 71% rename from server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/NewExternalRule.java rename to server/sonar-server/src/main/java/org/sonar/server/rule/NewExternalRule.java index 1be91e3b605..a968a43d7ac 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/issue/NewExternalRule.java +++ b/server/sonar-server/src/main/java/org/sonar/server/rule/NewExternalRule.java @@ -17,19 +17,14 @@ * 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.task.projectanalysis.issue; +package org.sonar.server.rule; -import java.util.Collections; import java.util.Objects; -import java.util.Set; import javax.annotation.concurrent.Immutable; import org.sonar.api.rule.RuleKey; -import org.sonar.api.rule.RuleStatus; -import org.sonar.api.rules.RuleType; -import org.sonar.api.server.debt.DebtRemediationFunction; @Immutable -public class NewExternalRule implements Rule { +public class NewExternalRule { private final RuleKey key; private final String name; private final String pluginKey; @@ -41,47 +36,14 @@ public class NewExternalRule implements Rule { this.name = builder.name; } - @Override - public int getId() { - return 0; - } - - @Override public RuleKey getKey() { return key; } - @Override public String getName() { return name; } - @Override - public RuleStatus getStatus() { - return RuleStatus.defaultStatus(); - } - - @Override - public RuleType getType() { - return null; - } - - @Override - public boolean isExternal() { - return true; - } - - @Override - public Set getTags() { - return Collections.emptySet(); - } - - @Override - public DebtRemediationFunction getRemediationFunction() { - return null; - } - - @Override public String getPluginKey() { return pluginKey; } diff --git a/server/sonar-server/src/test/java/org/sonar/server/badge/ws/MeasureActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/badge/ws/MeasureActionTest.java index 31c2d4e277d..b45408a3604 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/badge/ws/MeasureActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/badge/ws/MeasureActionTest.java @@ -44,7 +44,7 @@ import org.sonar.db.organization.OrganizationDto; import org.sonar.db.user.UserDto; import org.sonar.server.badge.ws.SvgGenerator.Color; import org.sonar.server.component.ComponentFinder; -import org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating; +import org.sonar.server.measure.Rating; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.ws.TestResponse; import org.sonar.server.ws.WsActionTester; diff --git a/server/sonar-server/src/test/java/org/sonar/server/component/ws/ProjectMeasuresQueryFactoryTest.java b/server/sonar-server/src/test/java/org/sonar/server/component/ws/ProjectMeasuresQueryFactoryTest.java index a96461d7531..8838ddfc864 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/component/ws/ProjectMeasuresQueryFactoryTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/component/ws/ProjectMeasuresQueryFactoryTest.java @@ -42,7 +42,6 @@ import static org.sonar.server.component.ws.FilterParser.Operator.IN; import static org.sonar.server.component.ws.FilterParser.Operator.LT; import static org.sonar.server.component.ws.FilterParser.Operator.LTE; import static org.sonar.server.component.ws.ProjectMeasuresQueryFactory.newProjectMeasuresQuery; -import static org.sonar.server.computation.task.projectanalysis.measure.Measure.Level.OK; public class ProjectMeasuresQueryFactoryTest { @@ -98,7 +97,7 @@ public class ProjectMeasuresQueryFactoryTest { ProjectMeasuresQuery query = newProjectMeasuresQuery(singletonList(Criterion.builder().setKey("alert_status").setOperator(EQ).setValue("OK").build()), emptySet()); - assertThat(query.getQualityGateStatus().get().name()).isEqualTo(OK.name()); + assertThat(query.getQualityGateStatus().get().name()).isEqualTo("OK"); } @Test diff --git a/server/sonar-server/src/test/java/org/sonar/server/component/ws/SearchProjectsActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/component/ws/SearchProjectsActionTest.java index 4f753a407ad..a91189f110c 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/component/ws/SearchProjectsActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/component/ws/SearchProjectsActionTest.java @@ -83,9 +83,6 @@ import static org.sonar.api.server.ws.WebService.Param.PAGE_SIZE; import static org.sonar.api.server.ws.WebService.Param.SORT; import static org.sonar.api.utils.DateUtils.formatDateTime; import static org.sonar.core.util.stream.MoreCollectors.toList; -import static org.sonar.server.computation.task.projectanalysis.metric.Metric.MetricType.DATA; -import static org.sonar.server.computation.task.projectanalysis.metric.Metric.MetricType.PERCENT; -import static org.sonar.server.computation.task.projectanalysis.metric.Metric.MetricType.RATING; import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001; import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_002; import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_003; @@ -199,7 +196,7 @@ public class SearchProjectsActionTest { OrganizationDto organization1Dto = db.organizations().insert(dto -> dto.setKey("my-org-key-1").setName("Foo")); OrganizationDto organization2Dto = db.organizations().insert(dto -> dto.setKey("my-org-key-2").setName("Bar")); - MetricDto coverage = db.measures().insertMetric(c -> c.setKey(COVERAGE).setValueType(PERCENT.name())); + MetricDto coverage = db.measures().insertMetric(c -> c.setKey(COVERAGE).setValueType("PERCENT")); ComponentDto project1 = insertProject(organization1Dto, c -> c .setDbKey(KEY_PROJECT_EXAMPLE_001) .setName("My Project 1") @@ -302,7 +299,7 @@ public class SearchProjectsActionTest { userSession.logIn(); OrganizationDto organization1 = db.organizations().insert(); OrganizationDto organization2 = db.organizations().insert(); - MetricDto coverage = db.measures().insertMetric(c -> c.setKey(COVERAGE).setValueType(PERCENT.name())); + MetricDto coverage = db.measures().insertMetric(c -> c.setKey(COVERAGE).setValueType("PERCENT")); MetricDto ncloc = db.measures().insertMetric(c -> c.setKey(NCLOC).setValueType(INT.name())); ComponentDto project1 = insertProject(organization1, new Measure(coverage, c -> c.setValue(81d)), new Measure(ncloc, c -> c.setValue(10_000d))); ComponentDto project2 = insertProject(organization1, new Measure(coverage, c -> c.setValue(80d)), new Measure(ncloc, c -> c.setValue(10_000d))); @@ -339,7 +336,7 @@ public class SearchProjectsActionTest { public void filter_projects_by_languages() { userSession.logIn(); OrganizationDto organizationDto = db.organizations().insert(); - MetricDto languagesDistribution = db.measures().insertMetric(c -> c.setKey(NCLOC_LANGUAGE_DISTRIBUTION_KEY).setValueType(DATA.name())); + MetricDto languagesDistribution = db.measures().insertMetric(c -> c.setKey(NCLOC_LANGUAGE_DISTRIBUTION_KEY).setValueType("DATA")); ComponentDto project1 = insertProject(organizationDto, new Measure(languagesDistribution, c -> c.setValue(null).setData("=2;java=6;xoo=18"))); ComponentDto project2 = insertProject(organizationDto, new Measure(languagesDistribution, c -> c.setValue(null).setData("java=3;xoo=9"))); ComponentDto project3 = insertProject(organizationDto, new Measure(languagesDistribution, c -> c.setValue(null).setData("xoo=1"))); @@ -397,7 +394,7 @@ public class SearchProjectsActionTest { public void filter_projects_by_coverage() { userSession.logIn(); OrganizationDto organizationDto = db.organizations().insert(); - MetricDto coverage = db.measures().insertMetric(c -> c.setKey(COVERAGE).setValueType(PERCENT.name())); + MetricDto coverage = db.measures().insertMetric(c -> c.setKey(COVERAGE).setValueType("PERCENT")); ComponentDto project1 = insertProject(organizationDto, new Measure(coverage, c -> c.setValue(80d))); ComponentDto project2 = insertProject(organizationDto, new Measure(coverage, c -> c.setValue(85d))); ComponentDto project3 = insertProject(organizationDto, new Measure(coverage, c -> c.setValue(10d))); @@ -411,7 +408,7 @@ public class SearchProjectsActionTest { public void filter_projects_by_new_coverage() { userSession.logIn(); OrganizationDto organizationDto = db.organizations().insert(); - MetricDto coverage = db.measures().insertMetric(c -> c.setKey(NEW_COVERAGE).setValueType(PERCENT.name())); + MetricDto coverage = db.measures().insertMetric(c -> c.setKey(NEW_COVERAGE).setValueType("PERCENT")); ComponentDto project1 = insertProject(organizationDto, new Measure(coverage, c -> c.setVariation(80d))); ComponentDto project2 = insertProject(organizationDto, new Measure(coverage, c -> c.setVariation(85d))); ComponentDto project3 = insertProject(organizationDto, new Measure(coverage, c -> c.setVariation(10d))); @@ -425,7 +422,7 @@ public class SearchProjectsActionTest { public void filter_projects_by_duplications() { userSession.logIn(); OrganizationDto organizationDto = db.organizations().insert(); - MetricDto duplications = db.measures().insertMetric(c -> c.setKey(DUPLICATED_LINES_DENSITY_KEY).setValueType(PERCENT.name())); + MetricDto duplications = db.measures().insertMetric(c -> c.setKey(DUPLICATED_LINES_DENSITY_KEY).setValueType("PERCENT")); ComponentDto project1 = insertProject(organizationDto, new Measure(duplications, c -> c.setValue(80d))); ComponentDto project2 = insertProject(organizationDto, new Measure(duplications, c -> c.setValue(85d))); ComponentDto project3 = insertProject(organizationDto, new Measure(duplications, c -> c.setValue(10d))); @@ -439,8 +436,8 @@ public class SearchProjectsActionTest { public void filter_projects_by_no_duplication() { userSession.logIn(); OrganizationDto organizationDto = db.organizations().insert(); - MetricDto coverage = db.measures().insertMetric(c -> c.setKey(COVERAGE).setValueType(PERCENT.name())); - MetricDto duplications = db.measures().insertMetric(c -> c.setKey(DUPLICATED_LINES_DENSITY_KEY).setValueType(PERCENT.name())); + MetricDto coverage = db.measures().insertMetric(c -> c.setKey(COVERAGE).setValueType("PERCENT")); + MetricDto duplications = db.measures().insertMetric(c -> c.setKey(DUPLICATED_LINES_DENSITY_KEY).setValueType("PERCENT")); ComponentDto project1 = insertProject(organizationDto, new Measure(coverage, c -> c.setValue(10d))); ComponentDto project2 = insertProject(organizationDto, new Measure(duplications, c -> c.setValue(0d))); ComponentDto project3 = insertProject(organizationDto, new Measure(duplications, c -> c.setValue(79d))); @@ -454,8 +451,8 @@ public class SearchProjectsActionTest { public void filter_projects_by_no_duplication_should_not_return_projects_with_duplication() { userSession.logIn(); OrganizationDto organizationDto = db.organizations().insert(); - MetricDto coverage = db.measures().insertMetric(c -> c.setKey(COVERAGE).setValueType(PERCENT.name())); - MetricDto duplications = db.measures().insertMetric(c -> c.setKey(DUPLICATED_LINES_DENSITY_KEY).setValueType(PERCENT.name())); + MetricDto coverage = db.measures().insertMetric(c -> c.setKey(COVERAGE).setValueType("PERCENT")); + MetricDto duplications = db.measures().insertMetric(c -> c.setKey(DUPLICATED_LINES_DENSITY_KEY).setValueType("PERCENT")); insertProject(organizationDto, new Measure(duplications, c -> c.setValue(10d)), new Measure(coverage, c -> c.setValue(50d))); SearchProjectsWsResponse result = call(request.setFilter("duplicated_lines_density = NO_DATA")); @@ -467,7 +464,7 @@ public class SearchProjectsActionTest { public void filter_projects_by_new_duplications() { userSession.logIn(); OrganizationDto organizationDto = db.organizations().insert(); - MetricDto newDuplications = db.measures().insertMetric(c -> c.setKey(NEW_DUPLICATED_LINES_DENSITY_KEY).setValueType(PERCENT.name())); + MetricDto newDuplications = db.measures().insertMetric(c -> c.setKey(NEW_DUPLICATED_LINES_DENSITY_KEY).setValueType("PERCENT")); ComponentDto project1 = insertProject(organizationDto, new Measure(newDuplications, c -> c.setVariation(80d))); ComponentDto project2 = insertProject(organizationDto, new Measure(newDuplications, c -> c.setVariation(85d))); ComponentDto project3 = insertProject(organizationDto, new Measure(newDuplications, c -> c.setVariation(10d))); @@ -635,7 +632,7 @@ public class SearchProjectsActionTest { public void return_languages_facet() { userSession.logIn(); OrganizationDto organizationDto = db.organizations().insert(); - MetricDto languagesDistribution = db.measures().insertMetric(c -> c.setKey(NCLOC_LANGUAGE_DISTRIBUTION_KEY).setValueType(DATA.name())); + MetricDto languagesDistribution = db.measures().insertMetric(c -> c.setKey(NCLOC_LANGUAGE_DISTRIBUTION_KEY).setValueType("DATA")); insertProject(organizationDto, new Measure(languagesDistribution, c -> c.setValue(null).setData("=2;java=6;xoo=18"))); insertProject(organizationDto, new Measure(languagesDistribution, c -> c.setValue(null).setData("java=5;xoo=19"))); insertProject(organizationDto, new Measure(languagesDistribution, c -> c.setValue(null).setData("xoo=1"))); @@ -658,7 +655,7 @@ public class SearchProjectsActionTest { public void return_languages_facet_with_language_having_no_project_if_language_is_in_filter() { userSession.logIn(); OrganizationDto organizationDto = db.organizations().insert(); - MetricDto languagesDistribution = db.measures().insertMetric(c -> c.setKey(NCLOC_LANGUAGE_DISTRIBUTION_KEY).setValueType(DATA.name())); + MetricDto languagesDistribution = db.measures().insertMetric(c -> c.setKey(NCLOC_LANGUAGE_DISTRIBUTION_KEY).setValueType("DATA")); insertProject(organizationDto, new Measure(languagesDistribution, c -> c.setValue(null).setData("=2;java=6"))); insertProject(organizationDto, new Measure(languagesDistribution, c -> c.setValue(null).setData("java=5"))); @@ -723,7 +720,7 @@ public class SearchProjectsActionTest { public void return_rating_facet(String ratingMetricKey) { userSession.logIn(); OrganizationDto organization = db.organizations().insert(); - MetricDto ratingMetric = db.measures().insertMetric(c -> c.setKey(ratingMetricKey).setValueType(RATING.name())); + MetricDto ratingMetric = db.measures().insertMetric(c -> c.setKey(ratingMetricKey).setValueType("RATING")); insertProject(organization, new Measure(ratingMetric, c -> c.setValue(1d))); insertProject(organization, new Measure(ratingMetric, c -> c.setValue(1d))); insertProject(organization, new Measure(ratingMetric, c -> c.setValue(3d))); @@ -749,7 +746,7 @@ public class SearchProjectsActionTest { public void return_new_rating_facet(String newRatingMetricKey) { userSession.logIn(); OrganizationDto organization = db.organizations().insert(); - MetricDto newRatingMetric = db.measures().insertMetric(c -> c.setKey(newRatingMetricKey).setValueType(RATING.name())); + MetricDto newRatingMetric = db.measures().insertMetric(c -> c.setKey(newRatingMetricKey).setValueType("RATING")); insertProject(organization, new Measure(newRatingMetric, c -> c.setVariation(1d))); insertProject(organization, new Measure(newRatingMetric, c -> c.setVariation(1d))); insertProject(organization, new Measure(newRatingMetric, c -> c.setVariation(3d))); @@ -774,7 +771,7 @@ public class SearchProjectsActionTest { public void return_coverage_facet() { userSession.logIn(); OrganizationDto organizationDto = db.organizations().insert(); - MetricDto coverage = db.measures().insertMetric(c -> c.setKey(COVERAGE).setValueType(PERCENT.name())); + MetricDto coverage = db.measures().insertMetric(c -> c.setKey(COVERAGE).setValueType("PERCENT")); insertProject(organizationDto); insertProject(organizationDto, new Measure(coverage, c -> c.setValue(80d))); insertProject(organizationDto, new Measure(coverage, c -> c.setValue(85d))); @@ -800,7 +797,7 @@ public class SearchProjectsActionTest { public void return_new_coverage_facet() { userSession.logIn(); OrganizationDto organizationDto = db.organizations().insert(); - MetricDto coverage = db.measures().insertMetric(c -> c.setKey(NEW_COVERAGE).setValueType(PERCENT.name())); + MetricDto coverage = db.measures().insertMetric(c -> c.setKey(NEW_COVERAGE).setValueType("PERCENT")); insertProject(organizationDto); insertProject(organizationDto, new Measure(coverage, c -> c.setVariation(80d))); insertProject(organizationDto, new Measure(coverage, c -> c.setVariation(85d))); @@ -826,7 +823,7 @@ public class SearchProjectsActionTest { public void return_duplications_facet() { userSession.logIn(); OrganizationDto organizationDto = db.organizations().insert(); - MetricDto coverage = db.measures().insertMetric(c -> c.setKey(DUPLICATED_LINES_DENSITY_KEY).setValueType(PERCENT.name())); + MetricDto coverage = db.measures().insertMetric(c -> c.setKey(DUPLICATED_LINES_DENSITY_KEY).setValueType("PERCENT")); insertProject(organizationDto, new Measure(coverage, c -> c.setValue(10d))); insertProject(organizationDto, new Measure(coverage, c -> c.setValue(15d))); insertProject(organizationDto, new Measure(coverage, c -> c.setValue(5d))); @@ -852,7 +849,7 @@ public class SearchProjectsActionTest { public void return_new_duplications_facet() { userSession.logIn(); OrganizationDto organizationDto = db.organizations().insert(); - MetricDto coverage = db.measures().insertMetric(c -> c.setKey(NEW_DUPLICATED_LINES_DENSITY_KEY).setValueType(PERCENT.name())); + MetricDto coverage = db.measures().insertMetric(c -> c.setKey(NEW_DUPLICATED_LINES_DENSITY_KEY).setValueType("PERCENT")); insertProject(organizationDto); insertProject(organizationDto, new Measure(coverage, c -> c.setVariation(10d))); insertProject(organizationDto, new Measure(coverage, c -> c.setVariation(15d))); diff --git a/server/sonar-server/src/test/java/org/sonar/ce/settings/ProjectConfigurationFactoryTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/analysis/ProjectConfigurationFactoryTest.java similarity index 98% rename from server/sonar-server/src/test/java/org/sonar/ce/settings/ProjectConfigurationFactoryTest.java rename to server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/analysis/ProjectConfigurationFactoryTest.java index b6f396ba539..a03901e726a 100644 --- a/server/sonar-server/src/test/java/org/sonar/ce/settings/ProjectConfigurationFactoryTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/analysis/ProjectConfigurationFactoryTest.java @@ -17,7 +17,7 @@ * 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.ce.settings; +package org.sonar.server.computation.task.projectanalysis.analysis; import org.junit.Rule; import org.junit.Test; @@ -25,7 +25,6 @@ import org.sonar.api.config.Configuration; import org.sonar.api.config.internal.MapSettings; import org.sonar.db.DbTester; import org.sonar.db.component.ComponentDto; -import org.sonar.server.computation.task.projectanalysis.analysis.Branch; import org.sonar.server.computation.task.projectanalysis.component.DefaultBranchImpl; import static org.assertj.core.api.Assertions.assertThat; diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/component/ConfigurationRepositoryTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/component/ConfigurationRepositoryTest.java index 810e19c0fab..7255a761b39 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/component/ConfigurationRepositoryTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/component/ConfigurationRepositoryTest.java @@ -25,7 +25,7 @@ import org.junit.Test; import org.sonar.api.config.Configuration; import org.sonar.api.config.internal.MapSettings; import org.sonar.api.utils.System2; -import org.sonar.ce.settings.ProjectConfigurationFactory; +import org.sonar.server.computation.task.projectanalysis.analysis.ProjectConfigurationFactory; import org.sonar.db.DbClient; import org.sonar.db.DbTester; import org.sonar.db.component.ComponentDto; diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/formula/counter/RatingValueTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/formula/counter/RatingValueTest.java index 742bb1d35e9..fc4a30459f1 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/formula/counter/RatingValueTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/formula/counter/RatingValueTest.java @@ -20,13 +20,13 @@ package org.sonar.server.computation.task.projectanalysis.formula.counter; import org.junit.Test; -import org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating; +import org.sonar.server.measure.Rating; import static org.assertj.core.api.Assertions.assertThat; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.A; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.B; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.C; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.D; +import static org.sonar.server.measure.Rating.A; +import static org.sonar.server.measure.Rating.B; +import static org.sonar.server.measure.Rating.C; +import static org.sonar.server.measure.Rating.D; public class RatingValueTest { diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepositoryImplTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepositoryImplTest.java index 910cd12458b..9cffff2f8f0 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepositoryImplTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepositoryImplTest.java @@ -38,6 +38,7 @@ import org.sonar.db.rule.RuleDefinitionDto; import org.sonar.db.rule.RuleDto; import org.sonar.server.computation.task.projectanalysis.analysis.AnalysisMetadataHolderRule; import org.sonar.server.rule.ExternalRuleCreator; +import org.sonar.server.rule.NewExternalRule; import org.sonar.server.rule.index.RuleIndexer; import static org.assertj.core.api.Assertions.assertThat; diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepositoryRule.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepositoryRule.java index 57300aca811..92ec30c8ebe 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepositoryRule.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/RuleRepositoryRule.java @@ -27,6 +27,7 @@ import java.util.function.Supplier; import org.junit.rules.ExternalResource; import org.sonar.api.rule.RuleKey; import org.sonar.db.DbSession; +import org.sonar.server.rule.NewExternalRule; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/measure/BestValueOptimizationTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/measure/BestValueOptimizationTest.java index e023123bc95..0814849dd52 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/measure/BestValueOptimizationTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/measure/BestValueOptimizationTest.java @@ -28,8 +28,8 @@ import org.sonar.server.computation.task.projectanalysis.metric.MetricImpl; import static org.assertj.core.api.Assertions.assertThat; import static org.sonar.server.computation.task.projectanalysis.measure.Measure.newMeasureBuilder; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.A; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.B; +import static org.sonar.server.measure.Rating.A; +import static org.sonar.server.measure.Rating.B; public class BestValueOptimizationTest { diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/step/PostMeasuresComputationChecksStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/measure/PostMeasuresComputationChecksStepTest.java similarity index 96% rename from server/sonar-server/src/test/java/org/sonar/server/computation/task/step/PostMeasuresComputationChecksStepTest.java rename to server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/measure/PostMeasuresComputationChecksStepTest.java index b7bf64abac1..f9a3579a980 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/step/PostMeasuresComputationChecksStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/measure/PostMeasuresComputationChecksStepTest.java @@ -17,7 +17,7 @@ * 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.task.step; +package org.sonar.server.computation.task.projectanalysis.measure; import org.junit.Rule; import org.junit.Test; @@ -27,10 +27,8 @@ import org.mockito.InOrder; import org.sonar.api.measures.CoreMetrics; import org.sonar.server.computation.task.projectanalysis.analysis.AnalysisMetadataHolderRule; import org.sonar.server.computation.task.projectanalysis.component.TreeRootHolderRule; -import org.sonar.server.computation.task.projectanalysis.measure.Measure; -import org.sonar.server.computation.task.projectanalysis.measure.MeasureRepositoryRule; +import org.sonar.server.computation.task.projectanalysis.measure.PostMeasuresComputationCheck.Context; import org.sonar.server.computation.task.projectanalysis.metric.MetricRepositoryRule; -import org.sonar.server.computation.task.step.PostMeasuresComputationCheck.Context; import org.sonar.server.project.Project; import static org.assertj.core.api.Assertions.assertThat; diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/MaintainabilityMeasuresVisitorTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/MaintainabilityMeasuresVisitorTest.java index f5ee683bf3b..261c257de2c 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/MaintainabilityMeasuresVisitorTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/MaintainabilityMeasuresVisitorTest.java @@ -31,6 +31,8 @@ import org.sonar.server.computation.task.projectanalysis.issue.ComponentIssuesRe import org.sonar.server.computation.task.projectanalysis.measure.Measure; import org.sonar.server.computation.task.projectanalysis.measure.MeasureRepositoryRule; import org.sonar.server.computation.task.projectanalysis.metric.MetricRepositoryRule; +import org.sonar.server.measure.DebtRatingGrid; +import org.sonar.server.measure.Rating; import static java.util.Collections.singletonList; import static org.assertj.core.api.Assertions.assertThat; @@ -56,9 +58,9 @@ import static org.sonar.server.computation.task.projectanalysis.component.Report import static org.sonar.server.computation.task.projectanalysis.measure.Measure.newMeasureBuilder; import static org.sonar.server.computation.task.projectanalysis.measure.MeasureRepoEntry.entryOf; import static org.sonar.server.computation.task.projectanalysis.measure.MeasureRepoEntry.toEntries; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.A; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.C; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.E; +import static org.sonar.server.measure.Rating.A; +import static org.sonar.server.measure.Rating.C; +import static org.sonar.server.measure.Rating.E; public class MaintainabilityMeasuresVisitorTest { diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/NewMaintainabilityMeasuresVisitorTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/NewMaintainabilityMeasuresVisitorTest.java index c9564da5bd0..85c0c128655 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/NewMaintainabilityMeasuresVisitorTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/NewMaintainabilityMeasuresVisitorTest.java @@ -43,6 +43,8 @@ import org.sonar.server.computation.task.projectanalysis.period.Period; import org.sonar.server.computation.task.projectanalysis.period.PeriodHolderRule; import org.sonar.server.computation.task.projectanalysis.scm.Changeset; import org.sonar.server.computation.task.projectanalysis.scm.ScmInfoRepositoryRule; +import org.sonar.server.measure.DebtRatingGrid; +import org.sonar.server.measure.Rating; import static com.google.common.base.Preconditions.checkArgument; import static org.mockito.Mockito.mock; @@ -63,8 +65,8 @@ import static org.sonar.server.computation.task.projectanalysis.component.Compon import static org.sonar.server.computation.task.projectanalysis.component.Component.Type.PROJECT; import static org.sonar.server.computation.task.projectanalysis.measure.Measure.newMeasureBuilder; import static org.sonar.server.computation.task.projectanalysis.measure.MeasureAssert.assertThat; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.A; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.D; +import static org.sonar.server.measure.Rating.A; +import static org.sonar.server.measure.Rating.D; public class NewMaintainabilityMeasuresVisitorTest { diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/NewReliabilityAndSecurityRatingMeasuresVisitorTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/NewReliabilityAndSecurityRatingMeasuresVisitorTest.java index 34c85fe1e4b..1346d176fcc 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/NewReliabilityAndSecurityRatingMeasuresVisitorTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/NewReliabilityAndSecurityRatingMeasuresVisitorTest.java @@ -39,6 +39,7 @@ import org.sonar.server.computation.task.projectanalysis.measure.MeasureReposito import org.sonar.server.computation.task.projectanalysis.metric.MetricRepositoryRule; import org.sonar.server.computation.task.projectanalysis.period.Period; import org.sonar.server.computation.task.projectanalysis.period.PeriodHolderRule; +import org.sonar.server.measure.Rating; import static org.assertj.core.api.Assertions.assertThat; import static org.sonar.api.issue.Issue.RESOLUTION_FIXED; @@ -60,11 +61,11 @@ import static org.sonar.server.computation.task.projectanalysis.component.Compon import static org.sonar.server.computation.task.projectanalysis.component.Component.Type.PROJECT; import static org.sonar.server.computation.task.projectanalysis.component.ReportComponent.builder; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.A; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.B; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.C; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.D; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.E; +import static org.sonar.server.measure.Rating.A; +import static org.sonar.server.measure.Rating.B; +import static org.sonar.server.measure.Rating.C; +import static org.sonar.server.measure.Rating.D; +import static org.sonar.server.measure.Rating.E; public class NewReliabilityAndSecurityRatingMeasuresVisitorTest { diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/ReliabilityAndSecurityRatingMeasuresVisitorTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/ReliabilityAndSecurityRatingMeasuresVisitorTest.java index 9582158a88f..722c37d8532 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/ReliabilityAndSecurityRatingMeasuresVisitorTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/ReliabilityAndSecurityRatingMeasuresVisitorTest.java @@ -37,6 +37,7 @@ import org.sonar.server.computation.task.projectanalysis.issue.FillComponentIssu import org.sonar.server.computation.task.projectanalysis.measure.Measure; import org.sonar.server.computation.task.projectanalysis.measure.MeasureRepositoryRule; import org.sonar.server.computation.task.projectanalysis.metric.MetricRepositoryRule; +import org.sonar.server.measure.Rating; import static org.assertj.core.api.Assertions.assertThat; import static org.sonar.api.issue.Issue.RESOLUTION_FIXED; @@ -61,11 +62,11 @@ import static org.sonar.server.computation.task.projectanalysis.measure.Measure. import static org.sonar.server.computation.task.projectanalysis.measure.MeasureRepoEntry.entryOf; import static org.sonar.server.computation.task.projectanalysis.measure.MeasureRepoEntry.toEntries; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.A; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.B; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.C; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.D; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.E; +import static org.sonar.server.measure.Rating.A; +import static org.sonar.server.measure.Rating.B; +import static org.sonar.server.measure.Rating.C; +import static org.sonar.server.measure.Rating.D; +import static org.sonar.server.measure.Rating.E; public class ReliabilityAndSecurityRatingMeasuresVisitorTest { diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/PersistExternalRulesStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/PersistExternalRulesStepTest.java index c265a91a82d..aefd8fb0244 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/PersistExternalRulesStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/PersistExternalRulesStepTest.java @@ -30,7 +30,7 @@ import org.sonar.db.DbTester; import org.sonar.db.rule.RuleDao; import org.sonar.db.rule.RuleDefinitionDto; import org.sonar.server.computation.task.projectanalysis.analysis.AnalysisMetadataHolderRule; -import org.sonar.server.computation.task.projectanalysis.issue.NewExternalRule; +import org.sonar.server.rule.NewExternalRule; import org.sonar.server.computation.task.projectanalysis.issue.RuleRepositoryImpl; import org.sonar.server.computation.task.step.ComputationStep; import org.sonar.server.es.EsTester; diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/DebtRatingGridTest.java b/server/sonar-server/src/test/java/org/sonar/server/measure/DebtRatingGridTest.java similarity index 86% rename from server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/DebtRatingGridTest.java rename to server/sonar-server/src/test/java/org/sonar/server/measure/DebtRatingGridTest.java index 8f5b2e7ad12..0208ae16f02 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/qualitymodel/DebtRatingGridTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/measure/DebtRatingGridTest.java @@ -17,7 +17,7 @@ * 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.task.projectanalysis.qualitymodel; +package org.sonar.server.measure; import org.junit.Before; import org.junit.Rule; @@ -25,11 +25,11 @@ import org.junit.Test; import org.junit.rules.ExpectedException; import static org.assertj.core.api.Assertions.assertThat; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.A; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.B; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.C; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.D; -import static org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating.E; +import static org.sonar.server.measure.Rating.A; +import static org.sonar.server.measure.Rating.B; +import static org.sonar.server.measure.Rating.C; +import static org.sonar.server.measure.Rating.D; +import static org.sonar.server.measure.Rating.E; public class DebtRatingGridTest { diff --git a/server/sonar-server/src/test/java/org/sonar/server/measure/live/IssueMetricFormulaFactoryImplTest.java b/server/sonar-server/src/test/java/org/sonar/server/measure/live/IssueMetricFormulaFactoryImplTest.java index ca7fb566f65..5de939987ab 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/measure/live/IssueMetricFormulaFactoryImplTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/measure/live/IssueMetricFormulaFactoryImplTest.java @@ -35,8 +35,8 @@ import org.sonar.api.rule.Severity; import org.sonar.api.rules.RuleType; import org.sonar.db.component.ComponentDto; import org.sonar.db.issue.IssueGroupDto; -import org.sonar.server.computation.task.projectanalysis.qualitymodel.DebtRatingGrid; -import org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating; +import org.sonar.server.measure.DebtRatingGrid; +import org.sonar.server.measure.Rating; import static java.util.Arrays.asList; import static org.assertj.core.api.Assertions.assertThat; diff --git a/server/sonar-server/src/test/java/org/sonar/server/measure/live/LiveMeasureComputerImplTest.java b/server/sonar-server/src/test/java/org/sonar/server/measure/live/LiveMeasureComputerImplTest.java index 4aff277f099..d94b12001a7 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/measure/live/LiveMeasureComputerImplTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/measure/live/LiveMeasureComputerImplTest.java @@ -47,7 +47,7 @@ import org.sonar.db.component.ComponentTesting; import org.sonar.db.measure.LiveMeasureDto; import org.sonar.db.metric.MetricDto; import org.sonar.db.organization.OrganizationDto; -import org.sonar.server.computation.task.projectanalysis.qualitymodel.Rating; +import org.sonar.server.measure.Rating; import org.sonar.server.es.ProjectIndexer; import org.sonar.server.es.TestProjectIndexers; import org.sonar.server.qualitygate.EvaluatedQualityGate; diff --git a/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentActionTest.java index 057002c7ccd..90653292e60 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentActionTest.java @@ -33,7 +33,6 @@ import org.sonar.db.measure.LiveMeasureDto; import org.sonar.db.metric.MetricDto; import org.sonar.db.organization.OrganizationDto; import org.sonar.server.component.TestComponentFinder; -import org.sonar.server.computation.task.projectanalysis.measure.Measure; import org.sonar.server.exceptions.BadRequestException; import org.sonar.server.exceptions.ForbiddenException; import org.sonar.server.exceptions.NotFoundException; @@ -53,15 +52,14 @@ import static org.sonar.api.web.UserRole.USER; import static org.sonar.db.component.BranchType.PULL_REQUEST; import static org.sonar.db.component.ComponentTesting.newFileDto; import static org.sonar.db.component.ComponentTesting.newProjectCopy; -import static org.sonar.server.component.ws.MeasuresWsParameters.PARAM_PULL_REQUEST; -import static org.sonar.server.computation.task.projectanalysis.metric.Metric.MetricType.INT; -import static org.sonar.test.JsonAssert.assertJson; import static org.sonar.server.component.ws.MeasuresWsParameters.DEPRECATED_PARAM_COMPONENT_ID; import static org.sonar.server.component.ws.MeasuresWsParameters.PARAM_ADDITIONAL_FIELDS; import static org.sonar.server.component.ws.MeasuresWsParameters.PARAM_BRANCH; import static org.sonar.server.component.ws.MeasuresWsParameters.PARAM_COMPONENT; import static org.sonar.server.component.ws.MeasuresWsParameters.PARAM_DEVELOPER_ID; import static org.sonar.server.component.ws.MeasuresWsParameters.PARAM_METRIC_KEYS; +import static org.sonar.server.component.ws.MeasuresWsParameters.PARAM_PULL_REQUEST; +import static org.sonar.test.JsonAssert.assertJson; public class ComponentActionTest { @@ -95,7 +93,7 @@ public class ComponentActionTest { public void provided_project() { ComponentDto project = db.components().insertPrivateProject(); userSession.addProjectPermission(UserRole.USER, project); - MetricDto metric = db.measures().insertMetric(m -> m.setValueType(INT.name())); + MetricDto metric = db.measures().insertMetric(m -> m.setValueType("INT")); ComponentWsResponse response = newRequest(project.getKey(), metric.getKey()); @@ -109,7 +107,7 @@ public class ComponentActionTest { ComponentDto project = db.components().insertPrivateProject(); userSession.addProjectPermission(UserRole.USER, project); db.components().insertSnapshot(project); - MetricDto metric = db.measures().insertMetric(m -> m.setValueType(INT.name())); + MetricDto metric = db.measures().insertMetric(m -> m.setValueType("INT")); String response = ws.newRequest() .setParam(PARAM_COMPONENT, project.getKey()) @@ -128,7 +126,7 @@ public class ComponentActionTest { ComponentDto branch = db.components().insertProjectBranch(project, b -> b.setKey("my_branch")); SnapshotDto analysis = db.components().insertSnapshot(branch); ComponentDto file = db.components().insertComponent(newFileDto(branch)); - MetricDto complexity = db.measures().insertMetric(m1 -> m1.setKey("complexity").setValueType(INT.name())); + MetricDto complexity = db.measures().insertMetric(m1 -> m1.setKey("complexity").setValueType("INT")); LiveMeasureDto measure = db.measures().insertLiveMeasure(file, complexity, m -> m.setValue(12.0d).setVariation(2.0d)); ComponentWsResponse response = ws.newRequest() @@ -151,7 +149,7 @@ public class ComponentActionTest { ComponentDto branch = db.components().insertProjectBranch(project, b -> b.setKey("pr-123").setBranchType(PULL_REQUEST)); SnapshotDto analysis = db.components().insertSnapshot(branch); ComponentDto file = db.components().insertComponent(newFileDto(branch)); - MetricDto complexity = db.measures().insertMetric(m1 -> m1.setKey("complexity").setValueType(INT.name())); + MetricDto complexity = db.measures().insertMetric(m1 -> m1.setKey("complexity").setValueType("INT")); LiveMeasureDto measure = db.measures().insertLiveMeasure(file, complexity, m -> m.setValue(12.0d).setVariation(2.0d)); ComponentWsResponse response = ws.newRequest() @@ -174,7 +172,7 @@ public class ComponentActionTest { ComponentDto view = db.components().insertView(); db.components().insertSnapshot(view); ComponentDto projectCopy = db.components().insertComponent(newProjectCopy("project-uuid-copy", project, view)); - MetricDto metric = db.measures().insertMetric(m -> m.setValueType(INT.name())); + MetricDto metric = db.measures().insertMetric(m -> m.setValueType("INT")); ComponentWsResponse response = newRequest(projectCopy.getKey(), metric.getKey()); @@ -187,7 +185,7 @@ public class ComponentActionTest { ComponentDto project = db.components().insertPrivateProject(); userSession.addProjectPermission(UserRole.USER, project); db.components().insertSnapshot(project); - MetricDto metric = db.measures().insertMetric(m -> m.setValueType(INT.name())); + MetricDto metric = db.measures().insertMetric(m -> m.setValueType("INT")); ComponentWsResponse response = newRequest(project.getKey(), metric.getKey()); @@ -199,7 +197,7 @@ public class ComponentActionTest { ComponentDto project = db.components().insertPrivateProject(); userSession.addProjectPermission(UserRole.USER, project); userSession.addProjectPermission(USER, project); - MetricDto metric = db.measures().insertMetric(m -> m.setValueType(INT.name())); + MetricDto metric = db.measures().insertMetric(m -> m.setValueType("INT")); ComponentWsResponse response = ws.newRequest() .setParam("componentId", project.uuid()) @@ -214,7 +212,7 @@ public class ComponentActionTest { ComponentDto project = db.components().insertPrivateProject(); userSession.addProjectPermission(UserRole.USER, project); userSession.addProjectPermission(USER, project); - MetricDto metric = db.measures().insertMetric(m -> m.setValueType(INT.name())); + MetricDto metric = db.measures().insertMetric(m -> m.setValueType("INT")); ComponentWsResponse response = ws.newRequest() .setParam("componentKey", project.getKey()) @@ -229,7 +227,7 @@ public class ComponentActionTest { ComponentDto project = db.components().insertPrivateProject(); userSession.addProjectPermission(UserRole.USER, project); MetricDto metricWithoutDomain = db.measures().insertMetric(m -> m - .setValueType(Measure.ValueType.INT.name()) + .setValueType("INT") .setDomain(null)); db.measures().insertLiveMeasure(project, metricWithoutDomain); @@ -251,7 +249,7 @@ public class ComponentActionTest { ComponentDto file = db.components().insertComponent(newFileDto(project)); userSession.addProjectPermission(UserRole.USER, project); MetricDto metric = db.measures().insertMetric(m -> m - .setValueType(Measure.ValueType.INT.name()) + .setValueType("INT") .setBestValue(7.0d) .setOptimizedBestValue(true) .setDomain(null)); @@ -273,7 +271,7 @@ public class ComponentActionTest { userSession.addProjectPermission(UserRole.USER, project); db.components().insertSnapshot(project); - MetricDto metric = db.measures().insertMetric(m -> m.setValueType(INT.name())); + MetricDto metric = db.measures().insertMetric(m -> m.setValueType("INT")); expectedException.expect(NotFoundException.class); expectedException.expectMessage("The Developer Cockpit feature has been dropped. The specified developer cannot be found."); @@ -289,8 +287,8 @@ public class ComponentActionTest { ComponentDto project = db.components().insertPrivateProject(); userSession.addProjectPermission(UserRole.USER, project); db.components().insertSnapshot(project); - db.measures().insertMetric(m -> m.setKey("ncloc").setValueType(INT.name())); - db.measures().insertMetric(m -> m.setKey("complexity").setValueType(INT.name())); + db.measures().insertMetric(m -> m.setKey("ncloc").setValueType("INT")); + db.measures().insertMetric(m -> m.setKey("complexity").setValueType("INT")); expectedException.expect(NotFoundException.class); expectedException.expectMessage("The following metric keys are not found: unknown-metric, another-unknown-metric"); @@ -315,7 +313,7 @@ public class ComponentActionTest { userSession.logIn(); ComponentDto project = db.components().insertPrivateProject(); db.components().insertSnapshot(project); - MetricDto metric = db.measures().insertMetric(m -> m.setValueType(INT.name())); + MetricDto metric = db.measures().insertMetric(m -> m.setValueType("INT")); expectedException.expect(ForbiddenException.class); @@ -324,7 +322,7 @@ public class ComponentActionTest { @Test public void fail_when_component_does_not_exist() { - MetricDto metric = db.measures().insertMetric(m -> m.setValueType(INT.name())); + MetricDto metric = db.measures().insertMetric(m -> m.setValueType("INT")); expectedException.expect(NotFoundException.class); expectedException.expectMessage("Component key 'project-key' not found"); @@ -340,7 +338,7 @@ public class ComponentActionTest { ComponentDto project = db.components().insertPrivateProject(p -> p.setEnabled(false)); userSession.addProjectPermission(UserRole.USER, project); userSession.addProjectPermission(USER, project); - MetricDto metric = db.measures().insertMetric(m -> m.setValueType(INT.name())); + MetricDto metric = db.measures().insertMetric(m -> m.setValueType("INT")); expectedException.expect(NotFoundException.class); expectedException.expectMessage(String.format("Component key '%s' not found", project.getKey())); @@ -391,7 +389,7 @@ public class ComponentActionTest { ComponentDto project = db.components().insertMainBranch(organization); userSession.logIn().addProjectPermission(UserRole.USER, project); ComponentDto branch = db.components().insertProjectBranch(project); - MetricDto metric = db.measures().insertMetric(m -> m.setValueType(INT.name())); + MetricDto metric = db.measures().insertMetric(m -> m.setValueType("INT")); expectedException.expect(NotFoundException.class); expectedException.expectMessage(format("Component key '%s' not found", branch.getDbKey())); @@ -408,7 +406,7 @@ public class ComponentActionTest { ComponentDto project = db.components().insertMainBranch(organization); userSession.logIn().addProjectPermission(UserRole.USER, project); ComponentDto branch = db.components().insertProjectBranch(project); - MetricDto metric = db.measures().insertMetric(m -> m.setValueType(INT.name())); + MetricDto metric = db.measures().insertMetric(m -> m.setValueType("INT")); expectedException.expect(NotFoundException.class); expectedException.expectMessage(format("Component id '%s' not found", branch.uuid())); diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ConditionEvaluatorTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ConditionEvaluatorTest.java index f8b4234992c..8f73faf337c 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ConditionEvaluatorTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ConditionEvaluatorTest.java @@ -216,221 +216,4 @@ public class ConditionEvaluatorTest { } } - // @Test - // public void testEquals_for_String() { - // Metric metric = createMetric(STRING); - // Measure measure = newMeasureBuilder().create("TEST"); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, EQUALS, "TEST"), - // measure)).hasLevel(ERROR).hasValue("TEST"); - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, EQUALS, "TEST2"), - // measure)).hasLevel(OK).hasValue("TEST"); - // } - // - // @Test - // - // public void testNotEquals() { - // Metric metric = createMetric(STRING); - // Measure measure = newMeasureBuilder().create("TEST"); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, NOT_EQUALS, "TEST"), - // measure)).hasLevel(OK).hasValue("TEST"); - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, NOT_EQUALS, "TEST2"), - // measure)).hasLevel(ERROR).hasValue("TEST"); - // } - // - // @Test - // public void testEquals_Percent() { - // Metric metric = createMetric(PERCENT); - // Measure measure = newMeasureBuilder().create(10.2d, 1, null); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, EQUALS, "10.2"), - // measure)).hasLevel(ERROR).hasValue(10.2d); - // } - // - // @Test - // public void testEquals_Float() { - // Metric metric = createMetric(PERCENT); - // Measure measure = newMeasureBuilder().create(10.2d, 1, null); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, EQUALS, "10.2"), - // measure)).hasLevel(ERROR).hasValue(10.2d); - // } - // - // @Test - // public void testEquals_Int() { - // Metric metric = createMetric(INT); - // Measure measure = newMeasureBuilder().create(10, null); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, EQUALS, "10"), measure)).hasLevel(ERROR).hasValue(10); - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, EQUALS, "10.2"), - // measure)).hasLevel(ERROR).hasValue(10); - // } - // - // @Test - // public void testEquals_Level() { - // Metric metric = createMetric(LEVEL); - // Measure measure = newMeasureBuilder().create(ERROR); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, EQUALS, ERROR.name()), - // measure)).hasLevel(ERROR).hasValue(ERROR.name()); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, EQUALS, OK.name()), - // measure)).hasLevel(OK).hasValue(ERROR.name()); - // } - // - // @Test - // public void testNotEquals_Level() { - // Metric metric = createMetric(LEVEL); - // Measure measure = newMeasureBuilder().create(ERROR); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, NOT_EQUALS, OK.name()), - // measure)).hasLevel(ERROR).hasValue(ERROR.name()); - // } - // - // @Test - // public void testEquals_BOOL() { - // Metric metric = createMetric(BOOL); - // Measure measure = newMeasureBuilder().create(false, null); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, EQUALS, "1"), measure)).hasLevel(OK).hasValue(false); - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, EQUALS, "0"), - // measure)).hasLevel(ERROR).hasValue(false); - // } - // - // @Test - // public void testNotEquals_BOOL() { - // Metric metric = createMetric(BOOL); - // Measure measure = newMeasureBuilder().create(false, null); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, NOT_EQUALS, "1"), - // measure)).hasLevel(ERROR).hasValue(false); - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, NOT_EQUALS, "0"), - // measure)).hasLevel(OK).hasValue(false); - // } - // - // @Test - // public void getLevel_throws_IEA_if_error_threshold_is_not_parsable_boolean() { - // Metric metric = createMetric(BOOL); - // Measure measure = newMeasureBuilder().create(false, null); - // - // expectedException.expect(IllegalArgumentException.class); - // expectedException.expectMessage("Quality Gate: Unable to parse value 'polop' to compare against name"); - // - // underTest.evaluate(createErrorCondition(metric, EQUALS, "polop"), measure); - // } - // - // @Test - // public void testEquals_work_duration() { - // Metric metric = createMetric(WORK_DUR); - // Measure measure = newMeasureBuilder().create(60l, null); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, EQUALS, "60"), measure)).hasLevel(ERROR); - // } - // - // @Test - // public void getLevel_throws_IEA_if_error_threshold_is_not_parsable_long() { - // Metric metric = createMetric(WORK_DUR); - // Measure measure = newMeasureBuilder().create(60l, null); - // - // expectedException.expect(IllegalArgumentException.class); - // expectedException.expectMessage("Quality Gate: Unable to parse value 'polop' to compare against name"); - // - // underTest.evaluate(createErrorCondition(metric, EQUALS, "polop"), measure); - // } - // - // @Test - // public void testErrorAndWarningLevel() { - // Metric metric = createMetric(FLOAT); - // Measure measure = newMeasureBuilder().create(10.2d, 1, null); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, EQUALS, "10.2"), measure)).hasLevel(ERROR); - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, EQUALS, "10.1"), measure)).hasLevel(OK); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(new org.sonar.server.computation.task.projectanalysis.qualitygate.Condition(metric, - // EQUALS.getDbValue(), "10.3", "10.2", false), measure)).hasLevel(Measure.Level.WARN); - // EvaluationResultAssert.assertThat(underTest.evaluate(new org.sonar.server.computation.task.projectanalysis.qualitygate.Condition(metric, - // LESS_THAN.getDbValue(), "10.3", "10.2", false), measure)).hasLevel(Measure.Level.ERROR); - // } - // - // @Test - // public void condition_is_always_ok_when_measure_is_noValue() { - // for (Metric.MetricType metricType : from(asList(values())).filter(not(in(ImmutableSet.of(DATA, LEVEL))))) { - // Metric metric = createMetric(metricType); - // Measure measure = newMeasureBuilder().createNoValue(); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(createErrorCondition(metric, EQUALS, "10.2"), measure)).hasLevel(OK); - // } - // } - // - // @Test - // public void testUnsupportedType() { - // Metric metric = createMetric(DATA); - // Measure measure = newMeasureBuilder().create("3.14159265358"); - // - // expectedException.expect(IllegalArgumentException.class); - // expectedException.expectMessage("Conditions on MetricType DATA are not supported"); - // - // underTest.evaluate(createErrorCondition(metric, EQUALS, "1.60217657"), measure); - // } - // - // @Test - // public void condition_on_period() { - // for (Metric.MetricType metricType : ImmutableList.of(FLOAT, INT, WORK_DUR)) { - // Metric metric = createMetric(metricType); - // Measure measure = newMeasureBuilder().setVariation(3d).createNoValue(); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(new org.sonar.server.computation.task.projectanalysis.qualitygate.Condition(metric, - // GREATER_THAN.getDbValue(), "3", null, true), measure)).hasLevel(OK); - // } - // } - // - // @Test - // public void condition_on_period_without_value_is_OK() { - // Metric metric = createMetric(FLOAT); - // Measure measure = newMeasureBuilder().createNoValue(); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(new org.sonar.server.computation.task.projectanalysis.qualitygate.Condition(metric, - // GREATER_THAN.getDbValue(), "3", null, true), measure)).hasLevel(OK).hasValue(null); - // } - // - // @Test - // public void condition_on_rating() throws Exception { - // Metric metric = createMetric(RATING); - // Measure measure = newMeasureBuilder().create(4, "D"); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(new org.sonar.server.computation.task.projectanalysis.qualitygate.Condition(metric, - // GREATER_THAN.getDbValue(), "4", null, false), measure)).hasLevel(OK).hasValue(4); - // EvaluationResultAssert.assertThat(underTest.evaluate(new org.sonar.server.computation.task.projectanalysis.qualitygate.Condition(metric, - // GREATER_THAN.getDbValue(), "2", null, false), measure)).hasLevel(ERROR).hasValue(4); - // } - // - // @Test - // public void condition_on_rating_on_leak_period() throws Exception { - // Metric metric = createMetric(RATING); - // Measure measure = newMeasureBuilder().setVariation(4d).createNoValue(); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(new org.sonar.server.computation.task.projectanalysis.qualitygate.Condition(metric, - // GREATER_THAN.getDbValue(), "5", null, true), measure)).hasLevel(OK).hasValue(4); - // EvaluationResultAssert.assertThat(underTest.evaluate(new org.sonar.server.computation.task.projectanalysis.qualitygate.Condition(metric, - // GREATER_THAN.getDbValue(), "2", null, true), measure)).hasLevel(ERROR).hasValue(4); - // } - // - // @Test - // public void condition_on_rating_on_leak_period_when_variation_is_zero() throws Exception { - // Metric metric = createMetric(RATING); - // Measure measure = newMeasureBuilder().setVariation(0d).createNoValue(); - // - // EvaluationResultAssert.assertThat(underTest.evaluate(new org.sonar.server.computation.task.projectanalysis.qualitygate.Condition(metric, - // GREATER_THAN.getDbValue(), "4", null, true), measure)).hasLevel(OK).hasValue(0); - // } - // - // private static org.sonar.server.computation.task.projectanalysis.qualitygate.Condition createErrorCondition(Metric metric, - // org.sonar.server.computation.task.projectanalysis.qualitygate.Condition.Operator operator, String errorThreshold) { - // return new Condition(metric, operator.getDbValue(), errorThreshold, null, false); - // } - // - // private static MetricImpl createMetric(Metric.MetricType metricType) { - // return new MetricImpl(1, "key", "name", metricType); - // } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/rule/ExternalRuleCreatorTest.java b/server/sonar-server/src/test/java/org/sonar/server/rule/ExternalRuleCreatorTest.java index ac55073f183..32b9d329e79 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/rule/ExternalRuleCreatorTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/rule/ExternalRuleCreatorTest.java @@ -24,8 +24,7 @@ import org.sonar.api.rule.RuleKey; import org.sonar.api.utils.System2; import org.sonar.db.DbSession; import org.sonar.db.DbTester; -import org.sonar.server.computation.task.projectanalysis.issue.NewExternalRule; -import org.sonar.server.computation.task.projectanalysis.issue.Rule; +import org.sonar.db.rule.RuleDto; import org.sonar.server.es.EsTester; import org.sonar.server.rule.index.RuleIndexer; @@ -51,7 +50,7 @@ public class ExternalRuleCreatorTest { .setName("name") .build(); - Rule rule1 = underTest.persistAndIndex(dbSession, externalRule); + RuleDto rule1 = underTest.persistAndIndex(dbSession, externalRule); assertThat(rule1).isNotNull(); assertThat(rule1.isExternal()).isTrue(); @@ -59,7 +58,7 @@ public class ExternalRuleCreatorTest { assertThat(rule1.getKey()).isEqualTo(ruleKey); assertThat(rule1.getPluginKey()).isEqualTo("eslint"); assertThat(rule1.getName()).isEqualTo("name"); - assertThat(rule1.getType()).isNull(); + assertThat(rule1.getType()).isEqualTo(0); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/NewExternalRuleTest.java b/server/sonar-server/src/test/java/org/sonar/server/rule/NewExternalRuleTest.java similarity index 96% rename from server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/NewExternalRuleTest.java rename to server/sonar-server/src/test/java/org/sonar/server/rule/NewExternalRuleTest.java index 16ee04142b7..85816da9e6b 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/issue/NewExternalRuleTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/rule/NewExternalRuleTest.java @@ -17,7 +17,7 @@ * 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.task.projectanalysis.issue; +package org.sonar.server.rule; import org.junit.Test; import org.junit.rules.ExpectedException; -- 2.39.5