]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6568 add LanguageRepository
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Thu, 21 May 2015 13:44:14 +0000 (15:44 +0200)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Mon, 25 May 2015 11:27:24 +0000 (13:27 +0200)
quality profile events computation requires to access the Language in the container

24 files changed:
server/sonar-server-benchmarks/src/test/java/org/sonar/server/benchmark/PersistFileSourcesStepTest.java
server/sonar-server/src/main/java/org/sonar/server/computation/ComputationContainer.java
server/sonar-server/src/main/java/org/sonar/server/computation/ComputationContext.java
server/sonar-server/src/main/java/org/sonar/server/computation/ComputationService.java
server/sonar-server/src/main/java/org/sonar/server/computation/language/LanguageRepository.java [new file with mode: 0644]
server/sonar-server/src/main/java/org/sonar/server/computation/language/PlatformLanguageRepository.java [new file with mode: 0644]
server/sonar-server/src/main/java/org/sonar/server/computation/language/package-info.java [new file with mode: 0644]
server/sonar-server/src/test/java/org/sonar/server/computation/ComputationContextTest.java [deleted file]
server/sonar-server/src/test/java/org/sonar/server/computation/language/PlatformLanguageRepositoryTest.java [new file with mode: 0644]
server/sonar-server/src/test/java/org/sonar/server/computation/step/FeedComponentsCacheStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/IndexComponentsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/IndexSourceLinesStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/IndexTestsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/ParseReportStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistComponentsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistDuplicationsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistEventsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistFileSourcesStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistMeasuresStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistNumberOfDaysSinceLastCommitStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistProjectLinksStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistTestsStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/PurgeDatastoresStepTest.java
server/sonar-server/src/test/java/org/sonar/server/computation/step/SendIssueNotificationsStepTest.java

index c18ee881aed8c32216385a2078e99180b4a2ab59..1f6d704cf766a9a3b87f03462990ea90aaeacf84 100644 (file)
@@ -26,6 +26,7 @@ import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.sonar.api.config.Settings;
 import org.sonar.api.utils.System2;
 import org.sonar.api.utils.internal.Uuids;
 import org.sonar.batch.protocol.Constants;
@@ -79,7 +80,7 @@ public class PersistFileSourcesStepTest {
     long start = System.currentTimeMillis();
 
     PersistFileSourcesStep step = new PersistFileSourcesStep(dbClient, System2.INSTANCE, dbComponentsRefCache);
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), "PROJECT_KEY"));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), "PROJECT_KEY", new Settings()));
 
     long end = System.currentTimeMillis();
     long duration = end - start;
index 32525bf6cb433c98c7ef150ac80985f806b845a7..6be59fd467b527c1eed34d8bbc61952103e800fa 100644 (file)
@@ -19,6 +19,9 @@
  */
 package org.sonar.server.computation;
 
+import java.util.Arrays;
+import java.util.List;
+
 import org.sonar.core.issue.db.UpdateConflictResolver;
 import org.sonar.core.platform.ComponentContainer;
 import org.sonar.server.computation.component.ComputeComponentsRefCache;
@@ -30,14 +33,12 @@ import org.sonar.server.computation.issue.RuleCacheLoader;
 import org.sonar.server.computation.issue.ScmAccountCache;
 import org.sonar.server.computation.issue.ScmAccountCacheLoader;
 import org.sonar.server.computation.issue.SourceLinesCache;
+import org.sonar.server.computation.language.PlatformLanguageRepository;
 import org.sonar.server.computation.measure.MetricCache;
 import org.sonar.server.computation.step.ComputationSteps;
 import org.sonar.server.platform.Platform;
 import org.sonar.server.view.index.ViewIndex;
 
