diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2015-01-27 10:50:00 +0100 |
---|---|---|
committer | Julien HENRY <julien.henry@sonarsource.com> | 2015-01-27 17:41:04 +0100 |
commit | edb5e139309f4ce46a9dcd30813ae7a56b9761a1 (patch) | |
tree | 492317efaee78eee8f52f5e5e6cc50aa6139a437 /sonar-batch/src/test/java | |
parent | 746d948321ab881fe0e6d907db43b2d69877509c (diff) | |
download | sonarqube-edb5e139309f4ce46a9dcd30813ae7a56b9761a1.tar.gz sonarqube-edb5e139309f4ce46a9dcd30813ae7a56b9761a1.zip |
SONAR-6088 Remove old preview/h2 mode
Diffstat (limited to 'sonar-batch/src/test/java')
36 files changed, 319 insertions, 310 deletions
diff --git a/sonar-batch/src/test/java/org/sonar/batch/ServerMetadataTest.java b/sonar-batch/src/test/java/org/sonar/batch/ServerMetadataTest.java deleted file mode 100644 index 4c15e5de14d..00000000000 --- a/sonar-batch/src/test/java/org/sonar/batch/ServerMetadataTest.java +++ /dev/null @@ -1,51 +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.batch; - -import org.junit.Test; -import org.sonar.api.utils.DateUtils; - -import java.util.Date; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -public class ServerMetadataTest { - @Test - public void should_proxy_target() { - org.sonar.batch.bootstrap.ServerMetadata client = mock(org.sonar.batch.bootstrap.ServerMetadata.class); - when(client.getId()).thenReturn("id1"); - when(client.getPermanentServerId()).thenReturn("pid1"); - Date startedAt = DateUtils.parseDate("2012-05-18"); - when(client.getStartedAt()).thenReturn(startedAt); - when(client.getURL()).thenReturn("http://foo"); - when(client.getVersion()).thenReturn("v1"); - - ServerMetadata metadata = new ServerMetadata(client); - - assertThat(metadata.getId()).isEqualTo("id1"); - assertThat(metadata.getPermanentServerId()).isEqualTo("pid1"); - assertThat(metadata.getStartedAt()).isEqualTo(startedAt); - assertThat(metadata.getURL()).isEqualTo("http://foo"); - assertThat(metadata.getVersion()).isEqualTo("v1"); - - } -} diff --git a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchDatabaseTest.java b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchDatabaseTest.java index c2db3bf384e..ed3d0dc1f06 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchDatabaseTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchDatabaseTest.java @@ -30,7 +30,7 @@ import static org.mockito.Mockito.mock; public class BatchDatabaseTest { @Test public void should_init_at_least_two_connections() { - BatchDatabase db = new BatchDatabase(new Settings(), mock(JdbcDriverHolder.class), mock(PreviewDatabase.class)); + BatchDatabase db = new BatchDatabase(new Settings(), mock(JdbcDriverHolder.class)); Properties props = new Properties(); db.doCompleteProperties(props); diff --git a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchPluginRepositoryTest.java b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchPluginRepositoryTest.java index 9563fafd318..d0c959abb87 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchPluginRepositoryTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchPluginRepositoryTest.java @@ -46,13 +46,13 @@ public class BatchPluginRepositoryTest { public TemporaryFolder temp = new TemporaryFolder(); private BatchPluginRepository repository; - private AnalysisMode mode; + private DefaultAnalysisMode mode; private FileCache cache; private File userHome; @Before public void before() throws IOException { - mode = mock(AnalysisMode.class); + mode = mock(DefaultAnalysisMode.class); userHome = temp.newFolder(); cache = new FileCacheBuilder().setUserHome(userHome).build(); } diff --git a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/DatabaseCompatibilityTest.java b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/DatabaseCompatibilityTest.java index 98c9391d5be..97402b8a913 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/DatabaseCompatibilityTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/DatabaseCompatibilityTest.java @@ -40,17 +40,17 @@ public class DatabaseCompatibilityTest { public ExpectedException thrown = ExpectedException.none(); DatabaseVersion databaseVersion; - ServerMetadata server; + ServerClient server; Settings settings; PropertiesDao propertiesDao; - private AnalysisMode mode; + private DefaultAnalysisMode mode; @Before public void init() { - server = mock(ServerMetadata.class); + server = mock(ServerClient.class); when(server.getURL()).thenReturn("http://localhost:9000"); - when(server.getServerId()).thenReturn("123456"); + when(server.request("/api/server")).thenReturn("{\"id\":\"123456\",\"version\":\"3.1\",\"status\":\"UP\"}"); settings = new Settings(); settings.setProperty(DatabaseProperties.PROP_URL, "jdbc:postgresql://localhost/foo"); @@ -59,7 +59,7 @@ public class DatabaseCompatibilityTest { propertiesDao = mock(PropertiesDao.class); when(propertiesDao.selectGlobalProperty(CoreProperties.SERVER_ID)).thenReturn(new PropertyDto().setValue("123456")); - mode = mock(AnalysisMode.class); + mode = mock(DefaultAnalysisMode.class); databaseVersion = mock(DatabaseVersion.class); } @@ -110,7 +110,7 @@ public class DatabaseCompatibilityTest { @Test public void shouldFailIfCantGetServerId() throws Exception { - when(server.getServerId()).thenThrow(new IllegalStateException()); + when(server.request("/api/server")).thenThrow(new IllegalStateException()); thrown.expect(IllegalStateException.class); diff --git a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/AnalysisModeTest.java b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/DefaultAnalysisModeTest.java index 9863d9421e1..f4d129bb4ff 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/AnalysisModeTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/DefaultAnalysisModeTest.java @@ -27,17 +27,17 @@ import java.util.Collections; import static org.assertj.core.api.Assertions.assertThat; -public class AnalysisModeTest { +public class DefaultAnalysisModeTest { @Test public void regular_analysis_by_default() { - AnalysisMode mode = new AnalysisMode(new BootstrapProperties(Collections.<String, String>emptyMap())); + DefaultAnalysisMode mode = new DefaultAnalysisMode(new BootstrapProperties(Collections.<String, String>emptyMap())); assertThat(mode.isPreview()).isFalse(); assertThat(mode.isIncremental()).isFalse(); BootstrapProperties bootstrapProps = new BootstrapProperties(ImmutableMap.of(CoreProperties.ANALYSIS_MODE, "pouet")); - mode = new AnalysisMode(bootstrapProps); + mode = new DefaultAnalysisMode(bootstrapProps); assertThat(mode.isPreview()).isFalse(); assertThat(mode.isIncremental()).isFalse(); @@ -46,7 +46,7 @@ public class AnalysisModeTest { @Test public void support_analysis_mode() { BootstrapProperties bootstrapProps = new BootstrapProperties(ImmutableMap.of(CoreProperties.ANALYSIS_MODE, CoreProperties.ANALYSIS_MODE_ANALYSIS)); - AnalysisMode mode = new AnalysisMode(bootstrapProps); + DefaultAnalysisMode mode = new DefaultAnalysisMode(bootstrapProps); assertThat(mode.isPreview()).isFalse(); assertThat(mode.isIncremental()).isFalse(); @@ -55,7 +55,7 @@ public class AnalysisModeTest { @Test public void support_preview_mode() { BootstrapProperties bootstrapProps = new BootstrapProperties(ImmutableMap.of(CoreProperties.ANALYSIS_MODE, CoreProperties.ANALYSIS_MODE_PREVIEW)); - AnalysisMode mode = new AnalysisMode(bootstrapProps); + DefaultAnalysisMode mode = new DefaultAnalysisMode(bootstrapProps); assertThat(mode.isPreview()).isTrue(); assertThat(mode.isIncremental()).isFalse(); @@ -66,7 +66,7 @@ public class AnalysisModeTest { @Test public void support_incremental_mode() { BootstrapProperties bootstrapProps = new BootstrapProperties(ImmutableMap.of(CoreProperties.ANALYSIS_MODE, CoreProperties.ANALYSIS_MODE_INCREMENTAL)); - AnalysisMode mode = new AnalysisMode(bootstrapProps); + DefaultAnalysisMode mode = new DefaultAnalysisMode(bootstrapProps); assertThat(mode.isPreview()).isTrue(); assertThat(mode.isIncremental()).isTrue(); @@ -77,34 +77,9 @@ public class AnalysisModeTest { @Test public void support_deprecated_dryrun_property() { BootstrapProperties bootstrapProps = new BootstrapProperties(ImmutableMap.of(CoreProperties.DRY_RUN, "true")); - AnalysisMode mode = new AnalysisMode(bootstrapProps); + DefaultAnalysisMode mode = new DefaultAnalysisMode(bootstrapProps); assertThat(mode.isPreview()).isTrue(); assertThat(mode.isIncremental()).isFalse(); } - - @Test - public void should_get_default_preview_read_timeout() { - BootstrapProperties bootstrapProps = new BootstrapProperties(ImmutableMap.of(CoreProperties.ANALYSIS_MODE, CoreProperties.ANALYSIS_MODE_PREVIEW)); - AnalysisMode mode = new AnalysisMode(bootstrapProps); - - assertThat(mode.getPreviewReadTimeoutSec()).isEqualTo(60); - } - - @Test - public void should_download_database_with_deprecated_overriden_timeout() { - BootstrapProperties bootstrapProps = new BootstrapProperties(ImmutableMap.of(CoreProperties.DRY_RUN, "true", CoreProperties.DRY_RUN_READ_TIMEOUT_SEC, "80")); - AnalysisMode mode = new AnalysisMode(bootstrapProps); - - assertThat(mode.getPreviewReadTimeoutSec()).isEqualTo(80); - } - - @Test - public void should_download_database_with_overriden_timeout() { - BootstrapProperties bootstrapProps = new BootstrapProperties(ImmutableMap.of(CoreProperties.ANALYSIS_MODE, CoreProperties.ANALYSIS_MODE_PREVIEW, - CoreProperties.PREVIEW_READ_TIMEOUT_SEC, "80")); - AnalysisMode mode = new AnalysisMode(bootstrapProps); - - assertThat(mode.getPreviewReadTimeoutSec()).isEqualTo(80); - } } diff --git a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/ExtensionInstallerTest.java b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/ExtensionInstallerTest.java index 401d2da433f..c6bc80c9862 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/ExtensionInstallerTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/ExtensionInstallerTest.java @@ -42,7 +42,7 @@ import static org.mockito.Mockito.when; public class ExtensionInstallerTest { - private AnalysisMode mode; + private DefaultAnalysisMode mode; PluginMetadata metadata = mock(PluginMetadata.class); Map<PluginMetadata, Plugin> newPlugin(final Object... extensions) { @@ -59,7 +59,7 @@ public class ExtensionInstallerTest { @Before public void setUp() throws Exception { - mode = mock(AnalysisMode.class); + mode = mock(DefaultAnalysisMode.class); } @Test diff --git a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/ExtensionUtilsTest.java b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/ExtensionUtilsTest.java index 23b0196947b..95138b2e904 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/ExtensionUtilsTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/ExtensionUtilsTest.java @@ -22,8 +22,8 @@ package org.sonar.batch.bootstrap; import org.junit.Test; import org.sonar.api.BatchExtension; import org.sonar.api.ServerExtension; -import org.sonar.core.DryRunIncompatible; import org.sonar.api.batch.InstantiationStrategy; +import org.sonar.api.batch.RequiresDB; import org.sonar.api.batch.SupportedEnvironment; import org.sonar.batch.bootstrapper.EnvironmentInformation; @@ -80,11 +80,11 @@ public class ExtensionUtilsTest { } @Test - public void shouldSupportDryRun() { - assertThat(ExtensionUtils.supportsPreview(BatchService.class)).isTrue(); - assertThat(ExtensionUtils.supportsPreview(new BatchService())).isTrue(); - assertThat(ExtensionUtils.supportsPreview(PersistentService.class)).isFalse(); - assertThat(ExtensionUtils.supportsPreview(new PersistentService())).isFalse(); + public void shouldRequiresDB() { + assertThat(ExtensionUtils.requiresDB(BatchService.class)).isFalse(); + assertThat(ExtensionUtils.requiresDB(new BatchService())).isFalse(); + assertThat(ExtensionUtils.requiresDB(PersistentService.class)).isTrue(); + assertThat(ExtensionUtils.requiresDB(new PersistentService())).isTrue(); } @InstantiationStrategy(InstantiationStrategy.PER_BATCH) @@ -115,7 +115,7 @@ public class ExtensionUtilsTest { } - @DryRunIncompatible + @RequiresDB public static class PersistentService implements BatchExtension { } diff --git a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BootstrapContainerTest.java b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/GlobalContainerTest.java index 8a4ca2f24b6..9fce2c7a951 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BootstrapContainerTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/GlobalContainerTest.java @@ -39,10 +39,10 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; -public class BootstrapContainerTest { +public class GlobalContainerTest { @Test public void should_add_components() { - BootstrapContainer container = BootstrapContainer.create(Collections.<String, String>emptyMap(), Collections.emptyList()); + GlobalContainer container = GlobalContainer.create(Collections.<String, String>emptyMap(), Collections.emptyList()); container.doBeforeStart(); assertThat(container.getComponentByType(Logback.class)).isNotNull(); @@ -51,7 +51,7 @@ public class BootstrapContainerTest { @Test public void should_add_bootstrap_extensions() { - BootstrapContainer container = BootstrapContainer.create(Collections.<String, String>emptyMap(), Lists.newArrayList(Foo.class, new Bar())); + GlobalContainer container = GlobalContainer.create(Collections.<String, String>emptyMap(), Lists.newArrayList(Foo.class, new Bar())); container.doBeforeStart(); assertThat(container.getComponentByType(Foo.class)).isNotNull(); @@ -67,7 +67,7 @@ public class BootstrapContainerTest { metadata, plugin )); - BootstrapContainer container = spy(BootstrapContainer.create(Collections.<String, String>emptyMap(), Lists.<Object>newArrayList(pluginRepository))); + GlobalContainer container = spy(GlobalContainer.create(Collections.<String, String>emptyMap(), Lists.<Object>newArrayList(pluginRepository))); doNothing().when(container).executeTask(Collections.<String, String>emptyMap()); container.doAfterStart(); diff --git a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/GlobalSettingsTest.java b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/GlobalSettingsTest.java index 47bdb3e1db6..738bd0d5fa0 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/GlobalSettingsTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/GlobalSettingsTest.java @@ -41,13 +41,13 @@ public class GlobalSettingsTest { ProjectDefinition project = ProjectDefinition.create().setKey("struts"); BootstrapProperties bootstrapProps; - private AnalysisMode mode; + private DefaultAnalysisMode mode; @Before public void prepare() { globalRef = new GlobalRepositories(); bootstrapProps = new BootstrapProperties(Collections.<String, String>emptyMap()); - mode = mock(AnalysisMode.class); + mode = mock(DefaultAnalysisMode.class); } @Test diff --git a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/JdbcDriverHolderTest.java b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/JdbcDriverHolderTest.java index c3c2ba86b8e..a5040b47f35 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/JdbcDriverHolderTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/JdbcDriverHolderTest.java @@ -44,12 +44,12 @@ public class JdbcDriverHolderTest { public ExpectedException thrown = ExpectedException.none(); ClassLoader initialThreadClassloader; - private AnalysisMode mode; + private DefaultAnalysisMode mode; @Before public void before() { initialThreadClassloader = Thread.currentThread().getContextClassLoader(); - mode = mock(AnalysisMode.class); + mode = mock(DefaultAnalysisMode.class); } @After diff --git a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/PreviewDatabaseTest.java b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/PreviewDatabaseTest.java deleted file mode 100644 index 8be7e4a6fa3..00000000000 --- a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/PreviewDatabaseTest.java +++ /dev/null @@ -1,141 +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.batch.bootstrap; - -import org.apache.commons.lang.StringUtils; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.junit.rules.TemporaryFolder; -import org.sonar.api.CoreProperties; -import org.sonar.api.config.Settings; -import org.sonar.api.database.DatabaseProperties; -import org.sonar.api.utils.HttpDownloader; -import org.sonar.api.utils.SonarException; -import org.sonar.api.utils.TempFolder; - -import java.io.File; -import java.net.SocketTimeoutException; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyZeroInteractions; -import static org.mockito.Mockito.when; - -public class PreviewDatabaseTest { - Settings settings; - ServerClient server = mock(ServerClient.class); - TempFolder tempUtils = mock(TempFolder.class); - File databaseFile; - private AnalysisMode mode; - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - @Before - public void setUp() throws Exception { - databaseFile = temp.newFile("preview.h2.db"); - when(tempUtils.newFile("preview", ".h2.db")).thenReturn(databaseFile); - settings = new Settings(); - settings.setProperty(CoreProperties.PROJECT_KEY_PROPERTY, "group:project"); - - mode = mock(AnalysisMode.class); - when(mode.isPreview()).thenReturn(true); - when(mode.getPreviewReadTimeoutSec()).thenReturn(60); - } - - @Test - public void should_be_disabled_if_not_preview() { - when(mode.isPreview()).thenReturn(false); - new PreviewDatabase(settings, server, tempUtils, mode).start(); - - verifyZeroInteractions(tempUtils, server); - } - - @Test - public void should_download_database() { - new PreviewDatabase(settings, server, tempUtils, mode).start(); - - verify(server).download("/batch_bootstrap/db?project=group:project", databaseFile, 60000); - } - - @Test - public void should_download_database_on_branch() { - settings.setProperty(CoreProperties.PROJECT_BRANCH_PROPERTY, "mybranch"); - new PreviewDatabase(settings, server, tempUtils, mode).start(); - - verify(server).download("/batch_bootstrap/db?project=group:project:mybranch", databaseFile, 60000); - } - - @Test - public void should_replace_database_settings() { - new PreviewDatabase(settings, server, tempUtils, mode).start(); - - assertThat(settings.getString(DatabaseProperties.PROP_DIALECT)).isEqualTo("h2"); - assertThat(settings.getString(DatabaseProperties.PROP_DRIVER)).isEqualTo("org.h2.Driver"); - assertThat(settings.getString(DatabaseProperties.PROP_USER)).isEqualTo("sonar"); - assertThat(settings.getString(DatabaseProperties.PROP_PASSWORD)).isEqualTo("sonar"); - assertThat(settings.getString(DatabaseProperties.PROP_URL)).isEqualTo("jdbc:h2:" + StringUtils.removeEnd(databaseFile.getAbsolutePath(), ".h2.db")); - } - - @Test - public void should_fail_on_invalid_role() { - doThrow(new SonarException(new HttpDownloader.HttpException(null, 401))).when(server).download("/batch_bootstrap/db?project=group:project", databaseFile, 60000); - - thrown.expect(SonarException.class); - thrown.expectMessage("You don't have access rights to project [group:project]"); - - new PreviewDatabase(settings, server, tempUtils, mode).start(); - } - - @Test - public void should_fail_on_read_timeout() { - doThrow(new SonarException(new SocketTimeoutException())).when(server).download("/batch_bootstrap/db?project=group:project", databaseFile, 60000); - - thrown.expect(SonarException.class); - thrown.expectMessage("Preview database read timed out after 60000 ms. You can try to increase read timeout with property -Dsonar.preview.readTimeout (in seconds)"); - - new PreviewDatabase(settings, server, tempUtils, mode).start(); - } - - @Test - public void should_fail() { - doThrow(new SonarException("BUG")).when(server).download("/batch_bootstrap/db?project=group:project", databaseFile, 60000); - - thrown.expect(SonarException.class); - thrown.expectMessage("BUG"); - - new PreviewDatabase(settings, server, tempUtils, mode).start(); - } - - @Test - public void project_should_be_optional() { - // on non-scan tasks - settings.removeProperty(CoreProperties.PROJECT_KEY_PROPERTY); - new PreviewDatabase(settings, server, tempUtils, mode).start(); - verify(server).download("/batch_bootstrap/db", databaseFile, 60000); - } -} diff --git a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/TaskContainerTest.java b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/TaskContainerTest.java index 95ca145c161..9d5ff90cb72 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/TaskContainerTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/TaskContainerTest.java @@ -33,14 +33,14 @@ public class TaskContainerTest { @Test public void should_add_project_reactor_builder_by_default() { - BootstrapContainer container = BootstrapContainer.create(Collections.<String, String>emptyMap(), + GlobalContainer container = GlobalContainer.create(Collections.<String, String>emptyMap(), Lists.newArrayList(new BootstrapProperties(Collections.<String, String>emptyMap()))); TaskContainer taskContainer = new TaskContainer(container, Collections.<String, String>emptyMap()); taskContainer.installCoreTasks(); assertThat(taskContainer.getComponentByType(ProjectReactorBuilder.class)).isNotNull().isInstanceOf(ProjectReactorBuilder.class); - container = BootstrapContainer.create(Collections.<String, String>emptyMap(), + container = GlobalContainer.create(Collections.<String, String>emptyMap(), Lists.newArrayList(new BootstrapProperties(Collections.<String, String>emptyMap()), new EnvironmentInformation("SonarQubeRunner", "2.4"))); taskContainer = new TaskContainer(container, Collections.<String, String>emptyMap()); taskContainer.installCoreTasks(); @@ -50,7 +50,7 @@ public class TaskContainerTest { @Test public void should_add_deprecated_project_reactor_builder_if_old_runner() { - BootstrapContainer container = BootstrapContainer.create(Collections.<String, String>emptyMap(), + GlobalContainer container = GlobalContainer.create(Collections.<String, String>emptyMap(), Lists.newArrayList(new BootstrapProperties(Collections.<String, String>emptyMap()), new EnvironmentInformation("SonarRunner", "2.3"))); TaskContainer taskContainer = new TaskContainer(container, Collections.<String, String>emptyMap()); taskContainer.installCoreTasks(); diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/dependency/DependencyMediumTest.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/dependency/DependencyMediumTest.java index 606b4d6ea3f..4d562d4de87 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/dependency/DependencyMediumTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/dependency/DependencyMediumTest.java @@ -45,7 +45,6 @@ public class DependencyMediumTest { public BatchMediumTester tester = BatchMediumTester.builder() .registerPlugin("xoo", new XooPlugin()) .addDefaultQProfile("xoo", "Sonar Way") - .bootstrapProperties(ImmutableMap.of("sonar.analysis.mode", "sensor")) .build(); @Before diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/fs/FileSystemMediumTest.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/fs/FileSystemMediumTest.java index 811a24870b7..03c40181906 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/fs/FileSystemMediumTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/fs/FileSystemMediumTest.java @@ -51,7 +51,6 @@ public class FileSystemMediumTest { public BatchMediumTester tester = BatchMediumTester.builder() .registerPlugin("xoo", new XooPlugin()) .addDefaultQProfile("xoo", "Sonar Way") - .bootstrapProperties(ImmutableMap.of("sonar.analysis.mode", "sensor")) .build(); private File baseDir; diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/highlighting/HighlightingMediumTest.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/highlighting/HighlightingMediumTest.java index 3572e2d2691..9b95241d26e 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/highlighting/HighlightingMediumTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/highlighting/HighlightingMediumTest.java @@ -19,8 +19,6 @@ */ package org.sonar.batch.mediumtest.highlighting; -import org.sonar.batch.mediumtest.TaskResult; - import com.google.common.collect.ImmutableMap; import org.apache.commons.io.FileUtils; import org.junit.After; @@ -32,6 +30,7 @@ import org.junit.rules.TestName; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.sensor.highlighting.TypeOfText; import org.sonar.batch.mediumtest.BatchMediumTester; +import org.sonar.batch.mediumtest.TaskResult; import org.sonar.xoo.XooPlugin; import java.io.File; @@ -50,7 +49,6 @@ public class HighlightingMediumTest { public BatchMediumTester tester = BatchMediumTester.builder() .registerPlugin("xoo", new XooPlugin()) .addDefaultQProfile("xoo", "Sonar Way") - .bootstrapProperties(ImmutableMap.of("sonar.analysis.mode", "sensor")) .build(); @Before diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issues/IssuesMediumTest.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issues/IssuesMediumTest.java index a6bed59f2fd..994fdaa676c 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issues/IssuesMediumTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issues/IssuesMediumTest.java @@ -45,7 +45,6 @@ public class IssuesMediumTest { .registerPlugin("xoo", new XooPlugin()) .addDefaultQProfile("xoo", "Sonar Way") .activateRule(new ActiveRule("xoo", "OneIssuePerLine", "One issue per line", "MAJOR", "OneIssuePerLine.internal", "xoo")) - .bootstrapProperties(ImmutableMap.of("sonar.analysis.mode", "sensor")) .build(); @Before diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issues/IssuesOnDirMediumTest.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issues/IssuesOnDirMediumTest.java index ac15f4c67c1..c6156e4cecc 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issues/IssuesOnDirMediumTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issues/IssuesOnDirMediumTest.java @@ -44,7 +44,6 @@ public class IssuesOnDirMediumTest { .registerPlugin("xoo", new XooPlugin()) .addDefaultQProfile("xoo", "Sonar Way") .activateRule(new ActiveRule("xoo", "OneIssueOnDirPerFile", "One issue per line", "MINOR", "xoo", "xoo")) - .bootstrapProperties(ImmutableMap.of("sonar.analysis.mode", "sensor")) .build(); @Before diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/measures/MeasuresMediumTest.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/measures/MeasuresMediumTest.java index e1226a9849e..6656f5dd7c7 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/measures/MeasuresMediumTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/measures/MeasuresMediumTest.java @@ -45,7 +45,6 @@ public class MeasuresMediumTest { public BatchMediumTester tester = BatchMediumTester.builder() .registerPlugin("xoo", new XooPlugin()) .addDefaultQProfile("xoo", "Sonar Way") - .bootstrapProperties(ImmutableMap.of("sonar.analysis.mode", "sensor")) .build(); @Before diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issues/ReportsMediumTest.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/preview/ReportsMediumTest.java index 71929a9686f..16d4f7350fb 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/issues/ReportsMediumTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/preview/ReportsMediumTest.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.batch.mediumtest.issues; +package org.sonar.batch.mediumtest.preview; import com.google.common.collect.ImmutableMap; import org.apache.commons.codec.digest.DigestUtils; @@ -25,6 +25,7 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.rules.TemporaryFolder; +import org.sonar.api.CoreProperties; import org.sonar.batch.mediumtest.BatchMediumTester; import org.sonar.batch.mediumtest.TaskResult; import org.sonar.batch.protocol.input.ActiveRule; @@ -36,8 +37,6 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; -import static org.assertj.core.api.Assertions.assertThat; - public class ReportsMediumTest { @org.junit.Rule @@ -54,10 +53,10 @@ public class ReportsMediumTest { } public BatchMediumTester tester = BatchMediumTester.builder() + .bootstrapProperties(ImmutableMap.of(CoreProperties.ANALYSIS_MODE, CoreProperties.ANALYSIS_MODE_PREVIEW)) .registerPlugin("xoo", new XooPlugin()) .addDefaultQProfile("xoo", "Sonar Way") .activateRule(new ActiveRule("xoo", "OneIssuePerLine", "One issue per line", "MAJOR", "OneIssuePerLine.internal", "xoo")) - .bootstrapProperties(ImmutableMap.of("sonar.analysis.mode", "sensor")) // Existing issue .addPreviousIssue(new PreviousIssue().setKey("xyz") .setComponentKey("sample:xources/hello/HelloJava.xoo") @@ -97,7 +96,6 @@ public class ReportsMediumTest { .property("sonar.issuesReport.console.enable", "true") .start(); - assertThat(result.issues()).hasSize(15); } @Test @@ -109,7 +107,6 @@ public class ReportsMediumTest { .property("sonar.issuesReport.html.enable", "true") .start(); - assertThat(result.issues()).hasSize(15); } } diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/scm/ScmMediumTest.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/scm/ScmMediumTest.java index c8456c6c803..13994e0081c 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/scm/ScmMediumTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/scm/ScmMediumTest.java @@ -50,7 +50,6 @@ public class ScmMediumTest { public BatchMediumTester tester = BatchMediumTester.builder() .registerPlugin("xoo", new XooPlugin()) .addDefaultQProfile("xoo", "Sonar Way") - .bootstrapProperties(ImmutableMap.of("sonar.analysis.mode", "sensor")) .build(); @Before diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/symbol/SymbolMediumTest.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/symbol/SymbolMediumTest.java index ec00c3a288b..a231c93f69b 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/symbol/SymbolMediumTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/symbol/SymbolMediumTest.java @@ -19,8 +19,6 @@ */ package org.sonar.batch.mediumtest.symbol; -import org.sonar.batch.mediumtest.TaskResult; - import com.google.common.collect.ImmutableMap; import org.apache.commons.io.FileUtils; import org.junit.After; @@ -29,6 +27,7 @@ import org.junit.Test; import org.junit.rules.TemporaryFolder; import org.sonar.api.batch.fs.InputFile; import org.sonar.batch.mediumtest.BatchMediumTester; +import org.sonar.batch.mediumtest.TaskResult; import org.sonar.xoo.XooPlugin; import java.io.File; @@ -44,7 +43,6 @@ public class SymbolMediumTest { public BatchMediumTester tester = BatchMediumTester.builder() .registerPlugin("xoo", new XooPlugin()) .addDefaultQProfile("xoo", "Sonar Way") - .bootstrapProperties(ImmutableMap.of("sonar.analysis.mode", "sensor")) .build(); @Before diff --git a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/test/TestMediumTest.java b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/test/TestMediumTest.java index b5478a5faab..700aa0aaee8 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/mediumtest/test/TestMediumTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/mediumtest/test/TestMediumTest.java @@ -45,7 +45,6 @@ public class TestMediumTest { public BatchMediumTester tester = BatchMediumTester.builder() .registerPlugin("xoo", new XooPlugin()) .addDefaultQProfile("xoo", "Sonar Way") - .bootstrapProperties(ImmutableMap.of("sonar.analysis.mode", "sensor")) .build(); @Before diff --git a/sonar-batch/src/test/java/org/sonar/batch/phases/DefaultPhaseExecutorTest.java b/sonar-batch/src/test/java/org/sonar/batch/phases/DatabaseModePhaseExecutorTest.java index 262cc1da068..d3bc6b2f86e 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/phases/DefaultPhaseExecutorTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/phases/DatabaseModePhaseExecutorTest.java @@ -27,7 +27,7 @@ import org.sonar.batch.index.ScanPersister; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; -public class DefaultPhaseExecutorTest { +public class DatabaseModePhaseExecutorTest { @Test public void shouldSortPersisters() { @@ -35,17 +35,17 @@ public class DefaultPhaseExecutorTest { MeasurePersister measurePersister = new MeasurePersister(null, null, null, null, null); ResourcePersister resourcePersister = new ResourcePersister(null, null, null, null, null); ScanPersister[] persisters = new ScanPersister[] {otherPersister, measurePersister, resourcePersister}; - DefaultPhaseExecutor executor = new DefaultPhaseExecutor(null, null, null, null, null, null, + DatabaseModePhaseExecutor executor = new DatabaseModePhaseExecutor(null, null, null, null, null, null, null, null, null, null, null, persisters, null, null, null, null, null, null, null, null); assertThat(executor.sortedPersisters()).containsSubsequence(resourcePersister, measurePersister); persisters = new ScanPersister[] {measurePersister, resourcePersister, otherPersister}; - executor = new DefaultPhaseExecutor(null, null, null, null, null, null, + executor = new DatabaseModePhaseExecutor(null, null, null, null, null, null, null, null, null, null, null, persisters, null, null, null, null, null, null, null, null); assertThat(executor.sortedPersisters()).containsSubsequence(resourcePersister, measurePersister); persisters = new ScanPersister[] {measurePersister, otherPersister, resourcePersister}; - executor = new DefaultPhaseExecutor(null, null, null, null, null, null, + executor = new DatabaseModePhaseExecutor(null, null, null, null, null, null, null, null, null, null, null, persisters, null, null, null, null, null, null, null, null); assertThat(executor.sortedPersisters()).containsSubsequence(resourcePersister, measurePersister); } diff --git a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/ServerMetadataTest.java b/sonar-batch/src/test/java/org/sonar/batch/platform/DefaultServerTest.java index 6425547672e..8c5e2a74752 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/ServerMetadataTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/platform/DefaultServerTest.java @@ -17,23 +17,18 @@ * 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.batch.bootstrap; +package org.sonar.batch.platform; import org.junit.Test; import org.sonar.api.CoreProperties; import org.sonar.api.config.Settings; +import org.sonar.batch.bootstrap.ServerClient; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class ServerMetadataTest { - - @Test - public void shouldExtractId() throws Exception { - ServerMetadata metadata = new ServerMetadata(new Settings(), mock(ServerClient.class)); - assertThat(metadata.extractServerId("{\"id\":\"123456\",\"version\":\"3.1\",\"status\":\"UP\"}")).isEqualTo("123456"); - } +public class DefaultServerTest { @Test public void shouldLoadServerProperties() { @@ -45,7 +40,7 @@ public class ServerMetadataTest { ServerClient client = mock(ServerClient.class); when(client.getURL()).thenReturn("http://foo.com"); - ServerMetadata metadata = new ServerMetadata(settings, client); + DefaultServer metadata = new DefaultServer(settings, client); assertThat(metadata.getId()).isEqualTo("123"); assertThat(metadata.getVersion()).isEqualTo("2.2"); diff --git a/sonar-batch/src/test/java/org/sonar/batch/report/PublishReportJobTest.java b/sonar-batch/src/test/java/org/sonar/batch/report/PublishReportJobTest.java index e28e0643fb0..924f05d25f2 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/report/PublishReportJobTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/report/PublishReportJobTest.java @@ -27,7 +27,7 @@ import org.sonar.api.config.Settings; import org.sonar.api.platform.Server; import org.sonar.api.resources.Project; import org.sonar.api.utils.TempFolder; -import org.sonar.batch.bootstrap.AnalysisMode; +import org.sonar.batch.bootstrap.DefaultAnalysisMode; import org.sonar.batch.bootstrap.ServerClient; import org.sonar.batch.index.ResourceCache; import org.sonar.jpa.test.AbstractDbUnitTestCase; @@ -38,13 +38,13 @@ import static org.mockito.Mockito.when; public class PublishReportJobTest extends AbstractDbUnitTestCase { - private AnalysisMode mode; + private DefaultAnalysisMode mode; ResourceCache resourceCache = mock(ResourceCache.class); @Before public void setUp() { - mode = mock(AnalysisMode.class); + mode = mock(DefaultAnalysisMode.class); } @Test diff --git a/sonar-batch/src/test/java/org/sonar/batch/repository/DefaultProjectRepositoriesLoaderTest.java b/sonar-batch/src/test/java/org/sonar/batch/repository/DefaultProjectRepositoriesLoaderTest.java index 27e07d7edc0..3cb1f9ba462 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/repository/DefaultProjectRepositoriesLoaderTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/repository/DefaultProjectRepositoriesLoaderTest.java @@ -27,7 +27,7 @@ import org.junit.Test; import org.sonar.api.batch.bootstrap.ProjectDefinition; import org.sonar.api.batch.bootstrap.ProjectReactor; import org.sonar.api.database.DatabaseSession; -import org.sonar.batch.bootstrap.AnalysisMode; +import org.sonar.batch.bootstrap.DefaultAnalysisMode; import org.sonar.batch.bootstrap.ServerClient; import org.sonar.batch.bootstrap.TaskProperties; import org.sonar.batch.rule.ModuleQProfiles; @@ -42,14 +42,14 @@ public class DefaultProjectRepositoriesLoaderTest { private DefaultProjectRepositoriesLoader loader; private ServerClient serverClient; - private AnalysisMode analysisMode; + private DefaultAnalysisMode analysisMode; private ProjectReactor reactor; private TaskProperties taskProperties; @Before public void prepare() { serverClient = mock(ServerClient.class); - analysisMode = mock(AnalysisMode.class); + analysisMode = mock(DefaultAnalysisMode.class); loader = new DefaultProjectRepositoriesLoader(mock(DatabaseSession.class), serverClient, analysisMode); loader = spy(loader); doReturn(null).when(loader).lastSnapshotCreationDate(anyString()); diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/ModuleSettingsTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/ModuleSettingsTest.java index 7215d7b1940..abf12abc034 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/scan/ModuleSettingsTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/scan/ModuleSettingsTest.java @@ -27,7 +27,7 @@ import org.junit.rules.ExpectedException; import org.sonar.api.batch.bootstrap.ProjectDefinition; import org.sonar.api.config.PropertyDefinitions; import org.sonar.api.utils.MessageException; -import org.sonar.batch.bootstrap.AnalysisMode; +import org.sonar.batch.bootstrap.DefaultAnalysisMode; import org.sonar.batch.bootstrap.GlobalSettings; import org.sonar.batch.protocol.input.ProjectRepositories; @@ -43,12 +43,12 @@ public class ModuleSettingsTest { public ExpectedException thrown = ExpectedException.none(); ProjectRepositories projectRef; - private AnalysisMode mode; + private DefaultAnalysisMode mode; @Before public void before() { projectRef = new ProjectRepositories(); - mode = mock(AnalysisMode.class); + mode = mock(DefaultAnalysisMode.class); } @Test diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectLockTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectLockTest.java index 5424028b132..f0570150c82 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectLockTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectLockTest.java @@ -26,7 +26,7 @@ import org.sonar.api.resources.Project; import org.sonar.api.utils.Semaphores; import org.sonar.api.utils.SonarException; import org.sonar.batch.ProjectTree; -import org.sonar.batch.bootstrap.AnalysisMode; +import org.sonar.batch.bootstrap.DefaultAnalysisMode; import java.util.Locale; @@ -44,11 +44,11 @@ public class ProjectLockTest { ProjectTree projectTree = mock(ProjectTree.class); I18n i18n = mock(I18n.class); Project project; - private AnalysisMode mode; + private DefaultAnalysisMode mode; @Before public void setUp() { - mode = mock(AnalysisMode.class); + mode = mock(DefaultAnalysisMode.class); project = new Project("my-project-key"); when(projectTree.getRootProject()).thenReturn(project); diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectScanContainerTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectScanContainerTest.java index bbfa7acefd4..cc3a1158427 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectScanContainerTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectScanContainerTest.java @@ -36,7 +36,7 @@ import org.sonar.api.platform.ComponentContainer; import org.sonar.api.task.TaskExtension; import org.sonar.api.utils.System2; import org.sonar.api.utils.TempFolder; -import org.sonar.batch.bootstrap.AnalysisMode; +import org.sonar.batch.bootstrap.DefaultAnalysisMode; import org.sonar.batch.bootstrap.BootstrapProperties; import org.sonar.batch.bootstrap.ExtensionInstaller; import org.sonar.batch.bootstrap.GlobalSettings; @@ -64,7 +64,7 @@ public class ProjectScanContainerTest { public void prepare() { projectBootstrapper = mock(ProjectBootstrapper.class); bootstrapProperties = new BootstrapProperties(Collections.<String, String>emptyMap()); - AnalysisMode analysisMode = new AnalysisMode(bootstrapProperties); + DefaultAnalysisMode analysisMode = new DefaultAnalysisMode(bootstrapProperties); when(projectBootstrapper.bootstrap()).thenReturn(new ProjectReactor(ProjectDefinition.create())); parentContainer = new ComponentContainer(); parentContainer.add(System2.INSTANCE); diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectSettingsTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectSettingsTest.java index 58ade46e025..6ba93100ea0 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectSettingsTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/scan/ProjectSettingsTest.java @@ -29,7 +29,7 @@ import org.sonar.api.batch.bootstrap.ProjectDefinition; import org.sonar.api.batch.bootstrap.ProjectReactor; import org.sonar.api.config.PropertyDefinitions; import org.sonar.api.utils.MessageException; -import org.sonar.batch.bootstrap.AnalysisMode; +import org.sonar.batch.bootstrap.DefaultAnalysisMode; import org.sonar.batch.bootstrap.BootstrapProperties; import org.sonar.batch.bootstrap.GlobalSettings; import org.sonar.batch.protocol.input.GlobalRepositories; @@ -50,12 +50,12 @@ public class ProjectSettingsTest { ProjectDefinition project = ProjectDefinition.create().setKey("struts"); GlobalSettings bootstrapProps; - private AnalysisMode mode; + private DefaultAnalysisMode mode; @Before public void prepare() { projectRef = new ProjectRepositories(); - mode = mock(AnalysisMode.class); + mode = mock(DefaultAnalysisMode.class); bootstrapProps = new GlobalSettings(new BootstrapProperties(Collections.<String, String>emptyMap()), new PropertyDefinitions(), new GlobalRepositories(), mode); } diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileBuilderFactoryTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileBuilderFactoryTest.java index 9a753c7e66f..e702dbbfa81 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileBuilderFactoryTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileBuilderFactoryTest.java @@ -24,7 +24,7 @@ import org.mockito.Mockito; import org.sonar.api.batch.bootstrap.ProjectDefinition; import org.sonar.api.config.Settings; import org.sonar.api.scan.filesystem.PathResolver; -import org.sonar.batch.bootstrap.AnalysisMode; +import org.sonar.batch.bootstrap.DefaultAnalysisMode; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; @@ -36,7 +36,7 @@ public class InputFileBuilderFactoryTest { LanguageDetectionFactory langDetectionFactory = mock(LanguageDetectionFactory.class, Mockito.RETURNS_MOCKS); StatusDetectionFactory statusDetectionFactory = mock(StatusDetectionFactory.class, Mockito.RETURNS_MOCKS); DefaultModuleFileSystem fs = mock(DefaultModuleFileSystem.class); - AnalysisMode analysisMode = mock(AnalysisMode.class); + DefaultAnalysisMode analysisMode = mock(DefaultAnalysisMode.class); InputFileBuilderFactory factory = new InputFileBuilderFactory(ProjectDefinition.create().setKey("struts"), pathResolver, langDetectionFactory, statusDetectionFactory, analysisMode, new Settings()); diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileBuilderTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileBuilderTest.java index 3d1eb9b050d..36682184b37 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileBuilderTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/InputFileBuilderTest.java @@ -29,7 +29,7 @@ import org.sonar.api.batch.fs.internal.DeprecatedDefaultInputFile; import org.sonar.api.config.Settings; import org.sonar.api.scan.filesystem.PathResolver; import org.sonar.api.utils.PathUtils; -import org.sonar.batch.bootstrap.AnalysisMode; +import org.sonar.batch.bootstrap.DefaultAnalysisMode; import java.io.File; import java.util.Arrays; @@ -47,7 +47,7 @@ public class InputFileBuilderTest { LanguageDetection langDetection = mock(LanguageDetection.class); StatusDetection statusDetection = mock(StatusDetection.class); DefaultModuleFileSystem fs = mock(DefaultModuleFileSystem.class); - AnalysisMode analysisMode = mock(AnalysisMode.class); + DefaultAnalysisMode analysisMode = mock(DefaultAnalysisMode.class); @Test public void complete_input_file() throws Exception { diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/sensor/ProjectLinksSensorTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/sensor/ProjectLinksSensorTest.java new file mode 100644 index 00000000000..6e44bc572f4 --- /dev/null +++ b/sonar-batch/src/test/java/org/sonar/batch/scan/sensor/ProjectLinksSensorTest.java @@ -0,0 +1,105 @@ +/* + * 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.batch.scan.sensor; + +import org.sonar.batch.scan.sensor.ProjectLinksSensor; + +import org.apache.commons.lang.StringUtils; +import org.junit.Test; +import org.mockito.ArgumentMatcher; +import org.sonar.api.CoreProperties; +import org.sonar.api.batch.AnalysisMode; +import org.sonar.api.batch.SensorContext; +import org.sonar.api.config.Settings; +import org.sonar.api.resources.Project; +import org.sonar.api.resources.ProjectLink; +import org.sonar.core.i18n.DefaultI18n; + +import java.util.Locale; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Matchers.argThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ProjectLinksSensorTest { + + @Test + public void testToString() { + assertThat(new ProjectLinksSensor(null, null, null).toString()).isEqualTo("ProjectLinksSensor"); + } + + @Test + public void shouldNotExecuteInPreview() { + Project project = mock(Project.class); + AnalysisMode analysisMode = mock(AnalysisMode.class); + assertThat(new ProjectLinksSensor(null, null, analysisMode).shouldExecuteOnProject(project)).isTrue(); + when(analysisMode.isPreview()).thenReturn(true); + assertThat(new ProjectLinksSensor(null, null, analysisMode).shouldExecuteOnProject(project)).isFalse(); + } + + @Test + public void shouldSaveLinks() { + Settings settings = new Settings(); + settings.setProperty(CoreProperties.LINKS_HOME_PAGE, "http://home"); + DefaultI18n defaultI18n = mock(DefaultI18n.class); + when(defaultI18n.message(Locale.getDefault(), "project_links.homepage", CoreProperties.LINKS_HOME_PAGE)).thenReturn("HOME"); + Project project = mock(Project.class); + SensorContext context = mock(SensorContext.class); + + new ProjectLinksSensor(settings, defaultI18n, null).analyse(project, context); + + verify(context).saveLink(argThat(new MatchLink("homepage", "HOME", "http://home"))); + } + + @Test + public void shouldDeleteLink() { + Settings settings = new Settings(); + settings.setProperty(CoreProperties.LINKS_HOME_PAGE, ""); + DefaultI18n defaultI18n = mock(DefaultI18n.class); + when(defaultI18n.message(Locale.getDefault(), "project_links.homepage", CoreProperties.LINKS_HOME_PAGE)).thenReturn("HOME"); + Project project = mock(Project.class); + SensorContext context = mock(SensorContext.class); + + new ProjectLinksSensor(settings, defaultI18n, null).analyse(project, context); + + verify(context).deleteLink("homepage"); + } + + private class MatchLink extends ArgumentMatcher<ProjectLink> { + private String key; + private String name; + private String url; + + private MatchLink(String key, String name, String url) { + this.key = key; + this.name = name; + this.url = url; + } + + @Override + public boolean matches(Object o) { + ProjectLink link = (ProjectLink) o; + return StringUtils.equals(link.getHref(), url) && StringUtils.equals(link.getKey(), key) && StringUtils.equals(link.getName(), name); + } + } + +} diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/sensor/VersionEventsSensorTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/sensor/VersionEventsSensorTest.java new file mode 100644 index 00000000000..d70932f673c --- /dev/null +++ b/sonar-batch/src/test/java/org/sonar/batch/scan/sensor/VersionEventsSensorTest.java @@ -0,0 +1,119 @@ +/* + * 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.batch.scan.sensor; + +import org.sonar.batch.scan.sensor.VersionEventsSensor; + +import com.google.common.collect.Lists; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.sonar.api.batch.AnalysisMode; +import org.sonar.api.batch.Event; +import org.sonar.api.batch.SensorContext; +import org.sonar.api.resources.Project; +import org.sonar.api.resources.Resource; + +import java.util.Date; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertThat; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyString; +import static org.mockito.Matchers.eq; +import static org.mockito.Matchers.isNull; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VersionEventsSensorTest { + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Test + public void shouldExecuteOnProject() throws Exception { + AnalysisMode analysisMode = mock(AnalysisMode.class); + assertThat(new VersionEventsSensor(analysisMode).shouldExecuteOnProject(null)).isTrue(); + when(analysisMode.isPreview()).thenReturn(true); + assertThat(new VersionEventsSensor(analysisMode).shouldExecuteOnProject(null)).isFalse(); + } + + @Test + public void testToString() throws Exception { + assertThat(new VersionEventsSensor(null).toString(), is("VersionEventsSensor")); + } + + @Test + public void shouldDoNothingIfNoVersion() { + VersionEventsSensor sensor = new VersionEventsSensor(null); + SensorContext context = mock(SensorContext.class); + Project project = mock(Project.class); + when(project.getAnalysisVersion()).thenReturn(null); + + sensor.analyse(project, context); + + verify(context, never()).createEvent(any(Resource.class), anyString(), anyString(), anyString(), any(Date.class)); + verify(context, never()).deleteEvent(any(Event.class)); + } + + @Test + public void shouldCreateVersionEvent() { + VersionEventsSensor sensor = new VersionEventsSensor(null); + SensorContext context = mock(SensorContext.class); + + Project project = mock(Project.class); + when(project.getAnalysisVersion()).thenReturn("1.5-SNAPSHOT"); + + sensor.analyse(project, context); + + verify(context).createEvent(eq(project), eq("1.5-SNAPSHOT"), (String) isNull(), eq(Event.CATEGORY_VERSION), (Date) isNull()); + } + + @Test + public void shouldHaveOnlyOneEventByVersion() { + Event sameVersionEvent = mockVersionEvent("1.5-SNAPSHOT"); + Event otherEvent = mockVersionEvent("1.4"); + Event anotherEvent = mockVersionEvent("1.3-SNAPSHOT"); + + VersionEventsSensor sensor = new VersionEventsSensor(null); + SensorContext context = mock(SensorContext.class); + + Project project = mock(Project.class); + when(project.getAnalysisVersion()).thenReturn("1.5-SNAPSHOT"); + + when(context.getEvents(project)).thenReturn(Lists.newArrayList(sameVersionEvent, otherEvent, anotherEvent)); + + sensor.analyse(project, context); + + verify(context).deleteEvent(sameVersionEvent); + verify(context).createEvent(eq(project), eq("1.5-SNAPSHOT"), (String) isNull(), eq(Event.CATEGORY_VERSION), (Date) isNull()); + } + + private Event mockVersionEvent(String version) { + Event event = mock(Event.class); + when(event.isVersionCategory()).thenReturn(true); + when(event.getName()).thenReturn(version); + return event; + } + +} diff --git a/sonar-batch/src/test/java/org/sonar/batch/sensor/AnalyzerOptimizerTest.java b/sonar-batch/src/test/java/org/sonar/batch/sensor/AnalyzerOptimizerTest.java index fb8e564f11d..882bc1aadc7 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/sensor/AnalyzerOptimizerTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/sensor/AnalyzerOptimizerTest.java @@ -23,6 +23,7 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.sonar.api.batch.AnalysisMode; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.internal.DefaultFileSystem; import org.sonar.api.batch.fs.internal.DefaultInputFile; @@ -33,6 +34,8 @@ import org.sonar.api.config.Settings; import org.sonar.api.rule.RuleKey; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; public class AnalyzerOptimizerTest { @@ -44,10 +47,13 @@ public class AnalyzerOptimizerTest { private Settings settings; + private AnalysisMode analysisMode; + @Before public void prepare() { settings = new Settings(); - optimizer = new AnalyzerOptimizer(fs, new ActiveRulesBuilder().build(), settings); + analysisMode = mock(AnalysisMode.class); + optimizer = new AnalyzerOptimizer(fs, new ActiveRulesBuilder().build(), settings, analysisMode); } @Test @@ -105,7 +111,7 @@ public class AnalyzerOptimizerTest { .create(RuleKey.of("repo1", "foo")) .activate() .build(); - optimizer = new AnalyzerOptimizer(fs, activeRules, settings); + optimizer = new AnalyzerOptimizer(fs, activeRules, settings, analysisMode); assertThat(optimizer.shouldExecute(descriptor)).isFalse(); @@ -115,7 +121,7 @@ public class AnalyzerOptimizerTest { .create(RuleKey.of("squid", "rule")) .activate() .build(); - optimizer = new AnalyzerOptimizer(fs, activeRules, settings); + optimizer = new AnalyzerOptimizer(fs, activeRules, settings, analysisMode); assertThat(optimizer.shouldExecute(descriptor)).isTrue(); } @@ -128,4 +134,15 @@ public class AnalyzerOptimizerTest { settings.setProperty("sonar.foo.reportPath", "foo"); assertThat(optimizer.shouldExecute(descriptor)).isTrue(); } + + @Test + public void should_disabled_in_preview() throws Exception { + DefaultSensorDescriptor descriptor = new DefaultSensorDescriptor() + .disabledInPreview(); + assertThat(optimizer.shouldExecute(descriptor)).isTrue(); + + when(analysisMode.isPreview()).thenReturn(true); + + assertThat(optimizer.shouldExecute(descriptor)).isFalse(); + } } diff --git a/sonar-batch/src/test/java/org/sonar/batch/sensor/DefaultSensorContextTest.java b/sonar-batch/src/test/java/org/sonar/batch/sensor/DefaultSensorContextTest.java index b51dccd8f05..0995806e053 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/sensor/DefaultSensorContextTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/sensor/DefaultSensorContextTest.java @@ -23,6 +23,7 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.sonar.api.batch.AnalysisMode; import org.sonar.api.batch.fs.internal.DefaultFileSystem; import org.sonar.api.batch.measure.MetricFinder; import org.sonar.api.batch.rule.ActiveRules; @@ -48,6 +49,7 @@ public class DefaultSensorContextTest { private DefaultSensorContext adaptor; private Settings settings; private SensorStorage sensorStorage; + private AnalysisMode analysisMode; @Before public void prepare() { @@ -60,7 +62,8 @@ public class DefaultSensorContextTest { ComponentDataCache componentDataCache = mock(ComponentDataCache.class); BlockCache blockCache = mock(BlockCache.class); sensorStorage = mock(SensorStorage.class); - adaptor = new DefaultSensorContext(settings, fs, activeRules, componentDataCache, blockCache, mock(DuplicationCache.class), sensorStorage); + analysisMode = mock(AnalysisMode.class); + adaptor = new DefaultSensorContext(settings, fs, activeRules, analysisMode, componentDataCache, blockCache, mock(DuplicationCache.class), sensorStorage); } @Test @@ -68,6 +71,7 @@ public class DefaultSensorContextTest { assertThat(adaptor.activeRules()).isEqualTo(activeRules); assertThat(adaptor.fileSystem()).isEqualTo(fs); assertThat(adaptor.settings()).isEqualTo(settings); + assertThat(adaptor.analysisMode()).isEqualTo(analysisMode); assertThat(adaptor.newIssue()).isNotNull(); assertThat(adaptor.newMeasure()).isNotNull(); |