aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2015-08-17 16:57:48 +0200
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2015-08-24 14:00:31 +0200
commit90dbd308f09cd6a42c040a12f78ba8472529373a (patch)
tree8e96885a87a86bbc75e2c5d5543e6f3daf803d23
parentf0c595d3df4178754dfbb3121508d7713694c5fc (diff)
downloadsonarqube-90dbd308f09cd6a42c040a12f78ba8472529373a.tar.gz
sonarqube-90dbd308f09cd6a42c040a12f78ba8472529373a.zip
SONAR-6787 FeedPeriodsStep should use project settings
and not server settings because differential period properties can be defined at project/view level
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/computation/step/FeedPeriodsStep.java12
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/computation/step/FeedPeriodsStepTest.java17
2 files changed, 16 insertions, 13 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/FeedPeriodsStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/FeedPeriodsStep.java
index 2e36dcfa3ae..cb842073f50 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/FeedPeriodsStep.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/FeedPeriodsStep.java
@@ -45,6 +45,7 @@ import org.sonar.db.component.SnapshotQuery;
import org.sonar.server.computation.analysis.AnalysisMetadataHolder;
import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.component.DepthTraversalTypeAwareCrawler;
+import org.sonar.server.computation.component.SettingsRepository;
import org.sonar.server.computation.component.TreeRootHolder;
import org.sonar.server.computation.period.Period;
import org.sonar.server.computation.period.PeriodsHolderImpl;
@@ -70,15 +71,15 @@ public class FeedPeriodsStep implements ComputationStep {
private static final int NUMBER_OF_PERIODS = 5;
private final DbClient dbClient;
- private final Settings settings;
+ private final SettingsRepository settingsRepository;
private final TreeRootHolder treeRootHolder;
private final AnalysisMetadataHolder analysisMetadataHolder;
private final PeriodsHolderImpl periodsHolder;
- public FeedPeriodsStep(DbClient dbClient, Settings settings, TreeRootHolder treeRootHolder, AnalysisMetadataHolder analysisMetadataHolder,
+ public FeedPeriodsStep(DbClient dbClient, SettingsRepository settingsRepository, TreeRootHolder treeRootHolder, AnalysisMetadataHolder analysisMetadataHolder,
PeriodsHolderImpl periodsHolder) {
this.dbClient = dbClient;
- this.settings = settings;
+ this.settingsRepository = settingsRepository;
this.treeRootHolder = treeRootHolder;
this.analysisMetadataHolder = analysisMetadataHolder;
this.periodsHolder = periodsHolder;
@@ -120,9 +121,10 @@ public class FeedPeriodsStep implements ComputationStep {
isReportType ? projectOrView.getReportAttributes().getVersion() : null,
isReportType ? Qualifiers.PROJECT : Qualifiers.VIEW);
+ Settings settings = settingsRepository.getSettings(projectOrView);
List<Period> periods = new ArrayList<>(5);
for (int index = 1; index <= NUMBER_OF_PERIODS; index++) {
- Period period = periodResolver.resolve(index);
+ Period period = periodResolver.resolve(index, settings);
// SONAR-4700 Add a past snapshot only if it exists
if (period != null) {
periods.add(period);
@@ -149,7 +151,7 @@ public class FeedPeriodsStep implements ComputationStep {
}
@CheckForNull
- public Period resolve(int index) {
+ public Period resolve(int index, Settings settings) {
String propertyValue = getPropertyValue(qualifier, settings, index);
if (StringUtils.isBlank(propertyValue)) {
return null;
diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/FeedPeriodsStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/FeedPeriodsStepTest.java
index f8803cd7754..5b5938b91e3 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/FeedPeriodsStepTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/FeedPeriodsStepTest.java
@@ -38,12 +38,15 @@ import org.sonar.server.computation.analysis.MutableAnalysisMetadataHolderRule;
import org.sonar.server.computation.batch.TreeRootHolderRule;
import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.component.ReportComponent;
+import org.sonar.server.computation.component.SettingsRepository;
import org.sonar.server.computation.period.Period;
import org.sonar.server.computation.period.PeriodsHolderImpl;
import org.sonar.test.DbTests;
import static com.google.common.collect.Lists.newArrayList;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
@Category(DbTests.class)
public class FeedPeriodsStepTest extends BaseStepTest {
@@ -53,21 +56,17 @@ public class FeedPeriodsStepTest extends BaseStepTest {
@Rule
public DbTester dbTester = DbTester.create(System2.INSTANCE);
-
@Rule
public TreeRootHolderRule treeRootHolder = new TreeRootHolderRule();
-
@Rule
public MutableAnalysisMetadataHolderRule analysisMetadataHolder = new MutableAnalysisMetadataHolderRule();
-
@Rule
public LogTester logTester = new LogTester();
PeriodsHolderImpl periodsHolder = new PeriodsHolderImpl();
-
DbClient dbClient = dbTester.getDbClient();
-
Settings settings = new Settings();
+ SettingsRepository settingsRepository = mock(SettingsRepository.class);
FeedPeriodsStep underTest;
@@ -80,9 +79,11 @@ public class FeedPeriodsStepTest extends BaseStepTest {
public void setUp() throws Exception {
analysisMetadataHolder.setAnalysisDate(DATE_FORMAT.parse("2008-11-30"));
- treeRootHolder.setRoot(ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).setVersion("1.1").build());
+ ReportComponent root = ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).setVersion("1.1").build();
+ treeRootHolder.setRoot(root);
+ when(settingsRepository.getSettings(root)).thenReturn(settings);
- underTest = new FeedPeriodsStep(dbClient, settings, treeRootHolder, analysisMetadataHolder, periodsHolder);
+ underTest = new FeedPeriodsStep(dbClient, settingsRepository, treeRootHolder, analysisMetadataHolder, periodsHolder);
}
@Test
@@ -353,7 +354,7 @@ public class FeedPeriodsStepTest extends BaseStepTest {
settings.setProperty("sonar.timemachine.period2", "10"); // Analysis from 2008-11-20 should be returned
settings.setProperty("sonar.timemachine.period3", "previous_analysis"); // Analysis from 2008-11-29 should be returned
settings.setProperty("sonar.timemachine.period4", "previous_version"); // Analysis from 2008-11-12 should be returned
- settings.setProperty("sonar.timemachine.period5", "0.9"); // Anaylsis from 2008-11-11
+ settings.setProperty("sonar.timemachine.period5", "0.9"); // Analysis from 2008-11-11
underTest.execute();
List<Period> periods = periodsHolder.getPeriods();