-import java.util.Arrays;
-import java.util.List;
-
 public class ComputationContainer {
 
   /**
@@ -46,6 +47,9 @@ public class ComputationContainer {
    */
   static List componentClasses() {
     return Arrays.asList(
+      // context-scope repositories
+      PlatformLanguageRepository.class,
+
       ComputationService.class,
       ComputationSteps.class,
 
index 28ad3baea3a6b046386b035c44a325e8f12f5381..77cb38479070c560eef8d847e030c73f277c396c 100644 (file)
@@ -24,8 +24,6 @@ import org.sonar.api.config.Settings;
 import org.sonar.batch.protocol.output.BatchReport;
 import org.sonar.batch.protocol.output.BatchReportReader;
 
-import static com.google.common.base.Preconditions.checkState;
-
 public class ComputationContext {
 
   private final BatchReportReader reportReader;
@@ -33,11 +31,12 @@ public class ComputationContext {
   private final String projectKey;
   // cache of metadata as it's frequently accessed
   private final BatchReport.Metadata reportMetadata;
-  private Settings projectSettings;
+  private final Settings projectSettings;
 
-  public ComputationContext(BatchReportReader reportReader, String projectKey) {
+  public ComputationContext(BatchReportReader reportReader, String projectKey, Settings projectSettings) {
     this.reportReader = reportReader;
     this.projectKey = projectKey;
+    this.projectSettings = projectSettings;
     this.reportMetadata = reportReader.readMetadata();
   }
 
@@ -57,8 +56,4 @@ public class ComputationContext {
     return projectSettings;
   }
 
-  public void setProjectSettings(Settings projectSettings) {
-    checkState(this.projectSettings == null, "can't set project settings twice");
-    this.projectSettings = projectSettings;
-  }
 }
index 6d19500eed0350122a8f11f98a1e6091a2bac096..698b883eaac883b0b32e992e2b856bca0de8a576 100644 (file)
@@ -22,6 +22,7 @@ package org.sonar.server.computation;
 
 import com.google.common.base.Throwables;
 import org.apache.commons.io.FileUtils;
+import org.sonar.api.config.Settings;
 import org.sonar.api.server.ServerSide;
 import org.sonar.api.utils.System2;
 import org.sonar.api.utils.TempFolder;
@@ -81,8 +82,8 @@ public class ComputationService {
     try {
       File reportDir = extractReportInDir(item);
       BatchReportReader reader = new BatchReportReader(reportDir);
-      ComputationContext context = new ComputationContext(reader, projectKey);
-      context.setProjectSettings(projectSettingsFactory.newProjectSettings(projectKey));
+      Settings projectSettings = projectSettingsFactory.newProjectSettings(projectKey);
+      ComputationContext context = new ComputationContext(reader, projectKey, projectSettings);
       for (ComputationStep step : steps.orderedSteps()) {
         Profiler stepProfiler = Profiler.createIfDebug(LOG).startDebug(step.getDescription());
         step.execute(context);
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/language/LanguageRepository.java b/server/sonar-server/src/main/java/org/sonar/server/computation/language/LanguageRepository.java
new file mode 100644 (file)
index 0000000..14eae04
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2014 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * SonarQube is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * SonarQube is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+package org.sonar.server.computation.language;
+
+import com.google.common.base.Optional;
+import org.sonar.api.resources.Language;
+
+public interface LanguageRepository {
+  Optional<Language> find(String languageKey);
+}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/language/PlatformLanguageRepository.java b/server/sonar-server/src/main/java/org/sonar/server/computation/language/PlatformLanguageRepository.java
new file mode 100644 (file)
index 0000000..7199c0e
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2014 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * SonarQube is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * SonarQube is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+package org.sonar.server.computation.language;
+
+import com.google.common.base.Function;
+import com.google.common.base.Optional;
+import java.util.Collections;
+import java.util.Map;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import org.sonar.api.resources.Language;
+
+import static com.google.common.base.Predicates.notNull;
+import static com.google.common.collect.Iterables.filter;
+import static com.google.common.collect.Maps.uniqueIndex;
+import static java.util.Arrays.asList;
+
+/**
+ * Implementation of {@link LanguageRepository} which find {@link Language} instances available in the container.
+ */
+public class PlatformLanguageRepository implements LanguageRepository {
+
+  private final Map<String, Language> languagesByKey;
+
+  public PlatformLanguageRepository(@Nullable Language... languages) {
+    this.languagesByKey = languages == null ? Collections.<String, Language>emptyMap() : uniqueIndex(filter(asList(languages), notNull()), LanguageToKey.INSTANCE);
+  }
+
+  @Override
+  public Optional<Language> find(String languageKey) {
+    return Optional.fromNullable(languagesByKey.get(languageKey));
+  }
+
+  private enum LanguageToKey implements Function<Language, String> {
+    INSTANCE;
+
+    @Override
+    public String apply(@Nonnull Language input) {
+      return input.getKey();
+    }
+  }
+}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/language/package-info.java b/server/sonar-server/src/main/java/org/sonar/server/computation/language/package-info.java
new file mode 100644 (file)
index 0000000..7558295
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2014 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * SonarQube is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * SonarQube is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+@ParametersAreNonnullByDefault
+package org.sonar.server.computation.language;
+
+import javax.annotation.ParametersAreNonnullByDefault;
diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/ComputationContextTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/ComputationContextTest.java
deleted file mode 100644 (file)
index e005666..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * SonarQube, open source software quality management tool.
- * Copyright (C) 2008-2014 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * SonarQube is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * SonarQube is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-package org.sonar.server.computation;
-
-import org.junit.Test;
-import org.sonar.api.config.Settings;
-import org.sonar.batch.protocol.output.BatchReportReader;
-
-import static org.mockito.Mockito.mock;
-
-public class ComputationContextTest {
-
-  ComputationContext sut = new ComputationContext(mock(BatchReportReader.class), "ProjectKey");
-
-  @Test(expected = IllegalStateException.class)
-  public void setProjectSettings() {
-    sut.setProjectSettings(mock(Settings.class));
-    sut.setProjectSettings(mock(Settings.class));
-  }
-}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/language/PlatformLanguageRepositoryTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/language/PlatformLanguageRepositoryTest.java
new file mode 100644 (file)
index 0000000..5206ab6
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2014 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * SonarQube is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * SonarQube is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+package org.sonar.server.computation.language;
+
+import com.google.common.base.Optional;
+import org.junit.Test;
+import org.sonar.api.resources.Language;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class PlatformLanguageRepositoryTest {
+
+  private static final String ANY_KEY = "Any_Key";
+  private static final String SOME_LANGUAGE_KEY = "SoMe language_Key";
+  private static final Language SOME_LANGUAGE = createLanguage(SOME_LANGUAGE_KEY, "_name");
+
+  @Test(expected = IllegalArgumentException.class)
+  public void constructor_fails_is_language_have_the_same_key() throws Exception {
+    new PlatformLanguageRepository(createLanguage(SOME_LANGUAGE_KEY, " 1"), createLanguage(SOME_LANGUAGE_KEY, " 2"));
+  }
+
+  @Test
+  public void find_on_empty_LanguageRepository_returns_absent() throws Exception {
+    assertThat(new PlatformLanguageRepository().find(ANY_KEY).isPresent()).isFalse();
+  }
+
+  @Test
+  public void find_by_key_returns_the_same_object() throws Exception {
+    PlatformLanguageRepository languageRepository = new PlatformLanguageRepository(SOME_LANGUAGE);
+    Optional<Language> language = languageRepository.find(SOME_LANGUAGE_KEY);
+    assertThat(language.isPresent()).isTrue();
+    assertThat(language.get()).isSameAs(SOME_LANGUAGE);
+  }
+
+  @Test
+  public void find_by_other_key_returns_absent() throws Exception {
+    PlatformLanguageRepository languageRepository = new PlatformLanguageRepository(SOME_LANGUAGE);
+    Optional<Language> language = languageRepository.find(ANY_KEY);
+    assertThat(language.isPresent()).isFalse();
+  }
+
+  private static Language createLanguage(final String key, final String nameSuffix) {
+    return new Language() {
+      @Override
+      public String getKey() {
+        return key;
+      }
+
+      @Override
+      public String getName() {
+        return key + nameSuffix;
+      }
+
+      @Override
+      public String[] getFileSuffixes() {
+        return new String[0];
+      }
+    };
+  }
+}
index 97f8300a8ed9f8d1666d94d9003ca45c90b80bb7..def1b081758cc49c8e26fee5fd2a3c74a279b38a 100644 (file)
@@ -26,6 +26,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.rules.TemporaryFolder;
+import org.sonar.api.config.Settings;
 import org.sonar.batch.protocol.Constants;
 import org.sonar.batch.protocol.output.BatchReport;
 import org.sonar.batch.protocol.output.BatchReportReader;
@@ -59,6 +60,8 @@ public class FeedComponentsCacheStepTest extends BaseStepTest {
 
   DbClient dbClient;
 
+  Settings projectSettings;
+
   ComputeComponentsRefCache computeComponentsRefCache;
 
   FeedComponentsCacheStep sut;
@@ -72,6 +75,7 @@ public class FeedComponentsCacheStepTest extends BaseStepTest {
     reportDir = temp.newFolder();
 
     computeComponentsRefCache = new ComputeComponentsRefCache();
+    projectSettings = new Settings();
     sut = new FeedComponentsCacheStep(dbClient, computeComponentsRefCache);
   }
 
@@ -112,7 +116,7 @@ public class FeedComponentsCacheStepTest extends BaseStepTest {
       .setPath("src/main/java/dir/Foo.java")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(computeComponentsRefCache.getByRef(1).getKey()).isEqualTo(PROJECT_KEY);
     assertThat(computeComponentsRefCache.getByRef(1).getUuid()).isNotNull();
@@ -168,7 +172,7 @@ public class FeedComponentsCacheStepTest extends BaseStepTest {
       .setPath("src/main/java/dir/Foo.java")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(computeComponentsRefCache.getByRef(4).getKey()).isEqualTo("SUB_MODULE_KEY:src/main/java/dir");
     assertThat(computeComponentsRefCache.getByRef(5).getKey()).isEqualTo("SUB_MODULE_KEY:src/main/java/dir/Foo.java");
@@ -209,7 +213,7 @@ public class FeedComponentsCacheStepTest extends BaseStepTest {
       .setPath("src/main/java/dir/Foo.java")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(computeComponentsRefCache.getByRef(1).getKey()).isEqualTo("PROJECT_KEY:origin/master");
     assertThat(computeComponentsRefCache.getByRef(2).getKey()).isEqualTo("MODULE_KEY:origin/master");
index be67e9bdd8552d6b592355328c381feb07df1f35..8a4bf02285433fad15457631a481bc767655aea1 100644 (file)
@@ -22,6 +22,7 @@ package org.sonar.server.computation.step;
 
 import org.junit.Rule;
 import org.junit.Test;
+import org.sonar.api.config.Settings;
 import org.junit.rules.TemporaryFolder;
 import org.sonar.batch.protocol.output.BatchReport;
 import org.sonar.batch.protocol.output.BatchReportReader;
@@ -62,7 +63,7 @@ public class IndexComponentsStepTest extends BaseStepTest {
 
     ComponentDto project = mock(ComponentDto.class);
     when(project.getId()).thenReturn(123L);
-    ComputationContext context = new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY);
+    ComputationContext context = new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, new Settings());
 
     sut.execute(context);
 
index 82376d9146edcde151428c11e4ef47cf781bb88a..771315f5a065cf9f91292ac18e308cb1388cc917 100644 (file)
@@ -91,7 +91,7 @@ public class IndexSourceLinesStepTest extends BaseStepTest {
       .setRootComponentRef(1)
       .build());
 
-    step().execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    step().execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, new Settings()));
 
     List<SearchHit> docs = esTester.getDocuments(SourceLineIndexDefinition.INDEX, SourceLineIndexDefinition.TYPE);
     assertThat(docs).hasSize(1);
index 070682a9c5b4604278c5668db6d3a0d8ab6b7baf..fed0a235a6e98def832f606b00d10e4b23c32f4b 100644 (file)
@@ -91,7 +91,7 @@ public class IndexTestsStepTest extends BaseStepTest {
       .setRootComponentRef(1)
       .build());
 
-    step().execute(new ComputationContext(new BatchReportReader(reportDir), "PROJECT_KEY"));
+    step().execute(new ComputationContext(new BatchReportReader(reportDir), "PROJECT_KEY", new Settings()));
 
     List<SearchHit> docs = esTester.getDocuments(TestIndexDefinition.INDEX, TestIndexDefinition.TYPE);
     assertThat(docs).hasSize(1);
index 25279ebebdec06405e52eaf24e4ab4de8e99277c..53034ed466a7eee7b77332d3222ef7029236bcb3 100644 (file)
@@ -23,6 +23,7 @@ import org.junit.ClassRule;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
+import org.sonar.api.config.Settings;
 import org.sonar.batch.protocol.Constants;
 import org.sonar.batch.protocol.output.BatchReport;
 import org.sonar.batch.protocol.output.BatchReportReader;
@@ -69,7 +70,7 @@ public class ParseReportStepTest extends BaseStepTest {
 
     File reportDir = generateReport();
 
-    ComputationContext context = new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY);
+    ComputationContext context = new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, new Settings());
     sut.execute(context);
 
     assertThat(context.getReportMetadata().getRootComponentRef()).isEqualTo(1);
index 65edea6265ae4dbd3ed840e06ef323d907f13921..8ef3b41423a4cd573a6071a8ec4b8fe4aa15b7c0 100644 (file)
@@ -20,6 +20,7 @@
 
 package org.sonar.server.computation.step;
 
+import java.io.File;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.ClassRule;
@@ -27,6 +28,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.rules.TemporaryFolder;
+import org.sonar.api.config.Settings;
 import org.sonar.batch.protocol.Constants;
 import org.sonar.batch.protocol.output.BatchReport;
 import org.sonar.batch.protocol.output.BatchReportReader;
@@ -42,8 +44,6 @@ import org.sonar.server.computation.component.DbComponentsRefCache;
 import org.sonar.server.db.DbClient;
 import org.sonar.test.DbTests;
 
-import java.io.File;
-
 import static org.assertj.core.api.Assertions.assertThat;
 
 @Category(DbTests.class)
@@ -63,6 +63,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
 
   DbClient dbClient;
 
+  Settings projectSettings;
   ComputeComponentsRefCache computeComponentsRefCache;
   DbComponentsRefCache dbComponentsRefCache;
 
@@ -77,6 +78,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
     reportDir = temp.newFolder();
 
     computeComponentsRefCache = new ComputeComponentsRefCache();
+    projectSettings = new Settings();
     dbComponentsRefCache = new DbComponentsRefCache();
     sut = new PersistComponentsStep(dbClient, computeComponentsRefCache, dbComponentsRefCache);
   }
@@ -133,7 +135,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
       .setLanguage("java")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("projects")).isEqualTo(4);
 
@@ -223,7 +225,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
       .setPath("pom.xml")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     ComponentDto directory = dbClient.componentDao().selectNullableByKey(session, "PROJECT_KEY:/");
     assertThat(directory).isNotNull();
@@ -268,7 +270,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
       .setIsTest(true)
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     ComponentDto file = dbClient.componentDao().selectNullableByKey(session, "PROJECT_KEY:src/test/java/dir/FooTest.java");
     assertThat(file).isNotNull();
@@ -324,7 +326,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
       .setPath("src/main/java/dir/Foo.java")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("projects")).isEqualTo(4);
 
@@ -403,7 +405,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
       .setPath("src/main/java/dir")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("projects")).isEqualTo(5);
 
@@ -476,7 +478,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
       .setPath("src/main/java/dir/Foo.java")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("projects")).isEqualTo(4);
     assertThat(dbClient.componentDao().selectNullableByKey(session, PROJECT_KEY).getId()).isEqualTo(project.getId());
@@ -554,7 +556,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
       .setDescription("New module description")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     ComponentDto projectReloaded = dbClient.componentDao().selectNullableByKey(session, PROJECT_KEY);
     assertThat(projectReloaded.name()).isEqualTo("New project name");
@@ -623,7 +625,7 @@ public class PersistComponentsStepTest extends BaseStepTest {
       .setPath("src/main/java/dir/Foo.java")
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("projects")).isEqualTo(5);
 
index 9137b515fa614b509ba44f1077fec2cf7fe2d517..b5689dc71754d32bf5043d93a35bf3595c80d1d5 100644 (file)
@@ -27,6 +27,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.rules.TemporaryFolder;
+import org.sonar.api.config.Settings;
 import org.sonar.api.measures.CoreMetrics;
 import org.sonar.batch.protocol.Constants;
 import org.sonar.batch.protocol.output.BatchReport;
@@ -67,6 +68,8 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
 
   DbClient dbClient;
 
+  Settings projectSettings;
+
   DbComponentsRefCache dbComponentsRefCache;
 
   PersistDuplicationsStep sut;
@@ -79,6 +82,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
 
     reportDir = temp.newFolder();
 
+    projectSettings = new Settings();
     dbComponentsRefCache = new DbComponentsRefCache();
     sut = new PersistDuplicationsStep(dbClient, dbComponentsRefCache);
   }
@@ -98,7 +102,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
     saveDuplicationMetric();
     initReportWithProjectAndFile();
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(0);
   }
@@ -124,7 +128,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
       .build();
     writer.writeComponentDuplications(2, newArrayList(duplication));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
 
@@ -184,7 +188,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
       .build();
     writer.writeComponentDuplications(3, newArrayList(duplication));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
 
@@ -243,7 +247,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
       .build();
     writer.writeComponentDuplications(3, newArrayList(duplication));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
 
@@ -309,7 +313,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
       .build();
     writer.writeComponentDuplications(10, newArrayList(duplication));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
 
@@ -345,7 +349,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
       .build();
     writer.writeComponentDuplications(2, newArrayList(duplication));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
 
@@ -374,7 +378,7 @@ public class PersistDuplicationsStepTest extends BaseStepTest {
       .build();
     writer.writeComponentDuplications(2, newArrayList(duplication));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(1);
 
index de8be139f824f99c317ebffcff9aeba8b61fdf95..a055d8776137d23018317aa868ee636ab72834f8 100644 (file)
@@ -20,6 +20,7 @@
 
 package org.sonar.server.computation.step;
 
+import java.io.File;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.ClassRule;
@@ -27,6 +28,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.rules.TemporaryFolder;
+import org.sonar.api.config.Settings;
 import org.sonar.api.utils.System2;
 import org.sonar.batch.protocol.Constants;
 import org.sonar.batch.protocol.output.BatchReport;
@@ -41,8 +43,6 @@ import org.sonar.server.db.DbClient;
 import org.sonar.server.event.db.EventDao;
 import org.sonar.test.DbTests;
 
-import java.io.File;
-
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -63,6 +63,8 @@ public class PersistEventsStepTest extends BaseStepTest {
 
   System2 system2;
 
+  Settings projectSettings;
+
   DbComponentsRefCache dbComponentsRefCache;
 
   PersistEventsStep step;
@@ -76,6 +78,8 @@ public class PersistEventsStepTest extends BaseStepTest {
     system2 = mock(System2.class);
     when(system2.now()).thenReturn(1225630680000L);
 
+    projectSettings = new Settings();
+
     dbComponentsRefCache = new DbComponentsRefCache();
     step = new PersistEventsStep(dbClient, system2, dbComponentsRefCache);
   }
@@ -109,7 +113,7 @@ public class PersistEventsStepTest extends BaseStepTest {
       .setType(Constants.ComponentType.PROJECT)
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     dbTester.assertDbUnit(getClass(), "nothing_to_do_when_no_events_in_report.xml", "events");
   }
@@ -146,7 +150,7 @@ public class PersistEventsStepTest extends BaseStepTest {
       )
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     dbTester.assertDbUnit(getClass(), "add_events-result.xml", "events");
   }
@@ -189,7 +193,7 @@ public class PersistEventsStepTest extends BaseStepTest {
           .build()
       ).build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     dbTester.assertDbUnit(getClass(), "persist_report_events_with_component_children-result.xml", "events");
   }
@@ -215,7 +219,7 @@ public class PersistEventsStepTest extends BaseStepTest {
       .setVersion("1.0")
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     dbTester.assertDbUnit(getClass(), "add_version_event-result.xml", "events");
   }
@@ -241,7 +245,7 @@ public class PersistEventsStepTest extends BaseStepTest {
       .setVersion("1.5-SNAPSHOT")
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     dbTester.assertDbUnit(getClass(), "keep_one_event_by_version-result.xml", "events");
   }
index fde151e5987830b5bfab3afea2ec16d83f83700f..eeb757d4b735255e7c386e0f3add7365c6a81858 100644 (file)
@@ -29,6 +29,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.rules.TemporaryFolder;
+import org.sonar.api.config.Settings;
 import org.sonar.api.utils.System2;
 import org.sonar.batch.protocol.Constants;
 import org.sonar.batch.protocol.output.BatchReport;
@@ -77,6 +78,8 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
 
   DbClient dbClient;
 
+  Settings projectSettings;
+
   System2 system2;
 
   DbComponentsRefCache dbComponentsRefCache;
@@ -90,6 +93,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
     dbTester.truncateTables();
     session = dbTester.myBatis().openSession(false);
     dbClient = new DbClient(dbTester.database(), dbTester.myBatis(), new FileSourceDao(dbTester.myBatis()));
+    projectSettings = new Settings();
 
     reportDir = temp.newFolder();
 
@@ -113,7 +117,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
   public void persist_sources() throws Exception {
     initBasicReport(2);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -156,7 +160,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
       .setLines(3)
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -170,7 +174,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
   public void persist_source_hashes() throws Exception {
     initBasicReport(2);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource("FILE");
@@ -192,7 +196,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
       .setOverallCoveredConditions(4)
       .build()));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -225,7 +229,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
       .addChangesetIndexByLine(0)
       .build());
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -251,7 +255,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
       .build()
       ));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -277,7 +281,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
         ).build()
       ));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -309,7 +313,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
         .build()
       ));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -347,7 +351,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
     // Sources from the report
     initBasicReport(1);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -381,7 +385,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
 
     initBasicReport(1);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -412,7 +416,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
 
     initBasicReport(1);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("file_sources")).isEqualTo(1);
     FileSourceDto fileSourceDto = dbClient.fileSourceDao().selectSource(FILE_UUID);
@@ -437,7 +441,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest {
     ));
 
     try {
-      sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+      sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
       failBecauseExceptionWasNotThrown(IllegalStateException.class);
     } catch (IllegalStateException e){
       assertThat(e).hasMessage("Cannot persist sources of src/Foo.java").hasCauseInstanceOf(IllegalArgumentException.class);
index f158fd33b36e6f68e8136f3e9ee26be3404f7f6f..16e9e6a0387afbb3ed98c6f6a54342905cc9eac5 100644 (file)
@@ -27,6 +27,9 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.rules.TemporaryFolder;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mockito;
+import org.sonar.api.config.Settings;
 import org.sonar.api.rule.RuleKey;
 import org.sonar.api.rule.Severity;
 import org.sonar.api.utils.System2;
@@ -176,7 +179,7 @@ public class PersistMeasuresStepTest extends BaseStepTest {
         .setCharactericId(123456)
         .build()));
 
-    sut.execute(new ComputationContext(new BatchReportReader(dir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(dir), PROJECT_KEY, new Settings()));
     session.commit();
 
     assertThat(dbTester.countRowsOfTable("project_measures")).isEqualTo(2);
index 3d65c32b8d92c3a2146df16316af0e6c92c74f4e..fe09b054623e9af71a80dd80f4fd4134f9322453 100644 (file)
 
 package org.sonar.server.computation.step;
 
+import java.io.File;
+import java.util.Date;
 import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
+import org.sonar.api.config.Settings;
 import org.sonar.api.utils.DateUtils;
 import org.sonar.api.utils.System2;
 import org.sonar.batch.protocol.Constants;
@@ -40,9 +43,6 @@ import org.sonar.server.db.DbClient;
 import org.sonar.server.measure.persistence.MeasureDao;
 import org.sonar.server.source.index.SourceLineIndex;
 
-import java.io.File;
-import java.util.Date;
-
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -60,6 +60,7 @@ public class PersistNumberOfDaysSinceLastCommitStepTest extends BaseStepTest {
   DbClient dbClient;
   SourceLineIndex sourceLineIndex;
   MetricCache metricCache;
+  Settings projectSettings;
 
   DbComponentsRefCache dbComponentsRefCache;
 
@@ -69,6 +70,7 @@ public class PersistNumberOfDaysSinceLastCommitStepTest extends BaseStepTest {
     dbClient = new DbClient(db.database(), db.myBatis(), new MeasureDao());
     sourceLineIndex = mock(SourceLineIndex.class);
     metricCache = mock(MetricCache.class);
+    projectSettings = new Settings();
     when(metricCache.get(anyString())).thenReturn(new MetricDto().setId(10));
     dbComponentsRefCache = new DbComponentsRefCache();
     dir = temp.newFolder();
@@ -94,7 +96,7 @@ public class PersistNumberOfDaysSinceLastCommitStepTest extends BaseStepTest {
         )
         .build()
       );
-    ComputationContext context = new ComputationContext(new BatchReportReader(dir), "PROJECT_KEY");
+    ComputationContext context = new ComputationContext(new BatchReportReader(dir), "PROJECT_KEY", projectSettings);
 
     sut.execute(context);
 
@@ -106,7 +108,7 @@ public class PersistNumberOfDaysSinceLastCommitStepTest extends BaseStepTest {
     Date sixDaysAgo = DateUtils.addDays(new Date(), -6);
     when(sourceLineIndex.lastCommitDateOnProject("project-uuid")).thenReturn(sixDaysAgo);
     initReportWithProjectAndFile();
-    ComputationContext context = new ComputationContext(new BatchReportReader(dir), "PROJECT_KEY");
+    ComputationContext context = new ComputationContext(new BatchReportReader(dir), "PROJECT_KEY", projectSettings);
 
     sut.execute(context);
 
@@ -116,7 +118,7 @@ public class PersistNumberOfDaysSinceLastCommitStepTest extends BaseStepTest {
   @Test
   public void no_scm_information_in_report_and_index() {
     initReportWithProjectAndFile();
-    ComputationContext context = new ComputationContext(new BatchReportReader(dir),"PROJECT_KEY");
+    ComputationContext context = new ComputationContext(new BatchReportReader(dir),"PROJECT_KEY", projectSettings);
 
     sut.execute(context);
 
index 97e9d23b147d11525dbcd6edb643863aafb6be29..61031784c556af324caf3c6699c11b74b73540ee 100644 (file)
@@ -20,6 +20,8 @@
 
 package org.sonar.server.computation.step;
 
+import java.io.File;
+import java.util.Locale;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.ClassRule;
@@ -27,6 +29,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.rules.TemporaryFolder;
+import org.sonar.api.config.Settings;
 import org.sonar.api.i18n.I18n;
 import org.sonar.batch.protocol.Constants;
 import org.sonar.batch.protocol.output.BatchReport;
@@ -40,9 +43,6 @@ import org.sonar.server.computation.component.DbComponentsRefCache;
 import org.sonar.server.db.DbClient;
 import org.sonar.test.DbTests;
 
-import java.io.File;
-import java.util.Locale;
-
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.failBecauseExceptionWasNotThrown;
 import static org.mockito.Mockito.mock;
@@ -60,6 +60,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
   public static DbTester dbTester = new DbTester();
 
   DbSession session;
+  Settings projectSettings;
 
   ComponentLinkDao dao;
 
@@ -73,6 +74,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
   public void setup() {
     session = dbTester.myBatis().openSession(false);
     dao = new ComponentLinkDao();
+    projectSettings = new Settings();
     DbClient dbClient = new DbClient(dbTester.database(), dbTester.myBatis(), dao);
 
     i18n = mock(I18n.class);
@@ -128,7 +130,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
       .addLink(BatchReport.ComponentLink.newBuilder().setType(Constants.ComponentLinkType.SCM).setHref("https://github.com/SonarSource/sonar/server").build())
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     dbTester.assertDbUnit(getClass(), "add_links_on_project_and_module-result.xml", "project_links");
   }
@@ -152,7 +154,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
       .addLink(BatchReport.ComponentLink.newBuilder().setType(Constants.ComponentLinkType.HOME).setHref("http://www.sonarqube.org").build())
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     dbTester.assertDbUnit(getClass(), "nothing_to_do_when_link_already_exists.xml", "project_links");
   }
@@ -176,7 +178,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
       .addLink(BatchReport.ComponentLink.newBuilder().setType(Constants.ComponentLinkType.HOME).setHref("http://www.sonarqube.org").build())
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("project_links")).isEqualTo(0);
   }
@@ -200,7 +202,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
       .addLink(BatchReport.ComponentLink.newBuilder().setType(Constants.ComponentLinkType.HOME).setHref("http://www.sonarqube.org").build())
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     dbTester.assertDbUnit(getClass(), "update_link-result.xml", "project_links");
   }
@@ -223,7 +225,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
       .setType(Constants.ComponentType.PROJECT)
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbTester.countRowsOfTable("project_links")).isEqualTo(0);
   }
@@ -246,7 +248,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
       .setType(Constants.ComponentType.PROJECT)
       .build());
 
-    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     dbTester.assertDbUnit(getClass(), "not_delete_custom_link.xml", "project_links");
   }
@@ -272,7 +274,7 @@ public class PersistProjectLinksStepTest extends BaseStepTest {
       .build());
 
     try {
-      step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+      step.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
       failBecauseExceptionWasNotThrown(IllegalArgumentException.class);
     } catch (IllegalArgumentException e) {
       assertThat(e).hasMessage("Link of type 'homepage' has already been declared on component 'ABCD'");
index 6cf77c1a94def6cdaacaed2b27873a43ce63a029..9e45fdb347f9a7cf512c7876e531c287f30d8380 100644 (file)
 
 package org.sonar.server.computation.step;
 
+import java.io.File;
+import java.util.Arrays;
+import java.util.List;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
+import org.sonar.api.config.Settings;
 import org.sonar.api.utils.System2;
 import org.sonar.api.utils.log.LogTester;
 import org.sonar.api.utils.log.LoggerLevel;
@@ -45,10 +49,6 @@ import org.sonar.server.db.DbClient;
 import org.sonar.server.source.db.FileSourceDao;
 import org.sonar.server.source.db.FileSourceDb;
 
-import java.io.File;
-import java.util.Arrays;
-import java.util.List;
-
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.tuple;
 import static org.mockito.Mockito.mock;
@@ -81,6 +81,7 @@ public class PersistTestsStepTest extends BaseStepTest {
   DbSession session;
   DbClient dbClient;
   System2 system2;
+  Settings projectSettings;
 
   long now = 123456789L;
 
@@ -94,6 +95,7 @@ public class PersistTestsStepTest extends BaseStepTest {
     session = db.myBatis().openSession(false);
     dbClient = new DbClient(db.database(), db.myBatis(), new FileSourceDao(db.myBatis()));
     reportDir = temp.newFolder();
+    projectSettings = new Settings();
 
     system2 = mock(System2.class);
     when(system2.now()).thenReturn(now);
@@ -117,7 +119,7 @@ public class PersistTestsStepTest extends BaseStepTest {
 
   @Test
   public void no_test_in_database_and_batch_report() {
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(dbClient.fileSourceDao().selectTest(TEST_FILE_UUID_1)).isNull();
     assertThat(log.logs()).isEmpty();
@@ -135,7 +137,7 @@ public class PersistTestsStepTest extends BaseStepTest {
       );
     writer.writeCoverageDetails(TEST_FILE_REF_1, coverageDetails);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(db.countRowsOfTable("file_sources")).isEqualTo(1);
 
@@ -159,7 +161,7 @@ public class PersistTestsStepTest extends BaseStepTest {
     writer.writeTests(TEST_FILE_REF_1, Arrays.asList(newTest(1)));
     writer.writeCoverageDetails(TEST_FILE_REF_1, Arrays.asList(newCoverageDetail(1, MAIN_FILE_REF_1)));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     FileSourceDto dto = dbClient.fileSourceDao().selectTest(TEST_FILE_UUID_1);
     assertThat(dto.getCreatedAt()).isEqualTo(now);
@@ -186,7 +188,7 @@ public class PersistTestsStepTest extends BaseStepTest {
     List<BatchReport.Test> batchTests = Arrays.asList(newTest(1));
     writer.writeTests(TEST_FILE_REF_1, batchTests);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     FileSourceDto dto = dbClient.fileSourceDao().selectTest(TEST_FILE_UUID_1);
     assertThat(dto.getFileUuid()).isEqualTo(TEST_FILE_UUID_1);
@@ -205,7 +207,7 @@ public class PersistTestsStepTest extends BaseStepTest {
     writer.writeCoverageDetails(TEST_FILE_REF_1, coverageDetails);
     writer.writeCoverageDetails(TEST_FILE_REF_2, coverageDetails);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     assertThat(log.logs(LoggerLevel.WARN)).hasSize(1);
     assertThat(log.logs(LoggerLevel.WARN).get(0)).isEqualTo("Some coverage tests are not taken into account during analysis of project 'PROJECT_KEY'");
@@ -223,7 +225,7 @@ public class PersistTestsStepTest extends BaseStepTest {
       newCoverageDetailWithLines(1, MAIN_FILE_REF_1, 1, 3),
       newCoverageDetailWithLines(1, MAIN_FILE_REF_1, 2, 4)));
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     FileSourceDto dto = dbClient.fileSourceDao().selectTest(TEST_FILE_UUID_1);
     List<Integer> coveredLines = dto.getTestData().get(0).getCoveredFile(0).getCoveredLineList();
@@ -257,7 +259,7 @@ public class PersistTestsStepTest extends BaseStepTest {
     writer.writeCoverageDetails(TEST_FILE_REF_1, Arrays.asList(newCoverageDetail));
 
     // ACT
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     // ASSERT
     FileSourceDto dto = dbClient.fileSourceDao().selectTest(TEST_FILE_UUID_1);
index 04f6015cb35344d7e1dc2c9bdde46e1028e0392c..efb967031e325b792e686166058e0d6966a2c8a2 100644 (file)
@@ -67,7 +67,7 @@ public class PurgeDatastoresStepTest extends BaseStepTest {
       .build());
 
     ComponentDto project = mock(ComponentDto.class);
-    ComputationContext context = new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY);
+    ComputationContext context = new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, new Settings());
 
     sut.execute(context);
 
index 4b8ca753b754075bd4036ae7fcec48295dc42331..443f3dc86818fe7699c55cec294f85b7ffc5bc38 100644 (file)
@@ -24,6 +24,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 import org.mockito.Mockito;
+import org.sonar.api.config.Settings;
 import org.sonar.api.issue.internal.DefaultIssue;
 import org.sonar.api.notifications.Notification;
 import org.sonar.api.rule.Severity;
@@ -64,6 +65,7 @@ public class SendIssueNotificationsStepTest extends BaseStepTest {
   IssueCache issueCache;
   DbComponentsRefCache dbComponentsRefCache;
   NewIssuesNotificationFactory newIssuesNotificationFactory = mock(NewIssuesNotificationFactory.class, Mockito.RETURNS_DEEP_STUBS);
+  Settings projectSettings = new Settings();
   SendIssueNotificationsStep sut;
 
   File reportDir;
@@ -93,7 +95,7 @@ public class SendIssueNotificationsStepTest extends BaseStepTest {
   public void do_not_send_notifications_if_no_subscribers() throws IOException {
     when(notifService.hasProjectSubscribersForTypes(PROJECT_UUID, SendIssueNotificationsStep.NOTIF_TYPES)).thenReturn(false);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     verify(notifService, never()).deliver(any(Notification.class));
   }
@@ -105,7 +107,7 @@ public class SendIssueNotificationsStepTest extends BaseStepTest {
 
     when(notifService.hasProjectSubscribersForTypes(PROJECT_UUID, SendIssueNotificationsStep.NOTIF_TYPES)).thenReturn(true);
 
-    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY));
+    sut.execute(new ComputationContext(new BatchReportReader(reportDir), PROJECT_KEY, projectSettings));
 
     verify(notifService).deliver(any(NewIssuesNotification.class));
     verify(notifService, atLeastOnce()).deliver(any(IssueChangeNotification.class));