diff options
author | Duarte Meneses <duarte.meneses@sonarsource.com> | 2019-06-19 13:56:51 -0500 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2019-07-12 20:21:14 +0200 |
commit | 93dc9770902dc7e168869d88b5ad731bfc0bedd9 (patch) | |
tree | 97ba885661d5cd9a2115fe212df31bacec9f9947 /sonar-scanner-engine/src/test/java | |
parent | 7c7d9b6b90244d2c974207862071caccdb2c9bb5 (diff) | |
download | sonarqube-93dc9770902dc7e168869d88b5ad731bfc0bedd9.tar.gz sonarqube-93dc9770902dc7e168869d88b5ad731bfc0bedd9.zip |
Extract implementation from plugin API and create new module sonar-plugin-api-impl
Diffstat (limited to 'sonar-scanner-engine/src/test/java')
104 files changed, 183 insertions, 3951 deletions
diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/DefaultFileLinesContextTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/DefaultFileLinesContextTest.java index f6e59a75f9a..5f789670c6a 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/DefaultFileLinesContextTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/DefaultFileLinesContextTest.java @@ -27,10 +27,10 @@ import org.junit.rules.ExpectedException; import org.mockito.ArgumentCaptor; import org.sonar.api.batch.measure.MetricFinder; import org.sonar.api.batch.sensor.internal.SensorStorage; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.TestInputFileBuilder; +import org.sonar.api.impl.sensor.DefaultMeasure; import org.sonar.api.measures.CoreMetrics; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.TestInputFileBuilder; -import org.sonar.scanner.sensor.DefaultMeasure; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.tuple; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/ProjectInfoTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/ProjectInfoTest.java index a882ca0afcf..b43f101cdd1 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/ProjectInfoTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/ProjectInfoTest.java @@ -35,7 +35,7 @@ import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; import org.sonar.api.CoreProperties; -import org.sonar.api.config.internal.MapSettings; +import org.sonar.api.impl.config.MapSettings; import org.sonar.api.utils.MessageException; import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/WsTestUtil.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/WsTestUtil.java index 29f806c9b0f..091d4899e8e 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/WsTestUtil.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/WsTestUtil.java @@ -24,7 +24,7 @@ import java.io.Reader; import javax.annotation.Nullable; import org.apache.commons.lang.StringUtils; import org.mockito.ArgumentMatcher; -import org.sonar.scanner.bootstrap.ScannerWsClient; +import org.sonar.scanner.bootstrap.DefaultScannerWsClient; import org.sonarqube.ws.client.WsRequest; import org.sonarqube.ws.client.WsResponse; @@ -35,25 +35,25 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; public class WsTestUtil { - public static void mockStream(ScannerWsClient mock, String path, InputStream is) { + public static void mockStream(DefaultScannerWsClient mock, String path, InputStream is) { WsResponse response = mock(WsResponse.class); when(response.contentStream()).thenReturn(is); when(mock.call(argThat(new RequestMatcher(path)))).thenReturn(response); } - public static void mockStream(ScannerWsClient mock, InputStream is) { + public static void mockStream(DefaultScannerWsClient mock, InputStream is) { WsResponse response = mock(WsResponse.class); when(response.contentStream()).thenReturn(is); when(mock.call(any(WsRequest.class))).thenReturn(response); } - public static void mockReader(ScannerWsClient mock, Reader reader) { + public static void mockReader(DefaultScannerWsClient mock, Reader reader) { WsResponse response = mock(WsResponse.class); when(response.contentReader()).thenReturn(reader); when(mock.call(any(WsRequest.class))).thenReturn(response); } - public static void mockReader(ScannerWsClient mock, String path, Reader reader, Reader... others) { + public static void mockReader(DefaultScannerWsClient mock, String path, Reader reader, Reader... others) { WsResponse response = mock(WsResponse.class); when(response.contentReader()).thenReturn(reader); WsResponse[] otherResponses = new WsResponse[others.length]; @@ -66,15 +66,15 @@ public class WsTestUtil { when(mock.call(argThat(new RequestMatcher(path)))).thenReturn(response, otherResponses); } - public static void mockException(ScannerWsClient mock, Exception e) { + public static void mockException(DefaultScannerWsClient mock, Exception e) { when(mock.call(any(WsRequest.class))).thenThrow(e); } - public static void mockException(ScannerWsClient mock, String path, Exception e) { + public static void mockException(DefaultScannerWsClient mock, String path, Exception e) { when(mock.call(argThat(new RequestMatcher(path)))).thenThrow(e); } - public static void verifyCall(ScannerWsClient mock, String path) { + public static void verifyCall(DefaultScannerWsClient mock, String path) { verify(mock).call(argThat(new RequestMatcher(path))); } diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/analysis/AnalysisTempFolderProviderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/analysis/AnalysisTempFolderProviderTest.java index d625da5f8df..620e3f703c1 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/analysis/AnalysisTempFolderProviderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/analysis/AnalysisTempFolderProviderTest.java @@ -25,7 +25,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; import org.sonar.api.utils.TempFolder; -import org.sonar.scanner.fs.DefaultInputProject; +import org.sonar.api.impl.fs.DefaultInputProject; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ScannerWsClientTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/DefaultScannerWsClientTest.java index abe99ed2c15..bbc55bb0758 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ScannerWsClientTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/DefaultScannerWsClientTest.java @@ -40,7 +40,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -public class ScannerWsClientTest { +public class DefaultScannerWsClientTest { @Rule public LogTester logTester = new LogTester(); @@ -57,7 +57,7 @@ public class ScannerWsClientTest { when(wsClient.wsConnector().call(request)).thenReturn(response); logTester.setLevel(LoggerLevel.DEBUG); - ScannerWsClient underTest = new ScannerWsClient(wsClient, false, new GlobalAnalysisMode( + DefaultScannerWsClient underTest = new DefaultScannerWsClient(wsClient, false, new GlobalAnalysisMode( new RawScannerProperties(Collections.emptyMap()))); WsResponse result = underTest.call(request); @@ -74,19 +74,19 @@ public class ScannerWsClientTest { @Test public void create_error_msg_from_json() { String content = "{\"errors\":[{\"msg\":\"missing scan permission\"}, {\"msg\":\"missing another permission\"}]}"; - assertThat(ScannerWsClient.createErrorMessage(new HttpException("url", 400, content))).isEqualTo("missing scan permission, missing another permission"); + assertThat(DefaultScannerWsClient.createErrorMessage(new HttpException("url", 400, content))).isEqualTo("missing scan permission, missing another permission"); } @Test public void create_error_msg_from_html() { String content = "<!DOCTYPE html><html>something</html>"; - assertThat(ScannerWsClient.createErrorMessage(new HttpException("url", 400, content))).isEqualTo("HTTP code 400"); + assertThat(DefaultScannerWsClient.createErrorMessage(new HttpException("url", 400, content))).isEqualTo("HTTP code 400"); } @Test public void create_error_msg_from_long_content() { String content = StringUtils.repeat("mystring", 1000); - assertThat(ScannerWsClient.createErrorMessage(new HttpException("url", 400, content))).hasSize(15 + 128); + assertThat(DefaultScannerWsClient.createErrorMessage(new HttpException("url", 400, content))).hasSize(15 + 128); } @Test @@ -99,7 +99,7 @@ public class ScannerWsClientTest { WsResponse response = newResponse().setCode(401); when(wsClient.wsConnector().call(request)).thenReturn(response); - new ScannerWsClient(wsClient, false, new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap()))).call(request); + new DefaultScannerWsClient(wsClient, false, new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap()))).call(request); } @Test @@ -111,7 +111,7 @@ public class ScannerWsClientTest { WsResponse response = newResponse().setCode(401); when(wsClient.wsConnector().call(request)).thenReturn(response); - new ScannerWsClient(wsClient, /* credentials are configured */true, new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap()))).call(request); + new DefaultScannerWsClient(wsClient, /* credentials are configured */true, new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap()))).call(request); } @Test @@ -124,7 +124,7 @@ public class ScannerWsClientTest { .setCode(403); when(wsClient.wsConnector().call(request)).thenReturn(response); - new ScannerWsClient(wsClient, true, new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap()))).call(request); + new DefaultScannerWsClient(wsClient, true, new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap()))).call(request); } @Test @@ -138,7 +138,7 @@ public class ScannerWsClientTest { .setContent("{\"errors\":[{\"msg\":\"Boo! bad request! bad!\"}]}"); when(wsClient.wsConnector().call(request)).thenReturn(response); - new ScannerWsClient(wsClient, true, new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap()))).call(request); + new DefaultScannerWsClient(wsClient, true, new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap()))).call(request); } private MockWsResponse newResponse() { diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ExtensionInstallerTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ExtensionInstallerTest.java index d060367750d..17e4b72f4b0 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ExtensionInstallerTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ExtensionInstallerTest.java @@ -26,7 +26,7 @@ import org.sonar.api.ExtensionProvider; import org.sonar.api.Plugin; import org.sonar.api.SonarRuntime; import org.sonar.api.batch.ScannerSide; -import org.sonar.api.config.internal.MapSettings; +import org.sonar.api.impl.config.MapSettings; import org.sonar.core.platform.ComponentContainer; import org.sonar.core.platform.PluginInfo; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ModuleSensorExtensionDictionnaryTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ModuleSensorExtensionDictionnaryTest.java index 2c4ed265b27..68070e636b5 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ModuleSensorExtensionDictionnaryTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ModuleSensorExtensionDictionnaryTest.java @@ -33,8 +33,8 @@ import org.sonar.api.batch.ScannerSide; import org.sonar.api.batch.sensor.Sensor; import org.sonar.api.batch.sensor.SensorContext; import org.sonar.api.batch.sensor.SensorDescriptor; +import org.sonar.api.impl.sensor.DefaultSensorDescriptor; import org.sonar.core.platform.ComponentContainer; -import org.sonar.scanner.sensor.DefaultSensorDescriptor; import org.sonar.scanner.sensor.ModuleSensorContext; import org.sonar.scanner.sensor.ModuleSensorExtensionDictionnary; import org.sonar.scanner.sensor.ModuleSensorOptimizer; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/PluginFilesTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/PluginFilesTest.java index 9a7ebb0e127..004528a98eb 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/PluginFilesTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/PluginFilesTest.java @@ -50,7 +50,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.rules.TemporaryFolder; -import org.sonar.api.config.internal.MapSettings; +import org.sonar.api.impl.config.MapSettings; import org.sonar.scanner.bootstrap.ScannerPluginInstaller.InstalledPlugin; import org.sonarqube.ws.client.HttpConnector; import org.sonarqube.ws.client.WsClientFactories; @@ -74,7 +74,7 @@ public class PluginFilesTest { public void setUp() throws Exception { HttpConnector connector = HttpConnector.newBuilder().url(server.url("/").toString()).build(); GlobalAnalysisMode analysisMode = new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap())); - ScannerWsClient wsClient = new ScannerWsClient(WsClientFactories.getDefault().newClient(connector), false, analysisMode); + DefaultScannerWsClient wsClient = new DefaultScannerWsClient(WsClientFactories.getDefault().newClient(connector), false, analysisMode); userHome = temp.newFolder(); MapSettings settings = new MapSettings(); diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/PostJobExtensionDictionnaryTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/PostJobExtensionDictionnaryTest.java index ed35ee1943d..c81893378b8 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/PostJobExtensionDictionnaryTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/PostJobExtensionDictionnaryTest.java @@ -25,7 +25,7 @@ import org.sonar.api.batch.Phase; import org.sonar.api.batch.postjob.PostJob; import org.sonar.api.batch.postjob.PostJobContext; import org.sonar.api.batch.postjob.PostJobDescriptor; -import org.sonar.scanner.postjob.DefaultPostJobDescriptor; +import org.sonar.api.impl.sensor.DefaultPostJobDescriptor; import org.sonar.api.batch.sensor.Sensor; import org.sonar.api.batch.sensor.SensorContext; import org.sonar.api.batch.sensor.SensorDescriptor; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ScannerPluginInstallerTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ScannerPluginInstallerTest.java index fe6720aca89..edceff19a1b 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ScannerPluginInstallerTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ScannerPluginInstallerTest.java @@ -48,7 +48,7 @@ public class ScannerPluginInstallerTest { public ExpectedException expectedException = ExpectedException.none(); private PluginFiles pluginFiles = mock(PluginFiles.class); - private ScannerWsClient wsClient = mock(ScannerWsClient.class); + private DefaultScannerWsClient wsClient = mock(DefaultScannerWsClient.class); private ScannerPluginInstaller underTest = new ScannerPluginInstaller(pluginFiles, wsClient); @Test diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ScannerWsClientProviderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ScannerWsClientProviderTest.java index 5122d6f23e1..6f462beeaa7 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ScannerWsClientProviderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/ScannerWsClientProviderTest.java @@ -39,7 +39,7 @@ public class ScannerWsClientProviderTest { public void provide_client_with_default_settings() { RawScannerProperties settings = new RawScannerProperties(new HashMap<>()); - ScannerWsClient client = underTest.provide(settings, env, new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap())), mock(System2.class)); + DefaultScannerWsClient client = underTest.provide(settings, env, new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap())), mock(System2.class)); assertThat(client).isNotNull(); assertThat(client.baseUrl()).isEqualTo("http://localhost:9000/"); @@ -59,7 +59,7 @@ public class ScannerWsClientProviderTest { props.put("sonar.ws.timeout", "42"); RawScannerProperties settings = new RawScannerProperties(props); - ScannerWsClient client = underTest.provide(settings, env, new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap())), mock(System2.class)); + DefaultScannerWsClient client = underTest.provide(settings, env, new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap())), mock(System2.class)); assertThat(client).isNotNull(); HttpConnector httpConnector = (HttpConnector) client.wsConnector(); @@ -72,8 +72,8 @@ public class ScannerWsClientProviderTest { System2 system = mock(System2.class); RawScannerProperties settings = new RawScannerProperties(new HashMap<>()); - ScannerWsClient first = underTest.provide(settings, env, new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap())), system); - ScannerWsClient second = underTest.provide(settings, env, new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap())), system); + DefaultScannerWsClient first = underTest.provide(settings, env, new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap())), system); + DefaultScannerWsClient second = underTest.provide(settings, env, new GlobalAnalysisMode(new RawScannerProperties(Collections.emptyMap())), system); assertThat(first).isSameAs(second); } } diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/ci/CiConfigurationProviderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/ci/CiConfigurationProviderTest.java index 57e1aa0efd4..b372dd2bc97 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/ci/CiConfigurationProviderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/ci/CiConfigurationProviderTest.java @@ -20,7 +20,7 @@ package org.sonar.scanner.ci; import org.junit.Test; -import org.sonar.api.config.internal.MapSettings; +import org.sonar.api.impl.config.MapSettings; import org.sonar.api.utils.MessageException; import static org.assertj.core.api.Assertions.assertThat; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/cpd/CpdExecutorTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/cpd/CpdExecutorTest.java index a649c5e9f24..9767f60dedf 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/cpd/CpdExecutorTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/cpd/CpdExecutorTest.java @@ -44,9 +44,9 @@ import org.sonar.duplications.block.ByteArray; import org.sonar.duplications.index.CloneGroup; import org.sonar.duplications.index.ClonePart; import org.sonar.scanner.cpd.index.SonarCpdBlockIndex; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.DefaultInputProject; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.DefaultInputProject; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.scanner.protocol.output.ScannerReport.Duplicate; import org.sonar.scanner.protocol.output.ScannerReport.Duplication; import org.sonar.scanner.protocol.output.ScannerReportReader; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/cpd/CpdSettingsTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/cpd/CpdSettingsTest.java index 2e3e6d2898d..80a8e4b61f9 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/cpd/CpdSettingsTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/cpd/CpdSettingsTest.java @@ -23,7 +23,7 @@ import java.util.Optional; import org.junit.Before; import org.junit.Test; import org.sonar.api.config.Configuration; -import org.sonar.scanner.fs.DefaultInputProject; +import org.sonar.api.impl.fs.DefaultInputProject; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.anyString; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/cpd/JavaCpdBlockIndexerSensorTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/cpd/JavaCpdBlockIndexerSensorTest.java index f62bb729def..3b567a3846b 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/cpd/JavaCpdBlockIndexerSensorTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/cpd/JavaCpdBlockIndexerSensorTest.java @@ -34,9 +34,9 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.sonar.duplications.block.Block; import org.sonar.scanner.cpd.index.SonarCpdBlockIndex; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.TestInputFileBuilder; -import org.sonar.scanner.sensor.SensorContextTester; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.TestInputFileBuilder; +import org.sonar.api.impl.sensor.SensorContextTester; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.eq; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/externalissue/ExternalIssueImporterTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/externalissue/ExternalIssueImporterTest.java index 3eaeb9997ad..3659faec62f 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/externalissue/ExternalIssueImporterTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/externalissue/ExternalIssueImporterTest.java @@ -31,9 +31,9 @@ import org.sonar.api.batch.rule.Severity; import org.sonar.api.batch.sensor.issue.ExternalIssue; import org.sonar.api.utils.log.LogTester; import org.sonar.api.utils.log.LoggerLevel; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.TestInputFileBuilder; -import org.sonar.scanner.sensor.SensorContextTester; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.TestInputFileBuilder; +import org.sonar.api.impl.sensor.SensorContextTester; import static java.nio.charset.StandardCharsets.UTF_8; import static org.apache.commons.lang.ObjectUtils.defaultIfNull; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/DefaultFileSystemTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/DefaultFileSystemTest.java deleted file mode 100644 index 74a43db65f1..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/DefaultFileSystemTest.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.fs; - -import java.io.File; -import java.nio.charset.Charset; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.junit.rules.TemporaryFolder; - -import static org.assertj.core.api.Assertions.assertThat; - -public class DefaultFileSystemTest { - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - private DefaultFileSystem fs; - - private File basedir; - - @Before - public void prepare() throws Exception { - basedir = temp.newFolder(); - fs = new DefaultFileSystem(basedir.toPath()); - } - - @Test - public void test_directories() throws Exception { - assertThat(fs.baseDir()).isAbsolute().isDirectory().exists(); - assertThat(fs.baseDir().getCanonicalPath()).isEqualTo(basedir.getCanonicalPath()); - - File workdir = temp.newFolder(); - fs.setWorkDir(workdir.toPath()); - assertThat(fs.workDir()).isAbsolute().isDirectory().exists(); - assertThat(fs.workDir().getCanonicalPath()).isEqualTo(workdir.getCanonicalPath()); - } - - @Test - public void test_encoding() throws Exception { - fs.setEncoding(Charset.forName("ISO-8859-1")); - assertThat(fs.encoding()).isEqualTo(Charset.forName("ISO-8859-1")); - } - - @Test - public void add_languages() { - assertThat(fs.languages()).isEmpty(); - - fs.add(new TestInputFileBuilder("foo", "src/Foo.php").setLanguage("php").build()); - fs.add(new TestInputFileBuilder("foo", "src/Bar.java").setLanguage("java").build()); - - assertThat(fs.languages()).containsOnly("java", "php"); - } - - @Test - public void files() { - assertThat(fs.inputFiles(fs.predicates().all())).isEmpty(); - - fs.add(new TestInputFileBuilder("foo", "src/Foo.php").setLanguage("php").build()); - fs.add(new TestInputFileBuilder("foo", "src/Bar.java").setLanguage("java").build()); - fs.add(new TestInputFileBuilder("foo", "src/Baz.java").setLanguage("java").build()); - - // no language - fs.add(new TestInputFileBuilder("foo", "src/readme.txt").build()); - - assertThat(fs.inputFile(fs.predicates().hasRelativePath("src/Bar.java"))).isNotNull(); - assertThat(fs.inputFile(fs.predicates().hasRelativePath("does/not/exist"))).isNull(); - - assertThat(fs.inputFile(fs.predicates().hasAbsolutePath(new File(basedir, "src/Bar.java").getAbsolutePath()))).isNotNull(); - assertThat(fs.inputFile(fs.predicates().hasAbsolutePath(new File(basedir, "does/not/exist").getAbsolutePath()))).isNull(); - assertThat(fs.inputFile(fs.predicates().hasAbsolutePath(new File(basedir, "../src/Bar.java").getAbsolutePath()))).isNull(); - - assertThat(fs.inputFile(fs.predicates().hasURI(new File(basedir, "src/Bar.java").toURI()))).isNotNull(); - assertThat(fs.inputFile(fs.predicates().hasURI(new File(basedir, "does/not/exist").toURI()))).isNull(); - assertThat(fs.inputFile(fs.predicates().hasURI(new File(basedir, "../src/Bar.java").toURI()))).isNull(); - - assertThat(fs.files(fs.predicates().all())).hasSize(4); - assertThat(fs.files(fs.predicates().hasLanguage("java"))).hasSize(2); - assertThat(fs.files(fs.predicates().hasLanguage("cobol"))).isEmpty(); - - assertThat(fs.hasFiles(fs.predicates().all())).isTrue(); - assertThat(fs.hasFiles(fs.predicates().hasLanguage("java"))).isTrue(); - assertThat(fs.hasFiles(fs.predicates().hasLanguage("cobol"))).isFalse(); - - assertThat(fs.inputFiles(fs.predicates().all())).hasSize(4); - assertThat(fs.inputFiles(fs.predicates().hasLanguage("php"))).hasSize(1); - assertThat(fs.inputFiles(fs.predicates().hasLanguage("java"))).hasSize(2); - assertThat(fs.inputFiles(fs.predicates().hasLanguage("cobol"))).isEmpty(); - - assertThat(fs.languages()).containsOnly("java", "php"); - } - - @Test - public void input_file_returns_null_if_file_not_found() { - assertThat(fs.inputFile(fs.predicates().hasRelativePath("src/Bar.java"))).isNull(); - assertThat(fs.inputFile(fs.predicates().hasLanguage("cobol"))).isNull(); - } - - @Test - public void input_file_fails_if_too_many_results() { - thrown.expect(IllegalArgumentException.class); - thrown.expectMessage("expected one element"); - - fs.add(new TestInputFileBuilder("foo", "src/Bar.java").setLanguage("java").build()); - fs.add(new TestInputFileBuilder("foo", "src/Baz.java").setLanguage("java").build()); - - fs.inputFile(fs.predicates().all()); - } - - @Test - public void input_file_supports_non_indexed_predicates() { - fs.add(new TestInputFileBuilder("foo", "src/Bar.java").setLanguage("java").build()); - - // it would fail if more than one java file - assertThat(fs.inputFile(fs.predicates().hasLanguage("java"))).isNotNull(); - } -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/DefaultInputDirTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/DefaultInputDirTest.java deleted file mode 100644 index 1679a8df405..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/DefaultInputDirTest.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.fs; - -import java.io.File; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; - -import static org.assertj.core.api.Assertions.assertThat; - -public class DefaultInputDirTest { - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - @Test - public void test() throws Exception { - File baseDir = temp.newFolder(); - DefaultInputDir inputDir = new DefaultInputDir("ABCDE", "src") - .setModuleBaseDir(baseDir.toPath()); - - assertThat(inputDir.key()).isEqualTo("ABCDE:src"); - assertThat(inputDir.file().getAbsolutePath()).isEqualTo(new File(baseDir, "src").getAbsolutePath()); - assertThat(inputDir.relativePath()).isEqualTo("src"); - assertThat(new File(inputDir.relativePath())).isRelative(); - assertThat(inputDir.absolutePath()).endsWith("src"); - assertThat(new File(inputDir.absolutePath())).isAbsolute(); - } - - @Test - public void testEqualsAndHashCode() throws Exception { - DefaultInputDir inputDir1 = new DefaultInputDir("ABCDE", "src"); - - DefaultInputDir inputDir2 = new DefaultInputDir("ABCDE", "src"); - - assertThat(inputDir1.equals(inputDir1)).isTrue(); - assertThat(inputDir1.equals(inputDir2)).isTrue(); - assertThat(inputDir1.equals("foo")).isFalse(); - - assertThat(inputDir1.hashCode()).isEqualTo(63545559); - - assertThat(inputDir1.toString()).contains("[moduleKey=ABCDE, relative=src, basedir=null"); - - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/DefaultInputFileTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/DefaultInputFileTest.java deleted file mode 100644 index 6673977bfe4..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/DefaultInputFileTest.java +++ /dev/null @@ -1,315 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.fs; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.io.StringReader; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.nio.file.StandardOpenOption; -import java.util.stream.Collectors; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.fs.TextRange; -import org.sonar.api.batch.fs.internal.Metadata; -import org.sonar.api.batch.fs.internal.SensorStrategy; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; - -public class DefaultInputFileTest { - - private static final String PROJECT_RELATIVE_PATH = "module1/src/Foo.php"; - private static final String MODULE_RELATIVE_PATH = "src/Foo.php"; - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - private DefaultIndexedFile indexedFile; - - private Path baseDir; - private SensorStrategy sensorStrategy; - - @Before - public void prepare() throws IOException { - baseDir = temp.newFolder().toPath(); - sensorStrategy = new SensorStrategy(); - indexedFile = new DefaultIndexedFile(baseDir.resolve(PROJECT_RELATIVE_PATH), "ABCDE", PROJECT_RELATIVE_PATH, MODULE_RELATIVE_PATH, InputFile.Type.TEST, "php", 0, - sensorStrategy); - } - - @Test - public void test() throws Exception { - - Metadata metadata = new Metadata(42, 42, "", new int[0], new int[0], 10); - DefaultInputFile inputFile = new DefaultInputFile(indexedFile, (f) -> f.setMetadata(metadata)) - .setStatus(InputFile.Status.ADDED) - .setCharset(StandardCharsets.ISO_8859_1); - - assertThat(inputFile.absolutePath()).endsWith("Foo.php"); - assertThat(inputFile.filename()).isEqualTo("Foo.php"); - assertThat(inputFile.uri()).hasPath(baseDir.resolve(PROJECT_RELATIVE_PATH).toUri().getPath()); - assertThat(new File(inputFile.absolutePath())).isAbsolute(); - assertThat(inputFile.language()).isEqualTo("php"); - assertThat(inputFile.status()).isEqualTo(InputFile.Status.ADDED); - assertThat(inputFile.type()).isEqualTo(InputFile.Type.TEST); - assertThat(inputFile.lines()).isEqualTo(42); - assertThat(inputFile.charset()).isEqualTo(StandardCharsets.ISO_8859_1); - - assertThat(inputFile.getModuleRelativePath()).isEqualTo(MODULE_RELATIVE_PATH); - assertThat(inputFile.getProjectRelativePath()).isEqualTo(PROJECT_RELATIVE_PATH); - - sensorStrategy.setGlobal(false); - assertThat(inputFile.relativePath()).isEqualTo(MODULE_RELATIVE_PATH); - assertThat(new File(inputFile.relativePath())).isRelative(); - sensorStrategy.setGlobal(true); - assertThat(inputFile.relativePath()).isEqualTo(PROJECT_RELATIVE_PATH); - assertThat(new File(inputFile.relativePath())).isRelative(); - } - - @Test - public void test_content() throws IOException { - Path testFile = baseDir.resolve(PROJECT_RELATIVE_PATH); - Files.createDirectories(testFile.getParent()); - String content = "test é string"; - Files.write(testFile, content.getBytes(StandardCharsets.ISO_8859_1)); - - assertThat(Files.readAllLines(testFile, StandardCharsets.ISO_8859_1).get(0)).hasSize(content.length()); - - Metadata metadata = new Metadata(42, 30, "", new int[0], new int[0], 10); - - DefaultInputFile inputFile = new DefaultInputFile(indexedFile, f -> f.setMetadata(metadata)) - .setStatus(InputFile.Status.ADDED) - .setCharset(StandardCharsets.ISO_8859_1); - - assertThat(inputFile.contents()).isEqualTo(content); - try (InputStream inputStream = inputFile.inputStream()) { - String result = new BufferedReader(new InputStreamReader(inputStream, inputFile.charset())).lines().collect(Collectors.joining()); - assertThat(result).isEqualTo(content); - } - - } - - @Test - public void test_content_exclude_bom() throws IOException { - Path testFile = baseDir.resolve(PROJECT_RELATIVE_PATH); - Files.createDirectories(testFile.getParent()); - try (BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(testFile.toFile()), StandardCharsets.UTF_8))) { - out.write('\ufeff'); - } - String content = "test é string €"; - Files.write(testFile, content.getBytes(StandardCharsets.UTF_8), StandardOpenOption.APPEND); - - assertThat(Files.readAllLines(testFile, StandardCharsets.UTF_8).get(0)).hasSize(content.length() + 1); - - Metadata metadata = new Metadata(42, 30, "", new int[0], new int[0], 10); - - DefaultInputFile inputFile = new DefaultInputFile(indexedFile, f -> f.setMetadata(metadata)) - .setStatus(InputFile.Status.ADDED) - .setCharset(StandardCharsets.UTF_8); - - assertThat(inputFile.contents()).isEqualTo(content); - try (InputStream inputStream = inputFile.inputStream()) { - String result = new BufferedReader(new InputStreamReader(inputStream, inputFile.charset())).lines().collect(Collectors.joining()); - assertThat(result).isEqualTo(content); - } - - } - - @Test - public void test_equals_and_hashcode() throws Exception { - DefaultInputFile f1 = new DefaultInputFile(new DefaultIndexedFile("ABCDE", Paths.get("module"), MODULE_RELATIVE_PATH, null), (f) -> mock(Metadata.class)); - DefaultInputFile f1a = new DefaultInputFile(new DefaultIndexedFile("ABCDE", Paths.get("module"), MODULE_RELATIVE_PATH, null), (f) -> mock(Metadata.class)); - DefaultInputFile f2 = new DefaultInputFile(new DefaultIndexedFile("ABCDE", Paths.get("module"), "src/Bar.php", null), (f) -> mock(Metadata.class)); - - assertThat(f1).isEqualTo(f1); - assertThat(f1).isEqualTo(f1a); - assertThat(f1).isNotEqualTo(f2); - assertThat(f1.equals("foo")).isFalse(); - assertThat(f1.equals(null)).isFalse(); - - assertThat(f1.hashCode()).isEqualTo(f1.hashCode()); - assertThat(f1.hashCode()).isEqualTo(f1a.hashCode()); - } - - @Test - public void test_toString() throws Exception { - DefaultInputFile file = new DefaultInputFile(new DefaultIndexedFile("ABCDE", Paths.get("module"), MODULE_RELATIVE_PATH, null), (f) -> mock(Metadata.class)); - assertThat(file.toString()).isEqualTo(MODULE_RELATIVE_PATH); - } - - @Test - public void checkValidPointer() { - Metadata metadata = new Metadata(2, 2, "", new int[] {0, 10}, new int[] {9, 15}, 16); - DefaultInputFile file = new DefaultInputFile(new DefaultIndexedFile("ABCDE", Paths.get("module"), MODULE_RELATIVE_PATH, null), f -> f.setMetadata(metadata)); - assertThat(file.newPointer(1, 0).line()).isEqualTo(1); - assertThat(file.newPointer(1, 0).lineOffset()).isEqualTo(0); - // Don't fail - file.newPointer(1, 9); - file.newPointer(2, 0); - file.newPointer(2, 5); - - try { - file.newPointer(0, 1); - fail(); - } catch (Exception e) { - assertThat(e).hasMessage("0 is not a valid line for a file"); - } - try { - file.newPointer(3, 1); - fail(); - } catch (Exception e) { - assertThat(e).hasMessage("3 is not a valid line for pointer. File src/Foo.php has 2 line(s)"); - } - try { - file.newPointer(1, -1); - fail(); - } catch (Exception e) { - assertThat(e).hasMessage("-1 is not a valid line offset for a file"); - } - try { - file.newPointer(1, 10); - fail(); - } catch (Exception e) { - assertThat(e).hasMessage("10 is not a valid line offset for pointer. File src/Foo.php has 9 character(s) at line 1"); - } - } - - @Test - public void checkValidPointerUsingGlobalOffset() { - Metadata metadata = new Metadata(2, 2, "", new int[] {0, 10}, new int[] {8, 15}, 16); - DefaultInputFile file = new DefaultInputFile(new DefaultIndexedFile("ABCDE", Paths.get("module"), MODULE_RELATIVE_PATH, null), f -> f.setMetadata(metadata)); - assertThat(file.newPointer(0).line()).isEqualTo(1); - assertThat(file.newPointer(0).lineOffset()).isEqualTo(0); - - assertThat(file.newPointer(9).line()).isEqualTo(1); - // Ignore eol characters - assertThat(file.newPointer(9).lineOffset()).isEqualTo(8); - - assertThat(file.newPointer(10).line()).isEqualTo(2); - assertThat(file.newPointer(10).lineOffset()).isEqualTo(0); - - assertThat(file.newPointer(15).line()).isEqualTo(2); - assertThat(file.newPointer(15).lineOffset()).isEqualTo(5); - - assertThat(file.newPointer(16).line()).isEqualTo(2); - // Ignore eol characters - assertThat(file.newPointer(16).lineOffset()).isEqualTo(5); - - try { - file.newPointer(-1); - fail(); - } catch (Exception e) { - assertThat(e).hasMessage("-1 is not a valid offset for a file"); - } - - try { - file.newPointer(17); - fail(); - } catch (Exception e) { - assertThat(e).hasMessage("17 is not a valid offset for file src/Foo.php. Max offset is 16"); - } - } - - @Test - public void checkValidRange() { - Metadata metadata = new FileMetadata().readMetadata(new StringReader("bla bla a\nabcde")); - DefaultInputFile file = new DefaultInputFile(new DefaultIndexedFile("ABCDE", Paths.get("module"), MODULE_RELATIVE_PATH, null), f -> f.setMetadata(metadata)); - - assertThat(file.newRange(file.newPointer(1, 0), file.newPointer(2, 1)).start().line()).isEqualTo(1); - // Don't fail - file.newRange(file.newPointer(1, 0), file.newPointer(1, 1)); - file.newRange(file.newPointer(1, 0), file.newPointer(1, 9)); - file.newRange(file.newPointer(1, 0), file.newPointer(2, 0)); - assertThat(file.newRange(file.newPointer(1, 0), file.newPointer(2, 5))).isEqualTo(file.newRange(0, 15)); - - try { - file.newRange(file.newPointer(1, 0), file.newPointer(1, 0)); - fail(); - } catch (Exception e) { - assertThat(e).hasMessage("Start pointer [line=1, lineOffset=0] should be before end pointer [line=1, lineOffset=0]"); - } - try { - file.newRange(file.newPointer(1, 0), file.newPointer(1, 10)); - fail(); - } catch (Exception e) { - assertThat(e).hasMessage("10 is not a valid line offset for pointer. File src/Foo.php has 9 character(s) at line 1"); - } - } - - @Test - public void selectLine() { - Metadata metadata = new FileMetadata().readMetadata(new StringReader("bla bla a\nabcde\n\nabc")); - DefaultInputFile file = new DefaultInputFile(new DefaultIndexedFile("ABCDE", Paths.get("module"), MODULE_RELATIVE_PATH, null), f -> f.setMetadata(metadata)); - - assertThat(file.selectLine(1).start().line()).isEqualTo(1); - assertThat(file.selectLine(1).start().lineOffset()).isEqualTo(0); - assertThat(file.selectLine(1).end().line()).isEqualTo(1); - assertThat(file.selectLine(1).end().lineOffset()).isEqualTo(9); - - // Don't fail when selecting empty line - assertThat(file.selectLine(3).start().line()).isEqualTo(3); - assertThat(file.selectLine(3).start().lineOffset()).isEqualTo(0); - assertThat(file.selectLine(3).end().line()).isEqualTo(3); - assertThat(file.selectLine(3).end().lineOffset()).isEqualTo(0); - - try { - file.selectLine(5); - fail(); - } catch (Exception e) { - assertThat(e).hasMessage("5 is not a valid line for pointer. File src/Foo.php has 4 line(s)"); - } - } - - @Test - public void checkValidRangeUsingGlobalOffset() { - Metadata metadata = new Metadata(2, 2, "", new int[] {0, 10}, new int[] {9, 15}, 16); - DefaultInputFile file = new DefaultInputFile(new DefaultIndexedFile("ABCDE", Paths.get("module"), MODULE_RELATIVE_PATH, null), f -> f.setMetadata(metadata)); - TextRange newRange = file.newRange(10, 13); - assertThat(newRange.start().line()).isEqualTo(2); - assertThat(newRange.start().lineOffset()).isEqualTo(0); - assertThat(newRange.end().line()).isEqualTo(2); - assertThat(newRange.end().lineOffset()).isEqualTo(3); - } - - @Test - public void testRangeOverlap() { - Metadata metadata = new Metadata(2, 2, "", new int[] {0, 10}, new int[] {9, 15}, 16); - DefaultInputFile file = new DefaultInputFile(new DefaultIndexedFile("ABCDE", Paths.get("module"), MODULE_RELATIVE_PATH, null), f -> f.setMetadata(metadata)); - // Don't fail - assertThat(file.newRange(file.newPointer(1, 0), file.newPointer(1, 1)).overlap(file.newRange(file.newPointer(1, 0), file.newPointer(1, 1)))).isTrue(); - assertThat(file.newRange(file.newPointer(1, 0), file.newPointer(1, 1)).overlap(file.newRange(file.newPointer(1, 0), file.newPointer(1, 2)))).isTrue(); - assertThat(file.newRange(file.newPointer(1, 0), file.newPointer(1, 1)).overlap(file.newRange(file.newPointer(1, 1), file.newPointer(1, 2)))).isFalse(); - assertThat(file.newRange(file.newPointer(1, 2), file.newPointer(1, 3)).overlap(file.newRange(file.newPointer(1, 0), file.newPointer(1, 2)))).isFalse(); - } -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/DefaultInputModuleTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/DefaultInputModuleTest.java deleted file mode 100644 index 02570d36735..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/DefaultInputModuleTest.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.fs; - -import java.io.File; -import java.io.IOException; -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.nio.file.Path; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; -import org.sonar.api.batch.bootstrap.ProjectDefinition; - -import static org.assertj.core.api.Assertions.assertThat; - -public class DefaultInputModuleTest { - - private static final String FILE_1 = "file1"; - private static final String TEST_1 = "test1"; - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - @Test - public void check_getters() throws IOException { - ProjectDefinition def = ProjectDefinition.create(); - def.setKey("moduleKey"); - File baseDir = temp.newFolder(); - Path src = baseDir.toPath().resolve(FILE_1); - Files.createFile(src); - Path test = baseDir.toPath().resolve(TEST_1); - Files.createFile(test); - def.setBaseDir(baseDir); - File workDir = temp.newFolder(); - def.setWorkDir(workDir); - def.setSources(FILE_1); - def.setTests(TEST_1); - DefaultInputModule module = new DefaultInputModule(def); - - assertThat(module.key()).isEqualTo("moduleKey"); - assertThat(module.definition()).isEqualTo(def); - assertThat(module.getBranch()).isNull(); - assertThat(module.getBaseDir()).isEqualTo(baseDir.toPath()); - assertThat(module.getKeyWithBranch()).isEqualTo("moduleKey"); - assertThat(module.getWorkDir()).isEqualTo(workDir.toPath()); - assertThat(module.getEncoding()).isEqualTo(Charset.defaultCharset()); - assertThat(module.getSourceDirsOrFiles().get()).containsExactlyInAnyOrder(src); - assertThat(module.getTestDirsOrFiles().get()).containsExactlyInAnyOrder(test); - assertThat(module.getEncoding()).isEqualTo(Charset.defaultCharset()); - - assertThat(module.isFile()).isFalse(); - } - - @Test - public void no_sources() throws IOException { - ProjectDefinition def = ProjectDefinition.create(); - def.setKey("moduleKey"); - File baseDir = temp.newFolder(); - Path src = baseDir.toPath().resolve(FILE_1); - Files.createFile(src); - Path test = baseDir.toPath().resolve(TEST_1); - Files.createFile(test); - def.setBaseDir(baseDir); - File workDir = temp.newFolder(); - def.setWorkDir(workDir); - DefaultInputModule module = new DefaultInputModule(def); - - assertThat(module.key()).isEqualTo("moduleKey"); - assertThat(module.definition()).isEqualTo(def); - assertThat(module.getBranch()).isNull(); - assertThat(module.getBaseDir()).isEqualTo(baseDir.toPath()); - assertThat(module.getKeyWithBranch()).isEqualTo("moduleKey"); - assertThat(module.getWorkDir()).isEqualTo(workDir.toPath()); - assertThat(module.getEncoding()).isEqualTo(Charset.defaultCharset()); - assertThat(module.getSourceDirsOrFiles()).isNotPresent(); - assertThat(module.getTestDirsOrFiles()).isNotPresent(); - assertThat(module.getEncoding()).isEqualTo(Charset.defaultCharset()); - - assertThat(module.isFile()).isFalse(); - } - - @Test - public void working_directory_should_be_hidden() throws IOException { - ProjectDefinition def = ProjectDefinition.create(); - File workDir = temp.newFolder(".sonar"); - def.setWorkDir(workDir); - File baseDir = temp.newFolder(); - def.setBaseDir(baseDir); - DefaultInputModule module = new DefaultInputModule(def); - assertThat(workDir.isHidden()).isTrue(); - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/DefaultInputProjectTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/DefaultInputProjectTest.java deleted file mode 100644 index 03248472335..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/DefaultInputProjectTest.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.fs; - -import java.io.File; -import java.io.IOException; -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; -import org.sonar.api.batch.bootstrap.ProjectDefinition; - -import static org.assertj.core.api.Assertions.assertThat; - -public class DefaultInputProjectTest { - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - @Test - public void testGetters() throws IOException { - ProjectDefinition def = ProjectDefinition.create(); - def.setKey("projectKey"); - def.setName("projectName"); - File baseDir = temp.newFolder(); - def.setBaseDir(baseDir); - def.setDescription("desc"); - File workDir = temp.newFolder(); - def.setWorkDir(workDir); - def.setSources("file1"); - def.setTests("test1"); - AbstractProjectOrModule project = new DefaultInputProject(def); - - assertThat(project.key()).isEqualTo("projectKey"); - assertThat(project.getName()).isEqualTo("projectName"); - assertThat(project.getOriginalName()).isEqualTo("projectName"); - assertThat(project.definition()).isEqualTo(def); - assertThat(project.getBranch()).isNull(); - assertThat(project.getBaseDir()).isEqualTo(baseDir.toPath()); - assertThat(project.getKeyWithBranch()).isEqualTo("projectKey"); - assertThat(project.getDescription()).isEqualTo("desc"); - assertThat(project.getWorkDir()).isEqualTo(workDir.toPath()); - assertThat(project.getEncoding()).isEqualTo(Charset.defaultCharset()); - - assertThat(project.properties()).hasSize(5); - - assertThat(project.isFile()).isFalse(); - } - - @Test - public void testEncoding() throws IOException { - ProjectDefinition def = ProjectDefinition.create(); - def.setKey("projectKey"); - def.setName("projectName"); - File baseDir = temp.newFolder(); - def.setBaseDir(baseDir); - def.setProjectVersion("version"); - def.setDescription("desc"); - File workDir = temp.newFolder(); - def.setWorkDir(workDir); - def.setSources("file1"); - def.setProperty("sonar.sourceEncoding", "UTF-16"); - AbstractProjectOrModule project = new DefaultInputProject(def); - - assertThat(project.getEncoding()).isEqualTo(StandardCharsets.UTF_16); - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/FileMetadataTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/FileMetadataTest.java deleted file mode 100644 index c2665324ebc..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/FileMetadataTest.java +++ /dev/null @@ -1,308 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.fs; - -import java.io.File; -import java.io.FileInputStream; -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; -import javax.annotation.Nullable; -import org.apache.commons.codec.binary.Hex; -import org.apache.commons.io.FileUtils; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.junit.rules.TemporaryFolder; -import org.sonar.api.batch.fs.internal.Metadata; -import org.sonar.api.utils.log.LogTester; -import org.sonar.api.utils.log.LoggerLevel; - -import static org.apache.commons.codec.digest.DigestUtils.md5Hex; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.fail; - -public class FileMetadataTest { - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - @Rule - public LogTester logTester = new LogTester(); - - @Test - public void empty_file() throws Exception { - File tempFile = temp.newFile(); - FileUtils.touch(tempFile); - - Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(tempFile), StandardCharsets.UTF_8, tempFile.getName()); - assertThat(metadata.lines()).isEqualTo(1); - assertThat(metadata.nonBlankLines()).isEqualTo(0); - assertThat(metadata.hash()).isNotEmpty(); - assertThat(metadata.originalLineStartOffsets()).containsOnly(0); - assertThat(metadata.originalLineEndOffsets()).containsOnly(0); - assertThat(metadata.isEmpty()).isTrue(); - } - - @Test - public void windows_without_latest_eol() throws Exception { - File tempFile = temp.newFile(); - FileUtils.write(tempFile, "foo\r\nbar\r\nbaz", StandardCharsets.UTF_8, true); - - Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(tempFile), StandardCharsets.UTF_8, tempFile.getName()); - assertThat(metadata.lines()).isEqualTo(3); - assertThat(metadata.nonBlankLines()).isEqualTo(3); - assertThat(metadata.hash()).isEqualTo(md5Hex("foo\nbar\nbaz")); - assertThat(metadata.originalLineStartOffsets()).containsOnly(0, 5, 10); - assertThat(metadata.originalLineEndOffsets()).containsOnly(3, 8, 13); - assertThat(metadata.isEmpty()).isFalse(); - } - - @Test - public void read_with_wrong_encoding() throws Exception { - File tempFile = temp.newFile(); - FileUtils.write(tempFile, "marker´s\n", Charset.forName("cp1252")); - - Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(tempFile), StandardCharsets.UTF_8, tempFile.getName()); - assertThat(metadata.lines()).isEqualTo(2); - assertThat(metadata.hash()).isEqualTo(md5Hex("marker\ufffds\n")); - assertThat(metadata.originalLineStartOffsets()).containsOnly(0, 9); - } - - @Test - public void non_ascii_utf_8() throws Exception { - File tempFile = temp.newFile(); - FileUtils.write(tempFile, "föo\r\nbà r\r\n\u1D11Ebaßz\r\n", StandardCharsets.UTF_8, true); - - Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(tempFile), StandardCharsets.UTF_8, tempFile.getName()); - assertThat(metadata.lines()).isEqualTo(4); - assertThat(metadata.nonBlankLines()).isEqualTo(3); - assertThat(metadata.hash()).isEqualTo(md5Hex("föo\nbà r\n\u1D11Ebaßz\n")); - assertThat(metadata.originalLineStartOffsets()).containsOnly(0, 5, 10, 18); - } - - @Test - public void non_ascii_utf_16() throws Exception { - File tempFile = temp.newFile(); - FileUtils.write(tempFile, "föo\r\nbà r\r\n\u1D11Ebaßz\r\n", StandardCharsets.UTF_16, true); - Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(tempFile), StandardCharsets.UTF_16, tempFile.getName()); - assertThat(metadata.lines()).isEqualTo(4); - assertThat(metadata.nonBlankLines()).isEqualTo(3); - assertThat(metadata.hash()).isEqualTo(md5Hex("föo\nbà r\n\u1D11Ebaßz\n".getBytes(StandardCharsets.UTF_8))); - assertThat(metadata.originalLineStartOffsets()).containsOnly(0, 5, 10, 18); - } - - @Test - public void unix_without_latest_eol() throws Exception { - File tempFile = temp.newFile(); - FileUtils.write(tempFile, "foo\nbar\nbaz", StandardCharsets.UTF_8, true); - - Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(tempFile), StandardCharsets.UTF_8, tempFile.getName()); - assertThat(metadata.lines()).isEqualTo(3); - assertThat(metadata.nonBlankLines()).isEqualTo(3); - assertThat(metadata.hash()).isEqualTo(md5Hex("foo\nbar\nbaz")); - assertThat(metadata.originalLineStartOffsets()).containsOnly(0, 4, 8); - assertThat(metadata.originalLineEndOffsets()).containsOnly(3, 7, 11); - assertThat(metadata.isEmpty()).isFalse(); - } - - @Test - public void unix_with_latest_eol() throws Exception { - File tempFile = temp.newFile(); - FileUtils.write(tempFile, "foo\nbar\nbaz\n", StandardCharsets.UTF_8, true); - - Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(tempFile), StandardCharsets.UTF_8, tempFile.getName()); - assertThat(metadata.lines()).isEqualTo(4); - assertThat(metadata.nonBlankLines()).isEqualTo(3); - assertThat(metadata.hash()).isEqualTo(md5Hex("foo\nbar\nbaz\n")); - assertThat(metadata.originalLineStartOffsets()).containsOnly(0, 4, 8, 12); - assertThat(metadata.originalLineEndOffsets()).containsOnly(3, 7, 11, 12); - } - - @Test - public void mac_without_latest_eol() throws Exception { - File tempFile = temp.newFile(); - FileUtils.write(tempFile, "foo\rbar\rbaz", StandardCharsets.UTF_8, true); - - Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(tempFile), StandardCharsets.UTF_8, tempFile.getName()); - assertThat(metadata.lines()).isEqualTo(3); - assertThat(metadata.nonBlankLines()).isEqualTo(3); - assertThat(metadata.hash()).isEqualTo(md5Hex("foo\nbar\nbaz")); - assertThat(metadata.originalLineStartOffsets()).containsOnly(0, 4, 8); - assertThat(metadata.originalLineEndOffsets()).containsOnly(3, 7, 11); - } - - @Test - public void mac_with_latest_eol() throws Exception { - File tempFile = temp.newFile(); - FileUtils.write(tempFile, "foo\rbar\rbaz\r", StandardCharsets.UTF_8, true); - - Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(tempFile), StandardCharsets.UTF_8, tempFile.getName()); - assertThat(metadata.lines()).isEqualTo(4); - assertThat(metadata.nonBlankLines()).isEqualTo(3); - assertThat(metadata.hash()).isEqualTo(md5Hex("foo\nbar\nbaz\n")); - assertThat(metadata.originalLineStartOffsets()).containsOnly(0, 4, 8, 12); - assertThat(metadata.originalLineEndOffsets()).containsOnly(3, 7, 11, 12); - } - - @Test - public void mix_of_newlines_with_latest_eol() throws Exception { - File tempFile = temp.newFile(); - FileUtils.write(tempFile, "foo\nbar\r\nbaz\n", StandardCharsets.UTF_8, true); - - Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(tempFile), StandardCharsets.UTF_8, tempFile.getName()); - assertThat(metadata.lines()).isEqualTo(4); - assertThat(metadata.nonBlankLines()).isEqualTo(3); - assertThat(metadata.hash()).isEqualTo(md5Hex("foo\nbar\nbaz\n")); - assertThat(metadata.originalLineStartOffsets()).containsOnly(0, 4, 9, 13); - assertThat(metadata.originalLineEndOffsets()).containsOnly(3, 7, 12, 13); - } - - @Test - public void several_new_lines() throws Exception { - File tempFile = temp.newFile(); - FileUtils.write(tempFile, "foo\n\n\nbar", StandardCharsets.UTF_8, true); - - Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(tempFile), StandardCharsets.UTF_8, tempFile.getName()); - assertThat(metadata.lines()).isEqualTo(4); - assertThat(metadata.nonBlankLines()).isEqualTo(2); - assertThat(metadata.hash()).isEqualTo(md5Hex("foo\n\n\nbar")); - assertThat(metadata.originalLineStartOffsets()).containsOnly(0, 4, 5, 6); - assertThat(metadata.originalLineEndOffsets()).containsOnly(3, 4, 5, 9); - } - - @Test - public void mix_of_newlines_without_latest_eol() throws Exception { - File tempFile = temp.newFile(); - FileUtils.write(tempFile, "foo\nbar\r\nbaz", StandardCharsets.UTF_8, true); - - Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(tempFile), StandardCharsets.UTF_8, tempFile.getName()); - assertThat(metadata.lines()).isEqualTo(3); - assertThat(metadata.nonBlankLines()).isEqualTo(3); - assertThat(metadata.hash()).isEqualTo(md5Hex("foo\nbar\nbaz")); - assertThat(metadata.originalLineStartOffsets()).containsOnly(0, 4, 9); - assertThat(metadata.originalLineEndOffsets()).containsOnly(3, 7, 12); - } - - @Test - public void start_with_newline() throws Exception { - File tempFile = temp.newFile(); - FileUtils.write(tempFile, "\nfoo\nbar\r\nbaz", StandardCharsets.UTF_8, true); - - Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(tempFile), StandardCharsets.UTF_8, tempFile.getName()); - assertThat(metadata.lines()).isEqualTo(4); - assertThat(metadata.nonBlankLines()).isEqualTo(3); - assertThat(metadata.hash()).isEqualTo(md5Hex("\nfoo\nbar\nbaz")); - assertThat(metadata.originalLineStartOffsets()).containsOnly(0, 1, 5, 10); - assertThat(metadata.originalLineEndOffsets()).containsOnly(0, 4, 8, 13); - } - - @Test - public void ignore_whitespace_when_computing_line_hashes() throws Exception { - File tempFile = temp.newFile(); - FileUtils.write(tempFile, " foo\nb ar\r\nbaz \t", StandardCharsets.UTF_8, true); - - DefaultInputFile f = new TestInputFileBuilder("foo", tempFile.getName()) - .setModuleBaseDir(tempFile.getParentFile().toPath()) - .setCharset(StandardCharsets.UTF_8) - .build(); - FileMetadata.computeLineHashesForIssueTracking(f, new FileMetadata.LineHashConsumer() { - - @Override - public void consume(int lineIdx, @Nullable byte[] hash) { - switch (lineIdx) { - case 1: - assertThat(Hex.encodeHexString(hash)).isEqualTo(md5Hex("foo")); - break; - case 2: - assertThat(Hex.encodeHexString(hash)).isEqualTo(md5Hex("bar")); - break; - case 3: - assertThat(Hex.encodeHexString(hash)).isEqualTo(md5Hex("baz")); - break; - default: - fail("Invalid line"); - } - } - }); - } - - @Test - public void dont_fail_on_empty_file() throws Exception { - File tempFile = temp.newFile(); - FileUtils.write(tempFile, "", StandardCharsets.UTF_8, true); - - DefaultInputFile f = new TestInputFileBuilder("foo", tempFile.getName()) - .setModuleBaseDir(tempFile.getParentFile().toPath()) - .setCharset(StandardCharsets.UTF_8) - .build(); - FileMetadata.computeLineHashesForIssueTracking(f, new FileMetadata.LineHashConsumer() { - - @Override - public void consume(int lineIdx, @Nullable byte[] hash) { - switch (lineIdx) { - case 1: - assertThat(hash).isNull(); - break; - default: - fail("Invalid line"); - } - } - }); - } - - @Test - public void line_feed_is_included_into_hash() throws Exception { - File file1 = temp.newFile(); - FileUtils.write(file1, "foo\nbar\n", StandardCharsets.UTF_8, true); - - // same as file1, except an additional return carriage - File file1a = temp.newFile(); - FileUtils.write(file1a, "foo\r\nbar\n", StandardCharsets.UTF_8, true); - - File file2 = temp.newFile(); - FileUtils.write(file2, "foo\nbar", StandardCharsets.UTF_8, true); - - String hash1 = new FileMetadata().readMetadata(new FileInputStream(file1), StandardCharsets.UTF_8, file1.getName()).hash(); - String hash1a = new FileMetadata().readMetadata(new FileInputStream(file1a), StandardCharsets.UTF_8, file1a.getName()).hash(); - String hash2 = new FileMetadata().readMetadata(new FileInputStream(file2), StandardCharsets.UTF_8, file2.getName()).hash(); - - assertThat(hash1).isEqualTo(hash1a); - assertThat(hash1).isNotEqualTo(hash2); - } - - @Test - public void binary_file_with_unmappable_character() throws Exception { - File woff = new File(this.getClass().getResource("glyphicons-halflings-regular.woff").toURI()); - - Metadata metadata = new FileMetadata().readMetadata(new FileInputStream(woff), StandardCharsets.UTF_8, woff.getAbsolutePath()); - - assertThat(metadata.lines()).isEqualTo(135); - assertThat(metadata.nonBlankLines()).isEqualTo(133); - assertThat(metadata.hash()).isNotEmpty(); - - assertThat(logTester.logs(LoggerLevel.WARN).get(0)).contains("Invalid character encountered in file"); - assertThat(logTester.logs(LoggerLevel.WARN).get(0)).contains( - "glyphicons-halflings-regular.woff at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'."); - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/TestInputFileBuilderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/TestInputFileBuilderTest.java deleted file mode 100644 index 2d83007ff13..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/TestInputFileBuilderTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.fs; - -import java.io.File; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import org.apache.commons.io.IOUtils; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; -import org.sonar.api.batch.fs.InputFile.Status; -import org.sonar.api.batch.fs.InputFile.Type; - -import static org.assertj.core.api.Assertions.assertThat; - -public class TestInputFileBuilderTest { - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - @Test - public void setContent() throws IOException { - DefaultInputFile file = TestInputFileBuilder.create("module", "invalidPath") - .setContents("my content") - .setCharset(StandardCharsets.UTF_8) - .build(); - assertThat(file.contents()).isEqualTo("my content"); - assertThat(IOUtils.toString(file.inputStream())).isEqualTo("my content"); - } - - @Test - public void testGetters() { - DefaultInputFile file = TestInputFileBuilder.create("module", new File("baseDir"), new File("baseDir", "path")) - .setStatus(Status.SAME) - .setType(Type.MAIN) - .build(); - - assertThat(file.type()).isEqualTo(Type.MAIN); - assertThat(file.status()).isEqualTo(Status.SAME); - assertThat(file.isPublished()).isTrue(); - assertThat(file.type()).isEqualTo(Type.MAIN); - assertThat(file.relativePath()).isEqualTo("path"); - assertThat(file.absolutePath()).isEqualTo("baseDir/path"); - - } - - @Test - public void testCreateInputModule() throws IOException { - File baseDir = temp.newFolder(); - AbstractProjectOrModule module = TestInputFileBuilder.newDefaultInputModule("key", baseDir); - assertThat(module.key()).isEqualTo("key"); - assertThat(module.getBaseDir()).isEqualTo(baseDir.toPath()); - } -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/charhandler/IntArrayListTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/charhandler/IntArrayListTest.java deleted file mode 100644 index 048a0309e5f..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/charhandler/IntArrayListTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.fs.charhandler; - -import org.junit.Test; - -import static org.assertj.core.api.Assertions.assertThat; - -public class IntArrayListTest { - - @Test - public void addElements() { - IntArrayList list = new IntArrayList(); - assertThat(list.trimAndGet()).isEmpty(); - list.add(1); - list.add(2); - assertThat(list.trimAndGet()).containsExactly(1, 2); - } - - @Test - public void trimIfNeeded() { - IntArrayList list = new IntArrayList(); - list.add(1); - list.add(2); - assertThat(list.trimAndGet()).isSameAs(list.trimAndGet()); - } - - @Test - public void grow() { - // Default capacity is 10 - IntArrayList list = new IntArrayList(); - for (int i = 1; i <= 11; i++) { - list.add(i); - } - assertThat(list.trimAndGet()).hasSize(11); - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/AndPredicateTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/AndPredicateTest.java deleted file mode 100644 index d3ec2aa7b81..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/AndPredicateTest.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.fs.predicates; - -import org.junit.Test; -import org.sonar.api.batch.fs.FilePredicate; - -import java.util.Arrays; -import org.sonar.api.batch.fs.internal.PathPattern; - -import static org.assertj.core.api.Assertions.assertThat; - -public class AndPredicateTest { - - @Test - public void flattenNestedAnd() { - PathPatternPredicate pathPatternPredicate1 = new PathPatternPredicate(PathPattern.create("foo1/**")); - PathPatternPredicate pathPatternPredicate2 = new PathPatternPredicate(PathPattern.create("foo2/**")); - PathPatternPredicate pathPatternPredicate3 = new PathPatternPredicate(PathPattern.create("foo3/**")); - FilePredicate andPredicate = AndPredicate.create(Arrays.<FilePredicate>asList(pathPatternPredicate1, - AndPredicate.create(Arrays.<FilePredicate>asList(pathPatternPredicate2, pathPatternPredicate3)))); - assertThat(((AndPredicate) andPredicate).predicates()).containsExactly(pathPatternPredicate1, pathPatternPredicate2, pathPatternPredicate3); - } - - @Test - public void sortPredicatesByPriority() { - PathPatternPredicate pathPatternPredicate1 = new PathPatternPredicate(PathPattern.create("foo1/**")); - PathPatternPredicate pathPatternPredicate2 = new PathPatternPredicate(PathPattern.create("foo2/**")); - RelativePathPredicate relativePathPredicate = new RelativePathPredicate("foo"); - FilePredicate andPredicate = AndPredicate.create(Arrays.<FilePredicate>asList(pathPatternPredicate1, - relativePathPredicate, pathPatternPredicate2)); - assertThat(((AndPredicate) andPredicate).predicates()).containsExactly(relativePathPredicate, pathPatternPredicate1, pathPatternPredicate2); - } - - @Test - public void simplifyAndExpressionsWhenEmpty() { - FilePredicate andPredicate = AndPredicate.create(Arrays.<FilePredicate>asList()); - assertThat(andPredicate).isEqualTo(TruePredicate.TRUE); - } - - @Test - public void simplifyAndExpressionsWhenTrue() { - PathPatternPredicate pathPatternPredicate1 = new PathPatternPredicate(PathPattern.create("foo1/**")); - PathPatternPredicate pathPatternPredicate2 = new PathPatternPredicate(PathPattern.create("foo2/**")); - FilePredicate andPredicate = AndPredicate.create(Arrays.<FilePredicate>asList(pathPatternPredicate1, - TruePredicate.TRUE, pathPatternPredicate2)); - assertThat(((AndPredicate) andPredicate).predicates()).containsExactly(pathPatternPredicate1, pathPatternPredicate2); - } - - @Test - public void simplifyAndExpressionsWhenFalse() { - PathPatternPredicate pathPatternPredicate1 = new PathPatternPredicate(PathPattern.create("foo1/**")); - PathPatternPredicate pathPatternPredicate2 = new PathPatternPredicate(PathPattern.create("foo2/**")); - FilePredicate andPredicate = AndPredicate.create(Arrays.<FilePredicate>asList(pathPatternPredicate1, - FalsePredicate.FALSE, pathPatternPredicate2)); - assertThat(andPredicate).isEqualTo(FalsePredicate.FALSE); - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/DefaultFilePredicatesTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/DefaultFilePredicatesTest.java deleted file mode 100644 index d0869f0d9a2..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/DefaultFilePredicatesTest.java +++ /dev/null @@ -1,245 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.fs.predicates; - -import java.io.File; -import java.io.IOException; -import java.net.URI; -import java.nio.file.Path; -import java.util.Arrays; -import java.util.Collections; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; -import org.sonar.api.batch.fs.FilePredicate; -import org.sonar.api.batch.fs.FilePredicates; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.fs.InputFile.Status; -import org.sonar.scanner.fs.TestInputFileBuilder; - -import static org.assertj.core.api.Assertions.assertThat; - -public class DefaultFilePredicatesTest { - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - private Path moduleBasePath; - - @Before - public void setUp() throws IOException { - moduleBasePath = temp.newFolder().toPath(); - } - - InputFile javaFile; - FilePredicates predicates; - - @Before - public void before() throws IOException { - predicates = new DefaultFilePredicates(temp.newFolder().toPath()); - javaFile = new TestInputFileBuilder("foo", "src/main/java/struts/Action.java") - .setModuleBaseDir(moduleBasePath) - .setLanguage("java") - .setStatus(Status.SAME) - .build(); - - } - - @Test - public void all() { - assertThat(predicates.all().apply(javaFile)).isTrue(); - } - - @Test - public void none() { - assertThat(predicates.none().apply(javaFile)).isFalse(); - } - - @Test - public void matches_inclusion_pattern() { - assertThat(predicates.matchesPathPattern("src/main/**/Action.java").apply(javaFile)).isTrue(); - assertThat(predicates.matchesPathPattern("Action.java").apply(javaFile)).isFalse(); - assertThat(predicates.matchesPathPattern("src/**/*.php").apply(javaFile)).isFalse(); - } - - @Test - public void matches_inclusion_patterns() { - assertThat(predicates.matchesPathPatterns(new String[] {"src/other/**.java", "src/main/**/Action.java"}).apply(javaFile)).isTrue(); - assertThat(predicates.matchesPathPatterns(new String[] {}).apply(javaFile)).isTrue(); - assertThat(predicates.matchesPathPatterns(new String[] {"src/other/**.java", "src/**/*.php"}).apply(javaFile)).isFalse(); - } - - @Test - public void does_not_match_exclusion_pattern() { - assertThat(predicates.doesNotMatchPathPattern("src/main/**/Action.java").apply(javaFile)).isFalse(); - assertThat(predicates.doesNotMatchPathPattern("Action.java").apply(javaFile)).isTrue(); - assertThat(predicates.doesNotMatchPathPattern("src/**/*.php").apply(javaFile)).isTrue(); - } - - @Test - public void does_not_match_exclusion_patterns() { - assertThat(predicates.doesNotMatchPathPatterns(new String[] {}).apply(javaFile)).isTrue(); - assertThat(predicates.doesNotMatchPathPatterns(new String[] {"src/other/**.java", "src/**/*.php"}).apply(javaFile)).isTrue(); - assertThat(predicates.doesNotMatchPathPatterns(new String[] {"src/other/**.java", "src/main/**/Action.java"}).apply(javaFile)).isFalse(); - } - - @Test - public void has_relative_path() { - assertThat(predicates.hasRelativePath("src/main/java/struts/Action.java").apply(javaFile)).isTrue(); - assertThat(predicates.hasRelativePath("src/main/java/struts/Other.java").apply(javaFile)).isFalse(); - - // path is normalized - assertThat(predicates.hasRelativePath("src/main/java/../java/struts/Action.java").apply(javaFile)).isTrue(); - - assertThat(predicates.hasRelativePath("src\\main\\java\\struts\\Action.java").apply(javaFile)).isTrue(); - assertThat(predicates.hasRelativePath("src\\main\\java\\struts\\Other.java").apply(javaFile)).isFalse(); - assertThat(predicates.hasRelativePath("src\\main\\java\\struts\\..\\struts\\Action.java").apply(javaFile)).isTrue(); - } - - @Test - public void has_absolute_path() throws Exception { - String path = javaFile.file().getAbsolutePath(); - assertThat(predicates.hasAbsolutePath(path).apply(javaFile)).isTrue(); - assertThat(predicates.hasAbsolutePath(path.replaceAll("/", "\\\\")).apply(javaFile)).isTrue(); - - assertThat(predicates.hasAbsolutePath(temp.newFile().getAbsolutePath()).apply(javaFile)).isFalse(); - assertThat(predicates.hasAbsolutePath("src/main/java/struts/Action.java").apply(javaFile)).isFalse(); - } - - @Test - public void has_uri() throws Exception { - URI uri = javaFile.uri(); - assertThat(predicates.hasURI(uri).apply(javaFile)).isTrue(); - - assertThat(predicates.hasURI(temp.newFile().toURI()).apply(javaFile)).isFalse(); - } - - @Test - public void has_path() throws Exception { - // is relative path - assertThat(predicates.hasPath("src/main/java/struts/Action.java").apply(javaFile)).isTrue(); - assertThat(predicates.hasPath("src/main/java/struts/Other.java").apply(javaFile)).isFalse(); - - // is absolute path - String path = javaFile.file().getAbsolutePath(); - assertThat(predicates.hasAbsolutePath(path).apply(javaFile)).isTrue(); - assertThat(predicates.hasPath(temp.newFile().getAbsolutePath()).apply(javaFile)).isFalse(); - } - - @Test - public void is_file() throws Exception { - // relative file - assertThat(predicates.is(new File(javaFile.relativePath())).apply(javaFile)).isTrue(); - - // absolute file - assertThat(predicates.is(javaFile.file()).apply(javaFile)).isTrue(); - assertThat(predicates.is(javaFile.file().getAbsoluteFile()).apply(javaFile)).isTrue(); - assertThat(predicates.is(new File(javaFile.file().toURI())).apply(javaFile)).isTrue(); - assertThat(predicates.is(temp.newFile()).apply(javaFile)).isFalse(); - } - - @Test - public void has_language() { - assertThat(predicates.hasLanguage("java").apply(javaFile)).isTrue(); - assertThat(predicates.hasLanguage("php").apply(javaFile)).isFalse(); - } - - @Test - public void has_languages() { - assertThat(predicates.hasLanguages(Arrays.asList("java", "php")).apply(javaFile)).isTrue(); - assertThat(predicates.hasLanguages(Arrays.asList("cobol", "php")).apply(javaFile)).isFalse(); - assertThat(predicates.hasLanguages(Collections.<String>emptyList()).apply(javaFile)).isTrue(); - } - - @Test - public void has_type() { - assertThat(predicates.hasType(InputFile.Type.MAIN).apply(javaFile)).isTrue(); - assertThat(predicates.hasType(InputFile.Type.TEST).apply(javaFile)).isFalse(); - } - - @Test - public void has_status() { - assertThat(predicates.hasAnyStatus().apply(javaFile)).isTrue(); - assertThat(predicates.hasStatus(InputFile.Status.SAME).apply(javaFile)).isTrue(); - assertThat(predicates.hasStatus(InputFile.Status.ADDED).apply(javaFile)).isFalse(); - } - - @Test - public void not() { - assertThat(predicates.not(predicates.hasType(InputFile.Type.MAIN)).apply(javaFile)).isFalse(); - assertThat(predicates.not(predicates.hasType(InputFile.Type.TEST)).apply(javaFile)).isTrue(); - } - - @Test - public void and() { - // empty - assertThat(predicates.and().apply(javaFile)).isTrue(); - assertThat(predicates.and(new FilePredicate[0]).apply(javaFile)).isTrue(); - assertThat(predicates.and(Collections.<FilePredicate>emptyList()).apply(javaFile)).isTrue(); - - // two arguments - assertThat(predicates.and(predicates.all(), predicates.all()).apply(javaFile)).isTrue(); - assertThat(predicates.and(predicates.all(), predicates.none()).apply(javaFile)).isFalse(); - assertThat(predicates.and(predicates.none(), predicates.all()).apply(javaFile)).isFalse(); - - // collection - assertThat(predicates.and(Arrays.asList(predicates.all(), predicates.all())).apply(javaFile)).isTrue(); - assertThat(predicates.and(Arrays.asList(predicates.all(), predicates.none())).apply(javaFile)).isFalse(); - - // array - assertThat(predicates.and(new FilePredicate[] {predicates.all(), predicates.all()}).apply(javaFile)).isTrue(); - assertThat(predicates.and(new FilePredicate[] {predicates.all(), predicates.none()}).apply(javaFile)).isFalse(); - } - - @Test - public void or() { - // empty - assertThat(predicates.or().apply(javaFile)).isTrue(); - assertThat(predicates.or(new FilePredicate[0]).apply(javaFile)).isTrue(); - assertThat(predicates.or(Collections.<FilePredicate>emptyList()).apply(javaFile)).isTrue(); - - // two arguments - assertThat(predicates.or(predicates.all(), predicates.all()).apply(javaFile)).isTrue(); - assertThat(predicates.or(predicates.all(), predicates.none()).apply(javaFile)).isTrue(); - assertThat(predicates.or(predicates.none(), predicates.all()).apply(javaFile)).isTrue(); - assertThat(predicates.or(predicates.none(), predicates.none()).apply(javaFile)).isFalse(); - - // collection - assertThat(predicates.or(Arrays.asList(predicates.all(), predicates.all())).apply(javaFile)).isTrue(); - assertThat(predicates.or(Arrays.asList(predicates.all(), predicates.none())).apply(javaFile)).isTrue(); - assertThat(predicates.or(Arrays.asList(predicates.none(), predicates.none())).apply(javaFile)).isFalse(); - - // array - assertThat(predicates.or(new FilePredicate[] {predicates.all(), predicates.all()}).apply(javaFile)).isTrue(); - assertThat(predicates.or(new FilePredicate[] {predicates.all(), predicates.none()}).apply(javaFile)).isTrue(); - assertThat(predicates.or(new FilePredicate[] {predicates.none(), predicates.none()}).apply(javaFile)).isFalse(); - } - - @Test - public void hasFilename() { - assertThat(predicates.hasFilename("Action.java").apply(javaFile)).isTrue(); - } - - @Test - public void hasExtension() { - assertThat(predicates.hasExtension("java").apply(javaFile)).isTrue(); - } -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/FileExtensionPredicateTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/FileExtensionPredicateTest.java deleted file mode 100644 index 8cae2f45ff0..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/FileExtensionPredicateTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.fs.predicates; - -import java.io.IOException; -import org.junit.Test; -import org.sonar.api.batch.fs.InputFile; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; -import static org.sonar.scanner.fs.predicates.FileExtensionPredicate.getExtension; - -public class FileExtensionPredicateTest { - - @Test - public void should_match_correct_extension() throws IOException { - FileExtensionPredicate predicate = new FileExtensionPredicate("bat"); - assertThat(predicate.apply(mockWithName("prog.bat"))).isTrue(); - assertThat(predicate.apply(mockWithName("prog.bat.bat"))).isTrue(); - } - - @Test - public void should_not_match_incorrect_extension() throws IOException { - FileExtensionPredicate predicate = new FileExtensionPredicate("bat"); - assertThat(predicate.apply(mockWithName("prog.batt"))).isFalse(); - assertThat(predicate.apply(mockWithName("prog.abat"))).isFalse(); - assertThat(predicate.apply(mockWithName("prog."))).isFalse(); - assertThat(predicate.apply(mockWithName("prog.bat."))).isFalse(); - assertThat(predicate.apply(mockWithName("prog.bat.batt"))).isFalse(); - assertThat(predicate.apply(mockWithName("prog"))).isFalse(); - } - - @Test - public void should_match_correct_extension_case_insensitively() throws IOException { - FileExtensionPredicate predicate = new FileExtensionPredicate("jAVa"); - assertThat(predicate.apply(mockWithName("Program.java"))).isTrue(); - assertThat(predicate.apply(mockWithName("Program.JAVA"))).isTrue(); - assertThat(predicate.apply(mockWithName("Program.Java"))).isTrue(); - assertThat(predicate.apply(mockWithName("Program.JaVa"))).isTrue(); - } - - @Test - public void test_empty_extension() { - assertThat(getExtension("prog")).isEmpty(); - assertThat(getExtension("prog.")).isEmpty(); - assertThat(getExtension(".")).isEmpty(); - } - - private InputFile mockWithName(String filename) throws IOException { - InputFile inputFile = mock(InputFile.class); - when(inputFile.filename()).thenReturn(filename); - return inputFile; - } -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/FilenamePredicateTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/FilenamePredicateTest.java deleted file mode 100644 index 71c7d1f47de..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/FilenamePredicateTest.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.fs.predicates; - -import java.io.IOException; -import java.util.Collections; -import org.junit.Test; -import org.sonar.api.batch.fs.FileSystem; -import org.sonar.api.batch.fs.InputFile; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -public class FilenamePredicateTest { - @Test - public void should_match_file_by_filename() throws IOException { - String filename = "some name"; - InputFile inputFile = mock(InputFile.class); - when(inputFile.filename()).thenReturn(filename); - - assertThat(new FilenamePredicate(filename).apply(inputFile)).isTrue(); - } - - @Test - public void should_not_match_file_by_different_filename() throws IOException { - String filename = "some name"; - InputFile inputFile = mock(InputFile.class); - when(inputFile.filename()).thenReturn(filename + "x"); - - assertThat(new FilenamePredicate(filename).apply(inputFile)).isFalse(); - } - - @Test - public void should_find_matching_file_in_index() throws IOException { - String filename = "some name"; - InputFile inputFile = mock(InputFile.class); - when(inputFile.filename()).thenReturn(filename); - - FileSystem.Index index = mock(FileSystem.Index.class); - when(index.getFilesByName(filename)).thenReturn(Collections.singleton(inputFile)); - - assertThat(new FilenamePredicate(filename).get(index)).containsOnly(inputFile); - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/OrPredicateTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/OrPredicateTest.java deleted file mode 100644 index 0804d1f3f7e..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/OrPredicateTest.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.fs.predicates; - -import org.junit.Test; -import org.sonar.api.batch.fs.FilePredicate; - -import java.util.Arrays; -import org.sonar.api.batch.fs.internal.PathPattern; - -import static org.assertj.core.api.Assertions.assertThat; - -public class OrPredicateTest { - - @Test - public void flattenNestedOr() { - PathPatternPredicate pathPatternPredicate1 = new PathPatternPredicate(PathPattern.create("foo1/**")); - PathPatternPredicate pathPatternPredicate2 = new PathPatternPredicate(PathPattern.create("foo2/**")); - PathPatternPredicate pathPatternPredicate3 = new PathPatternPredicate(PathPattern.create("foo3/**")); - FilePredicate orPredicate = OrPredicate.create(Arrays.asList(pathPatternPredicate1, - OrPredicate.create(Arrays.asList(pathPatternPredicate2, pathPatternPredicate3)))); - assertThat(((OrPredicate) orPredicate).predicates()).containsExactly(pathPatternPredicate1, pathPatternPredicate2, pathPatternPredicate3); - } - - @Test - public void simplifyOrExpressionsWhenEmpty() { - FilePredicate orPredicate = OrPredicate.create(Arrays.asList()); - assertThat(orPredicate).isEqualTo(TruePredicate.TRUE); - } - - @Test - public void simplifyOrExpressionsWhenFalse() { - PathPatternPredicate pathPatternPredicate1 = new PathPatternPredicate(PathPattern.create("foo1/**")); - PathPatternPredicate pathPatternPredicate2 = new PathPatternPredicate(PathPattern.create("foo2/**")); - FilePredicate andPredicate = OrPredicate.create(Arrays.asList(pathPatternPredicate1, - FalsePredicate.FALSE, pathPatternPredicate2)); - assertThat(((OrPredicate) andPredicate).predicates()).containsExactly(pathPatternPredicate1, pathPatternPredicate2); - } - - @Test - public void simplifyAndExpressionsWhenTrue() { - PathPatternPredicate pathPatternPredicate1 = new PathPatternPredicate(PathPattern.create("foo1/**")); - PathPatternPredicate pathPatternPredicate2 = new PathPatternPredicate(PathPattern.create("foo2/**")); - FilePredicate andPredicate = OrPredicate.create(Arrays.asList(pathPatternPredicate1, - TruePredicate.TRUE, pathPatternPredicate2)); - assertThat(andPredicate).isEqualTo(TruePredicate.TRUE); - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/RelativePathPredicateTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/RelativePathPredicateTest.java deleted file mode 100644 index b3c9c2dc9ff..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/fs/predicates/RelativePathPredicateTest.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.fs.predicates; - -import org.junit.Test; -import org.sonar.api.batch.fs.InputFile; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -public class RelativePathPredicateTest { - @Test - public void returns_false_when_path_is_invalid() { - RelativePathPredicate predicate = new RelativePathPredicate(".."); - InputFile inputFile = mock(InputFile.class); - when(inputFile.relativePath()).thenReturn("path"); - assertThat(predicate.apply(inputFile)).isFalse(); - } - - @Test - public void returns_true_if_matches() { - RelativePathPredicate predicate = new RelativePathPredicate("path"); - InputFile inputFile = mock(InputFile.class); - when(inputFile.relativePath()).thenReturn("path"); - assertThat(predicate.apply(inputFile)).isTrue(); - } - - @Test - public void returns_false_if_doesnt_match() { - RelativePathPredicate predicate = new RelativePathPredicate("path1"); - InputFile inputFile = mock(InputFile.class); - when(inputFile.relativePath()).thenReturn("path2"); - assertThat(predicate.apply(inputFile)).isFalse(); - } -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericCoverageReportParserTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericCoverageReportParserTest.java index ccd628b0a17..777c85a924b 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericCoverageReportParserTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericCoverageReportParserTest.java @@ -28,9 +28,9 @@ import org.junit.Test; import org.junit.rules.TemporaryFolder; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.utils.MessageException; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.TestInputFileBuilder; -import org.sonar.scanner.sensor.SensorContextTester; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.TestInputFileBuilder; +import org.sonar.api.impl.sensor.SensorContextTester; import static org.assertj.core.api.Assertions.assertThat; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericTestExecutionReportParserTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericTestExecutionReportParserTest.java index 40ac5200719..a13c2a7e88a 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericTestExecutionReportParserTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericTestExecutionReportParserTest.java @@ -31,9 +31,9 @@ import org.sonar.api.test.MutableTestCase; import org.sonar.api.test.MutableTestPlan; import org.sonar.api.utils.MessageException; import org.sonar.scanner.deprecated.test.TestPlanBuilder; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.TestInputFileBuilder; -import org.sonar.scanner.sensor.SensorContextTester; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.TestInputFileBuilder; +import org.sonar.api.impl.sensor.SensorContextTester; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericTestExecutionSensorTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericTestExecutionSensorTest.java index 980ee96bbe8..fcd36806b4f 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericTestExecutionSensorTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/genericcoverage/GenericTestExecutionSensorTest.java @@ -35,7 +35,7 @@ import org.sonar.api.utils.log.LoggerLevel; import org.sonar.scanner.config.DefaultConfiguration; import org.sonar.scanner.deprecated.test.TestPlanBuilder; import org.sonar.scanner.scan.ProjectConfiguration; -import org.sonar.scanner.sensor.SensorContextTester; +import org.sonar.api.impl.sensor.SensorContextTester; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/DefaultFilterableIssueTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/DefaultFilterableIssueTest.java index 5250e1aa5d1..cf1b13c9fd8 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/DefaultFilterableIssueTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/DefaultFilterableIssueTest.java @@ -24,7 +24,7 @@ import org.junit.Before; import org.junit.Test; import org.sonar.api.batch.fs.InputComponent; import org.sonar.scanner.ProjectInfo; -import org.sonar.scanner.fs.DefaultInputProject; +import org.sonar.api.impl.fs.DefaultInputProject; import org.sonar.scanner.protocol.Constants.Severity; import org.sonar.scanner.protocol.output.ScannerReport.Issue; import org.sonar.scanner.protocol.output.ScannerReport.TextRange; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/IssuePublisherTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/IssuePublisherTest.java index 881a3629a04..3bd71931f2d 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/IssuePublisherTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/IssuePublisherTest.java @@ -32,18 +32,20 @@ import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.sonar.api.batch.bootstrap.ProjectDefinition; import org.sonar.api.batch.fs.InputComponent; +import org.sonar.api.batch.rule.NewActiveRule; +import org.sonar.api.impl.rule.RulesBuilder; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.DefaultInputProject; +import org.sonar.api.impl.fs.TestInputFileBuilder; +import org.sonar.api.impl.issue.DefaultIssue; +import org.sonar.api.impl.issue.DefaultIssueLocation; +import org.sonar.api.impl.sensor.DefaultExternalIssue; import org.sonar.api.rule.RuleKey; import org.sonar.api.rule.Severity; import org.sonar.api.rules.RuleType; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.DefaultInputProject; -import org.sonar.scanner.fs.TestInputFileBuilder; import org.sonar.scanner.protocol.output.ScannerReport; import org.sonar.scanner.report.ReportPublisher; -import org.sonar.scanner.rule.ActiveRulesBuilder; -import org.sonar.scanner.rule.NewActiveRule; -import org.sonar.scanner.rule.RulesBuilder; -import org.sonar.scanner.sensor.DefaultExternalIssue; +import org.sonar.api.impl.rule.ActiveRulesBuilder; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/EnforceIssuesFilterTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/EnforceIssuesFilterTest.java index a656a767f71..770bfc94806 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/EnforceIssuesFilterTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/EnforceIssuesFilterTest.java @@ -26,7 +26,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; import org.sonar.api.batch.fs.InputComponent; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.api.notifications.AnalysisWarnings; import org.sonar.api.rule.RuleKey; import org.sonar.api.scan.issue.filter.IssueFilterChain; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/IgnoreIssuesFilterTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/IgnoreIssuesFilterTest.java index d5a99ff296f..4f514205e43 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/IgnoreIssuesFilterTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/IgnoreIssuesFilterTest.java @@ -24,7 +24,7 @@ import org.junit.Test; import org.sonar.api.rule.RuleKey; import org.sonar.api.scan.issue.filter.IssueFilterChain; import org.sonar.api.utils.WildcardPattern; -import org.sonar.scanner.fs.DefaultInputFile; +import org.sonar.api.impl.fs.DefaultInputFile; import org.sonar.scanner.issue.DefaultFilterableIssue; import static org.assertj.core.api.Assertions.assertThat; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/pattern/IssueExclusionPatternInitializerTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/pattern/IssueExclusionPatternInitializerTest.java index 50096cc117f..70a6a486db7 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/pattern/IssueExclusionPatternInitializerTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/pattern/IssueExclusionPatternInitializerTest.java @@ -22,7 +22,7 @@ package org.sonar.scanner.issue.ignore.pattern; import org.junit.Before; import org.junit.Test; import org.sonar.api.config.PropertyDefinitions; -import org.sonar.api.config.internal.MapSettings; +import org.sonar.api.impl.config.MapSettings; import org.sonar.api.utils.MessageException; import org.sonar.core.config.IssueExclusionProperties; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/pattern/IssueInclusionPatternInitializerTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/pattern/IssueInclusionPatternInitializerTest.java index c6cc5777bda..7932972af78 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/pattern/IssueInclusionPatternInitializerTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/pattern/IssueInclusionPatternInitializerTest.java @@ -22,7 +22,7 @@ package org.sonar.scanner.issue.ignore.pattern; import org.junit.Before; import org.junit.Test; import org.sonar.api.config.PropertyDefinitions; -import org.sonar.api.config.internal.MapSettings; +import org.sonar.api.impl.config.MapSettings; import org.sonar.core.config.IssueExclusionProperties; import static org.assertj.core.api.Assertions.assertThat; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/scanner/IssueExclusionsLoaderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/scanner/IssueExclusionsLoaderTest.java index 94cebe5f0bd..ea148567732 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/scanner/IssueExclusionsLoaderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/scanner/IssueExclusionsLoaderTest.java @@ -28,8 +28,8 @@ import org.junit.rules.ExpectedException; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.sonar.api.notifications.AnalysisWarnings; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.scanner.issue.ignore.IgnoreIssuesFilter; import org.sonar.scanner.issue.ignore.pattern.IssueExclusionPatternInitializer; import org.sonar.scanner.issue.ignore.pattern.IssuePattern; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/scanner/IssueExclusionsRegexpScannerTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/scanner/IssueExclusionsRegexpScannerTest.java index fb4165825e7..e6c757a92d3 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/scanner/IssueExclusionsRegexpScannerTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/issue/ignore/scanner/IssueExclusionsRegexpScannerTest.java @@ -34,9 +34,9 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.FileMetadata; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.FileMetadata; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.scanner.issue.ignore.pattern.IssueExclusionPatternInitializer; import org.sonar.scanner.issue.ignore.scanner.IssueExclusionsLoader.DoubleRegexpMatcher; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/ScannerMediumTester.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/ScannerMediumTester.java index 244dec3cfcc..96b69e81ff1 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/ScannerMediumTester.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/ScannerMediumTester.java @@ -44,6 +44,8 @@ import org.sonar.api.SonarEdition; import org.sonar.api.SonarProduct; import org.sonar.api.SonarQubeSide; import org.sonar.api.SonarRuntime; +import org.sonar.api.batch.rule.LoadedActiveRule; +import org.sonar.api.impl.server.RuleDefinitionContext; import org.sonar.api.measures.CoreMetrics; import org.sonar.api.measures.Metric; import org.sonar.api.rule.RuleKey; @@ -65,7 +67,6 @@ import org.sonar.scanner.repository.SingleProjectRepository; import org.sonar.scanner.repository.settings.GlobalSettingsLoader; import org.sonar.scanner.repository.settings.ProjectSettingsLoader; import org.sonar.scanner.rule.ActiveRulesLoader; -import org.sonar.scanner.rule.LoadedActiveRule; import org.sonar.scanner.rule.RulesLoader; import org.sonar.scanner.scan.ScanProperties; import org.sonar.scanner.scan.branch.BranchConfiguration; @@ -73,7 +74,6 @@ import org.sonar.scanner.scan.branch.BranchConfigurationLoader; import org.sonar.scanner.scan.branch.BranchType; import org.sonar.scanner.scan.branch.ProjectBranches; import org.sonar.scanner.scan.branch.ProjectPullRequests; -import org.sonar.server.rule.RuleDefinitionContext; import org.sonarqube.ws.Qualityprofiles.SearchWsResponse.QualityProfile; import org.sonarqube.ws.Rules.ListResponse.Rule; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/branch/BranchMediumTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/branch/BranchMediumTest.java index 40695d3529e..bb77fdd9001 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/branch/BranchMediumTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/branch/BranchMediumTest.java @@ -30,8 +30,8 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.FileMetadata; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.FileMetadata; import org.sonar.scanner.mediumtest.AnalysisResult; import org.sonar.scanner.mediumtest.ScannerMediumTester; import org.sonar.scanner.protocol.output.ScannerReport; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/branch/DeprecatedBranchMediumTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/branch/DeprecatedBranchMediumTest.java index d6f141aa0f8..27b0c75eb39 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/branch/DeprecatedBranchMediumTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/branch/DeprecatedBranchMediumTest.java @@ -32,8 +32,8 @@ import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.rules.TemporaryFolder; import org.sonar.api.SonarEdition; +import org.sonar.api.impl.fs.DefaultInputFile; import org.sonar.api.utils.MessageException; -import org.sonar.scanner.fs.DefaultInputFile; import org.sonar.scanner.mediumtest.AnalysisResult; import org.sonar.scanner.mediumtest.ScannerMediumTester; import org.sonar.xoo.XooPlugin; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/fs/FileSystemMediumTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/fs/FileSystemMediumTest.java index e64c47b7edb..aeab4439694 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/fs/FileSystemMediumTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/fs/FileSystemMediumTest.java @@ -41,7 +41,7 @@ import org.sonar.api.utils.PathUtils; import org.sonar.api.utils.System2; import org.sonar.api.utils.log.LogTester; import org.sonar.api.utils.log.LoggerLevel; -import org.sonar.scanner.fs.DefaultInputFile; +import org.sonar.api.impl.fs.DefaultInputFile; import org.sonar.scanner.mediumtest.AnalysisResult; import org.sonar.scanner.mediumtest.ScannerMediumTester; import org.sonar.xoo.XooPlugin; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/issues/ChecksMediumTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/issues/ChecksMediumTest.java index fdc8a2c2b68..e725100e838 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/issues/ChecksMediumTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/issues/ChecksMediumTest.java @@ -34,7 +34,7 @@ import org.sonar.api.rule.RuleKey; import org.sonar.scanner.mediumtest.ScannerMediumTester; import org.sonar.scanner.mediumtest.AnalysisResult; import org.sonar.scanner.protocol.output.ScannerReport.Issue; -import org.sonar.scanner.rule.LoadedActiveRule; +import org.sonar.api.batch.rule.LoadedActiveRule; import org.sonar.xoo.XooPlugin; import org.sonar.xoo.rule.XooRulesDefinition; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/issues/IssuesMediumTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/issues/IssuesMediumTest.java index 683773b6e94..dc306bbec9d 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/issues/IssuesMediumTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/mediumtest/issues/IssuesMediumTest.java @@ -35,7 +35,7 @@ import org.sonar.scanner.mediumtest.ScannerMediumTester; import org.sonar.scanner.mediumtest.AnalysisResult; import org.sonar.scanner.protocol.output.ScannerReport.ExternalIssue; import org.sonar.scanner.protocol.output.ScannerReport.Issue; -import org.sonar.scanner.rule.LoadedActiveRule; +import org.sonar.api.batch.rule.LoadedActiveRule; import org.sonar.xoo.XooPlugin; import org.sonar.xoo.rule.HasTagSensor; import org.sonar.xoo.rule.OneExternalIssuePerLineSensor; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/phases/ModuleCoverageAndDuplicationExclusionsTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/phases/ModuleCoverageAndDuplicationExclusionsTest.java index 6bfffc32384..eff17f8ca83 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/phases/ModuleCoverageAndDuplicationExclusionsTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/phases/ModuleCoverageAndDuplicationExclusionsTest.java @@ -25,8 +25,8 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; import org.sonar.api.CoreProperties; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.scanner.scan.ModuleConfiguration; import org.sonar.scanner.scan.filesystem.ModuleCoverageAndDuplicationExclusions; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/phases/ModuleSensorsExecutorTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/phases/ModuleSensorsExecutorTest.java index d48402ea9ed..fb7cf2ccea1 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/phases/ModuleSensorsExecutorTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/phases/ModuleSensorsExecutorTest.java @@ -26,12 +26,12 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; import org.sonar.api.batch.bootstrap.ProjectDefinition; -import org.sonar.api.batch.fs.internal.SensorStrategy; +import org.sonar.api.impl.fs.SensorStrategy; import org.sonar.api.batch.sensor.Sensor; import org.sonar.scanner.bootstrap.ScannerPluginRepository; -import org.sonar.scanner.fs.DefaultInputModule; +import org.sonar.api.impl.fs.DefaultInputModule; import org.sonar.scanner.fs.InputModuleHierarchy; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.scanner.sensor.ModuleSensorExtensionDictionnary; import org.sonar.scanner.sensor.ModuleSensorWrapper; import org.sonar.scanner.sensor.ModuleSensorsExecutor; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/phases/ProjectCoverageExclusionsTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/phases/ProjectCoverageExclusionsTest.java index a225093a650..f95fa930015 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/phases/ProjectCoverageExclusionsTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/phases/ProjectCoverageExclusionsTest.java @@ -25,8 +25,8 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; import org.sonar.api.CoreProperties; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.scanner.scan.ProjectConfiguration; import org.sonar.scanner.scan.filesystem.ProjectCoverageAndDuplicationExclusions; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/platform/DefaultServerTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/platform/DefaultServerTest.java index a9283aa8590..d34cfb43c12 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/platform/DefaultServerTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/platform/DefaultServerTest.java @@ -24,10 +24,10 @@ import org.junit.Test; import org.sonar.api.CoreProperties; import org.sonar.api.SonarQubeSide; import org.sonar.api.config.Settings; -import org.sonar.api.config.internal.MapSettings; -import org.sonar.api.internal.SonarRuntimeImpl; +import org.sonar.api.impl.config.MapSettings; +import org.sonar.api.impl.context.SonarRuntimeImpl; import org.sonar.api.utils.Version; -import org.sonar.scanner.bootstrap.ScannerWsClient; +import org.sonar.scanner.bootstrap.DefaultScannerWsClient; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; @@ -40,7 +40,7 @@ public class DefaultServerTest { Settings settings = new MapSettings(); settings.setProperty(CoreProperties.SERVER_ID, "123"); settings.setProperty(CoreProperties.SERVER_STARTTIME, "2010-05-18T17:59:00+0000"); - ScannerWsClient client = mock(ScannerWsClient.class); + DefaultScannerWsClient client = mock(DefaultScannerWsClient.class); when(client.baseUrl()).thenReturn("http://foo.com"); DefaultServer metadata = new DefaultServer(((MapSettings) settings).asConfig(), client, @@ -61,7 +61,7 @@ public class DefaultServerTest { @Test public void publicRootUrl() { Settings settings = new MapSettings(); - ScannerWsClient client = mock(ScannerWsClient.class); + DefaultScannerWsClient client = mock(DefaultScannerWsClient.class); when(client.baseUrl()).thenReturn("http://foo.com/"); DefaultServer metadata = new DefaultServer(((MapSettings) settings).asConfig(), client, null); @@ -76,7 +76,7 @@ public class DefaultServerTest { public void invalid_startup_date_throws_exception() { Settings settings = new MapSettings(); settings.setProperty(CoreProperties.SERVER_STARTTIME, "invalid"); - ScannerWsClient client = mock(ScannerWsClient.class); + DefaultScannerWsClient client = mock(DefaultScannerWsClient.class); DefaultServer metadata = new DefaultServer(((MapSettings) settings).asConfig(), client, null); metadata.getStartedAt(); } diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/postjob/DefaultPostJobContextTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/postjob/DefaultPostJobContextTest.java index 6399495c410..27a4f7bbd9e 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/postjob/DefaultPostJobContextTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/postjob/DefaultPostJobContextTest.java @@ -23,7 +23,7 @@ import java.io.IOException; import org.junit.Before; import org.junit.Test; import org.sonar.api.batch.AnalysisMode; -import org.sonar.api.config.internal.MapSettings; +import org.sonar.api.impl.config.MapSettings; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/postjob/PostJobOptimizerTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/postjob/PostJobOptimizerTest.java index 1b604e11b6e..c10ffd5c237 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/postjob/PostJobOptimizerTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/postjob/PostJobOptimizerTest.java @@ -23,7 +23,8 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import org.sonar.api.config.internal.MapSettings; +import org.sonar.api.impl.config.MapSettings; +import org.sonar.api.impl.sensor.DefaultPostJobDescriptor; import static org.assertj.core.api.Assertions.assertThat; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/ActiveRulesPublisherTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/ActiveRulesPublisherTest.java index 6293696adc4..2dce5ea7730 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/ActiveRulesPublisherTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/ActiveRulesPublisherTest.java @@ -24,8 +24,8 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; import org.sonar.api.batch.rule.ActiveRules; -import org.sonar.scanner.rule.DefaultActiveRules; -import org.sonar.scanner.rule.NewActiveRule; +import org.sonar.api.impl.rule.DefaultActiveRules; +import org.sonar.api.batch.rule.NewActiveRule; import org.sonar.api.rule.RuleKey; import org.sonar.core.util.CloseableIterator; import org.sonar.scanner.protocol.Constants; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/AnalysisContextReportPublisherTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/AnalysisContextReportPublisherTest.java index f795cf97408..5299672f6fd 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/AnalysisContextReportPublisherTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/AnalysisContextReportPublisherTest.java @@ -38,7 +38,7 @@ import org.sonar.api.utils.log.LoggerLevel; import org.sonar.core.platform.PluginInfo; import org.sonar.scanner.bootstrap.GlobalServerSettings; import org.sonar.scanner.bootstrap.ScannerPluginRepository; -import org.sonar.scanner.fs.DefaultInputModule; +import org.sonar.api.impl.fs.DefaultInputModule; import org.sonar.scanner.fs.InputModuleHierarchy; import org.sonar.scanner.protocol.output.ScannerReportWriter; import org.sonar.scanner.scan.ProjectServerSettings; @@ -148,66 +148,6 @@ public class AnalysisContextReportPublisherTest { } @Test - public void shouldNotDumpSQPropsInSystemProps() throws Exception { - logTester.setLevel(LoggerLevel.DEBUG); - ScannerReportWriter writer = new ScannerReportWriter(temp.newFolder()); - Properties props = new Properties(); - props.setProperty(COM_FOO, "bar"); - props.setProperty(SONAR_SKIP, "true"); - when(system2.properties()).thenReturn(props); - DefaultInputModule rootModule = new DefaultInputModule(ProjectDefinition.create() - .setBaseDir(temp.newFolder()) - .setWorkDir(temp.newFolder()) - .setProperty("sonar.projectKey", "foo") - .setProperty(COM_FOO, "bar") - .setProperty(SONAR_SKIP, "true")); - when(store.allModules()).thenReturn(singletonList(rootModule)); - when(hierarchy.root()).thenReturn(rootModule); - - publisher.init(writer); - - List<String> lines = FileUtils.readLines(writer.getFileStructure().analysisLog(), StandardCharsets.UTF_8); - assertThat(lines).containsExactly("Environment variables:", - "System properties:", - " - com.foo=bar", - "SonarQube plugins:", - "Global server settings:", - "Project server settings:", - "Project scanner properties:", - " - sonar.projectKey=foo", - " - sonar.skip=true"); - } - - @Test - public void shouldNotDumpEnvTwice() throws Exception { - logTester.setLevel(LoggerLevel.DEBUG); - ScannerReportWriter writer = new ScannerReportWriter(temp.newFolder()); - - Map<String, String> env = new HashMap<>(); - env.put(FOO, "BAR"); - env.put(BIZ, "BAZ"); - when(system2.envVariables()).thenReturn(env); - DefaultInputModule rootModule = new DefaultInputModule(ProjectDefinition.create() - .setBaseDir(temp.newFolder()) - .setWorkDir(temp.newFolder()) - .setProperty("sonar.projectKey", "foo") - .setProperty("env." + FOO, "BAR")); - when(store.allModules()).thenReturn(singletonList(rootModule)); - when(hierarchy.root()).thenReturn(rootModule); - publisher.init(writer); - - String content = FileUtils.readFileToString(writer.getFileStructure().analysisLog(), StandardCharsets.UTF_8); - assertThat(content).containsOnlyOnce(FOO); - assertThat(content).containsOnlyOnce(BIZ); - assertThat(content).containsSubsequence(BIZ, FOO); - - content = FileUtils.readFileToString(writer.getFileStructure().analysisLog(), StandardCharsets.UTF_8); - assertThat(content).containsOnlyOnce(FOO); - assertThat(content).containsOnlyOnce(BIZ); - assertThat(content).doesNotContain("env." + FOO); - } - - @Test public void shouldNotDumpSensitiveModuleProperties() throws Exception { ScannerReportWriter writer = new ScannerReportWriter(temp.newFolder()); DefaultInputModule rootModule = new DefaultInputModule(ProjectDefinition.create() diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/ChangedLinesPublisherTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/ChangedLinesPublisherTest.java index 18ce32fab0a..d3b7a0b4936 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/ChangedLinesPublisherTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/ChangedLinesPublisherTest.java @@ -31,10 +31,10 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; import org.sonar.api.batch.scm.ScmProvider; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.DefaultInputProject; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.DefaultInputProject; import org.sonar.scanner.fs.InputModuleHierarchy; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.scanner.protocol.output.ScannerReportReader; import org.sonar.scanner.protocol.output.ScannerReportWriter; import org.sonar.scanner.scan.branch.BranchConfiguration; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/ComponentsPublisherTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/ComponentsPublisherTest.java index b812747c692..0561c6076e3 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/ComponentsPublisherTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/ComponentsPublisherTest.java @@ -33,9 +33,9 @@ import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.InputFile.Type; import org.sonar.api.utils.DateUtils; import org.sonar.scanner.ProjectInfo; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.DefaultInputProject; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.DefaultInputProject; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.scanner.protocol.output.FileStructure; import org.sonar.scanner.protocol.output.ScannerReport; import org.sonar.scanner.protocol.output.ScannerReport.Component; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/MetadataPublisherTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/MetadataPublisherTest.java index 3eb07e5e945..9bbe982e9fc 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/MetadataPublisherTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/MetadataPublisherTest.java @@ -44,9 +44,9 @@ import org.sonar.scanner.ProjectInfo; import org.sonar.scanner.bootstrap.ScannerPlugin; import org.sonar.scanner.bootstrap.ScannerPluginRepository; import org.sonar.scanner.cpd.CpdSettings; -import org.sonar.scanner.fs.DefaultInputModule; +import org.sonar.api.impl.fs.DefaultInputModule; import org.sonar.scanner.fs.InputModuleHierarchy; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.scanner.protocol.output.ScannerReport; import org.sonar.scanner.protocol.output.ScannerReportReader; import org.sonar.scanner.protocol.output.ScannerReportWriter; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/ReportPublisherTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/ReportPublisherTest.java index 3c7893722ad..e81e23e2f3b 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/ReportPublisherTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/ReportPublisherTest.java @@ -40,8 +40,8 @@ import org.sonar.api.utils.TempFolder; import org.sonar.api.utils.log.LogTester; import org.sonar.api.utils.log.LoggerLevel; import org.sonar.scanner.bootstrap.GlobalAnalysisMode; -import org.sonar.scanner.bootstrap.ScannerWsClient; -import org.sonar.scanner.fs.DefaultInputModule; +import org.sonar.scanner.bootstrap.DefaultScannerWsClient; +import org.sonar.api.impl.fs.DefaultInputModule; import org.sonar.scanner.fs.InputModuleHierarchy; import org.sonar.scanner.scan.ScanProperties; import org.sonar.scanner.scan.branch.BranchConfiguration; @@ -73,7 +73,7 @@ public class ReportPublisherTest { GlobalAnalysisMode mode = mock(GlobalAnalysisMode.class); ScanProperties properties = mock(ScanProperties.class); - ScannerWsClient wsClient = mock(ScannerWsClient.class, Mockito.RETURNS_DEEP_STUBS); + DefaultScannerWsClient wsClient = mock(DefaultScannerWsClient.class, Mockito.RETURNS_DEEP_STUBS); Server server = mock(Server.class); InputModuleHierarchy moduleHierarchy = mock(InputModuleHierarchy.class); DefaultInputModule root; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/SourcePublisherTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/SourcePublisherTest.java index 835e423f9ee..e1239caab09 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/SourcePublisherTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/SourcePublisherTest.java @@ -27,9 +27,9 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.DefaultInputProject; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.DefaultInputProject; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.scanner.protocol.output.ScannerReportWriter; import org.sonar.scanner.scan.branch.BranchConfiguration; import org.sonar.scanner.scan.filesystem.InputComponentStore; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultMetricsRepositoryLoaderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultMetricsRepositoryLoaderTest.java index 5bf58615061..7b21c92e5a8 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultMetricsRepositoryLoaderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultMetricsRepositoryLoaderTest.java @@ -28,7 +28,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.sonar.scanner.WsTestUtil; -import org.sonar.scanner.bootstrap.ScannerWsClient; +import org.sonar.scanner.bootstrap.DefaultScannerWsClient; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; @@ -40,7 +40,7 @@ import static org.mockito.Mockito.when; public class DefaultMetricsRepositoryLoaderTest { private static final String WS_URL = "/api/metrics/search?f=name,description,direction,qualitative,custom&ps=500&p="; - private ScannerWsClient wsClient; + private DefaultScannerWsClient wsClient; private DefaultMetricsRepositoryLoader metricsRepositoryLoader; @Rule @@ -48,7 +48,7 @@ public class DefaultMetricsRepositoryLoaderTest { @Before public void setUp() throws IOException { - wsClient = mock(ScannerWsClient.class); + wsClient = mock(DefaultScannerWsClient.class); WsTestUtil.mockReader(wsClient, WS_URL + "1", new StringReader(IOUtils.toString(this.getClass().getResourceAsStream("DefaultMetricsRepositoryLoaderTest/page1.json")))); WsTestUtil.mockReader(wsClient, WS_URL + "2", new StringReader(IOUtils.toString(this.getClass().getResourceAsStream("DefaultMetricsRepositoryLoaderTest/page2.json")))); metricsRepositoryLoader = new DefaultMetricsRepositoryLoader(wsClient); diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultProjectRepositoriesLoaderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultProjectRepositoriesLoaderTest.java index f2888be4c65..567079db585 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultProjectRepositoriesLoaderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultProjectRepositoriesLoaderTest.java @@ -31,8 +31,8 @@ import org.junit.Test; import org.junit.rules.ExpectedException; import org.sonar.api.utils.MessageException; import org.sonar.scanner.WsTestUtil; -import org.sonar.scanner.bootstrap.ScannerWsClient; -import org.sonar.scanner.fs.DefaultInputFile; +import org.sonar.scanner.bootstrap.DefaultScannerWsClient; +import org.sonar.api.impl.fs.DefaultInputFile; import org.sonarqube.ws.Batch.WsProjectResponse; import org.sonarqube.ws.client.HttpException; import org.sonarqube.ws.client.WsRequest; @@ -49,11 +49,11 @@ public class DefaultProjectRepositoriesLoaderTest { public ExpectedException thrown = ExpectedException.none(); private DefaultProjectRepositoriesLoader loader; - private ScannerWsClient wsClient; + private DefaultScannerWsClient wsClient; @Before public void prepare() throws IOException { - wsClient = mock(ScannerWsClient.class); + wsClient = mock(DefaultScannerWsClient.class); InputStream is = mockData(); WsTestUtil.mockStream(wsClient, "/batch/project.protobuf?key=foo%3F", is); loader = new DefaultProjectRepositoriesLoader(wsClient); diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultQualityProfileLoaderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultQualityProfileLoaderTest.java index 95e38e4520e..edfc14e5bd6 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultQualityProfileLoaderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultQualityProfileLoaderTest.java @@ -29,7 +29,7 @@ import org.junit.Test; import org.junit.rules.ExpectedException; import org.sonar.api.utils.MessageException; import org.sonar.scanner.WsTestUtil; -import org.sonar.scanner.bootstrap.ScannerWsClient; +import org.sonar.scanner.bootstrap.DefaultScannerWsClient; import org.sonar.scanner.scan.ScanProperties; import org.sonarqube.ws.Qualityprofiles; import org.sonarqube.ws.Qualityprofiles.SearchWsResponse.QualityProfile; @@ -43,7 +43,7 @@ public class DefaultQualityProfileLoaderTest { @Rule public ExpectedException exception = ExpectedException.none(); - private ScannerWsClient wsClient = mock(ScannerWsClient.class); + private DefaultScannerWsClient wsClient = mock(DefaultScannerWsClient.class); private ScanProperties properties = mock(ScanProperties.class); private DefaultQualityProfileLoader underTest = new DefaultQualityProfileLoader(properties, wsClient); diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/settings/DefaultGlobalSettingsLoaderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/settings/DefaultGlobalSettingsLoaderTest.java index aff5f0fcc3c..0a1f91e9429 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/settings/DefaultGlobalSettingsLoaderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/settings/DefaultGlobalSettingsLoaderTest.java @@ -25,7 +25,7 @@ import java.io.PipedOutputStream; import java.util.Map; import org.junit.Test; import org.mockito.ArgumentCaptor; -import org.sonar.scanner.bootstrap.ScannerWsClient; +import org.sonar.scanner.bootstrap.DefaultScannerWsClient; import org.sonarqube.ws.Settings; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsResponse; @@ -39,7 +39,7 @@ import static org.mockito.Mockito.when; public class DefaultGlobalSettingsLoaderTest { - private ScannerWsClient wsClient = mock(ScannerWsClient.class); + private DefaultScannerWsClient wsClient = mock(DefaultScannerWsClient.class); private DefaultGlobalSettingsLoader underTest = new DefaultGlobalSettingsLoader(wsClient); @Test diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/settings/DefaultProjectSettingsLoaderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/settings/DefaultProjectSettingsLoaderTest.java index a9163f56bb3..125e7bd74ee 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/settings/DefaultProjectSettingsLoaderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/settings/DefaultProjectSettingsLoaderTest.java @@ -26,7 +26,7 @@ import java.util.Map; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.sonar.scanner.bootstrap.ProcessedScannerProperties; -import org.sonar.scanner.bootstrap.ScannerWsClient; +import org.sonar.scanner.bootstrap.DefaultScannerWsClient; import org.sonarqube.ws.Settings; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsResponse; @@ -40,7 +40,7 @@ import static org.mockito.Mockito.when; public class DefaultProjectSettingsLoaderTest { - private ScannerWsClient wsClient = mock(org.sonar.scanner.bootstrap.ScannerWsClient.class); + private DefaultScannerWsClient wsClient = mock(DefaultScannerWsClient.class); private ProcessedScannerProperties properties = mock(ProcessedScannerProperties.class); private DefaultProjectSettingsLoader underTest = new DefaultProjectSettingsLoader(wsClient, properties); diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/ActiveRulesBuilderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/ActiveRulesBuilderTest.java index e892510d046..c48b0dc8aeb 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/ActiveRulesBuilderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/ActiveRulesBuilderTest.java @@ -24,6 +24,8 @@ import org.junit.Test; import org.junit.rules.ExpectedException; import org.sonar.api.batch.rule.ActiveRule; import org.sonar.api.batch.rule.ActiveRules; +import org.sonar.api.impl.rule.ActiveRulesBuilder; +import org.sonar.api.batch.rule.NewActiveRule; import org.sonar.api.rule.RuleKey; import org.sonar.api.rule.Severity; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/ActiveRulesProviderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/ActiveRulesProviderTest.java index 2773208a00f..4a8851ded6c 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/ActiveRulesProviderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/ActiveRulesProviderTest.java @@ -30,6 +30,7 @@ import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.sonar.api.batch.rule.ActiveRules; +import org.sonar.api.batch.rule.LoadedActiveRule; import org.sonar.api.rule.RuleKey; import org.sonar.api.utils.DateUtils; import org.sonarqube.ws.Qualityprofiles.SearchWsResponse.QualityProfile; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultActiveRulesLoaderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultActiveRulesLoaderTest.java index ad46a6851ed..0dd61ad9ccf 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultActiveRulesLoaderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultActiveRulesLoaderTest.java @@ -26,10 +26,11 @@ import java.util.Collection; import java.util.stream.IntStream; import org.junit.Before; import org.junit.Test; +import org.sonar.api.batch.rule.LoadedActiveRule; import org.sonar.api.rule.RuleKey; import org.sonar.api.rule.Severity; import org.sonar.scanner.WsTestUtil; -import org.sonar.scanner.bootstrap.ScannerWsClient; +import org.sonar.scanner.bootstrap.DefaultScannerWsClient; import org.sonar.scanner.scan.branch.BranchConfiguration; import org.sonarqube.ws.Rules; import org.sonarqube.ws.Rules.Active; @@ -54,11 +55,11 @@ public class DefaultActiveRulesLoaderTest { private static final String SEVERITY_VALUE = Severity.MINOR; private DefaultActiveRulesLoader loader; - private ScannerWsClient wsClient; + private DefaultScannerWsClient wsClient; @Before public void setUp() { - wsClient = mock(ScannerWsClient.class); + wsClient = mock(DefaultScannerWsClient.class); BranchConfiguration branchConfig = mock(BranchConfiguration.class); when(branchConfig.isShortOrPullRequest()).thenReturn(false); loader = new DefaultActiveRulesLoader(wsClient); diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultRulesLoaderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultRulesLoaderTest.java index b2d06f19442..b614d456fbe 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultRulesLoaderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultRulesLoaderTest.java @@ -27,7 +27,7 @@ import java.util.List; import org.junit.Test; import org.junit.rules.ExpectedException; import org.sonar.scanner.WsTestUtil; -import org.sonar.scanner.bootstrap.ScannerWsClient; +import org.sonar.scanner.bootstrap.DefaultScannerWsClient; import org.sonarqube.ws.Rules.ListResponse.Rule; import static org.assertj.core.api.Assertions.assertThat; @@ -39,7 +39,7 @@ public class DefaultRulesLoaderTest { @Test public void testParseServerResponse() throws IOException { - ScannerWsClient wsClient = mock(ScannerWsClient.class); + DefaultScannerWsClient wsClient = mock(DefaultScannerWsClient.class); InputStream is = Resources.asByteSource(this.getClass().getResource("DefaultRulesLoaderTest/response.protobuf")).openBufferedStream(); WsTestUtil.mockStream(wsClient, is); DefaultRulesLoader loader = new DefaultRulesLoader(wsClient); @@ -49,7 +49,7 @@ public class DefaultRulesLoaderTest { @Test public void testError() throws IOException { - ScannerWsClient wsClient = mock(ScannerWsClient.class); + DefaultScannerWsClient wsClient = mock(DefaultScannerWsClient.class); InputStream is = ByteSource.wrap(new String("trash").getBytes()).openBufferedStream(); WsTestUtil.mockStream(wsClient, is); DefaultRulesLoader loader = new DefaultRulesLoader(wsClient); diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultRulesTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultRulesTest.java deleted file mode 100644 index 3beb53fcc04..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultRulesTest.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.rule; - -import org.sonar.api.rule.RuleKey; -import org.junit.Test; - -import java.util.LinkedList; -import java.util.List; - -import static org.assertj.core.api.Assertions.assertThat; - -public class DefaultRulesTest { - @Test - public void testRepeatedInternalKey() { - List<NewRule> newRules = new LinkedList<>(); - newRules.add(createRule("key1", "repo", "internal")); - newRules.add(createRule("key2", "repo", "internal")); - - DefaultRules rules = new DefaultRules(newRules); - assertThat(rules.findByInternalKey("repo", "internal")).hasSize(2); - assertThat(rules.find(RuleKey.of("repo", "key1"))).isNotNull(); - assertThat(rules.find(RuleKey.of("repo", "key2"))).isNotNull(); - assertThat(rules.findByRepository("repo")).hasSize(2); - } - - @Test - public void testNonExistingKey() { - List<NewRule> newRules = new LinkedList<>(); - newRules.add(createRule("key1", "repo", "internal")); - newRules.add(createRule("key2", "repo", "internal")); - - DefaultRules rules = new DefaultRules(newRules); - assertThat(rules.findByInternalKey("xx", "xx")).hasSize(0); - assertThat(rules.find(RuleKey.of("xxx", "xx"))).isNull(); - assertThat(rules.findByRepository("xxxx")).hasSize(0); - } - - @Test - public void testRepeatedRule() { - List<NewRule> newRules = new LinkedList<>(); - newRules.add(createRule("key", "repo", "internal")); - newRules.add(createRule("key", "repo", "internal")); - - DefaultRules rules = new DefaultRules(newRules); - assertThat(rules.find(RuleKey.of("repo", "key"))).isNotNull(); - } - - private NewRule createRule(String key, String repo, String internalKey) { - RuleKey ruleKey = RuleKey.of(repo, key); - NewRule newRule = new NewRule(ruleKey); - newRule.setInternalKey(internalKey); - - return newRule; - } -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/NewActiveRuleTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/NewActiveRuleTest.java deleted file mode 100644 index a3a4e40393d..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/NewActiveRuleTest.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.rule; - -import com.google.common.collect.ImmutableMap; -import org.junit.Before; -import org.junit.Test; -import org.sonar.api.rule.RuleKey; -import org.sonar.api.rule.Severity; - -import static org.assertj.core.api.Assertions.assertThat; - -public class NewActiveRuleTest { - - private NewActiveRule.Builder builder; - - @Before - public void setBuilder() { - builder = new NewActiveRule.Builder(); - } - - @Test - public void builder_should_set_every_param() { - NewActiveRule rule = builder - .setRuleKey(RuleKey.of("foo", "bar")) - .setName("name") - .setSeverity(Severity.CRITICAL) - .setParam("key", "value") - .setCreatedAt(1_000L) - .setUpdatedAt(1_000L) - .setInternalKey("internal_key") - .setLanguage("language") - .setTemplateRuleKey("templateRuleKey") - .setQProfileKey("qProfileKey") - .build(); - - assertThat(rule.ruleKey).isEqualTo(RuleKey.of("foo", "bar")); - assertThat(rule.name).isEqualTo("name"); - assertThat(rule.severity).isEqualTo(Severity.CRITICAL); - assertThat(rule.params).isEqualTo(ImmutableMap.of("key", "value")); - assertThat(rule.createdAt).isEqualTo(1_000L); - assertThat(rule.updatedAt).isEqualTo(1_000L); - assertThat(rule.internalKey).isEqualTo("internal_key"); - assertThat(rule.language).isEqualTo("language"); - assertThat(rule.templateRuleKey).isEqualTo("templateRuleKey"); - assertThat(rule.qProfileKey).isEqualTo("qProfileKey"); - } - - @Test - public void severity_should_have_default_value() { - NewActiveRule rule = builder.build(); - assertThat(rule.severity).isEqualTo(Severity.defaultSeverity()); - } - - @Test - public void params_should_be_empty_map_if_no_params() { - NewActiveRule rule = builder.build(); - assertThat(rule.params).isEqualTo(ImmutableMap.of()); - } - - @Test - public void set_param_remove_param_if_value_is_null() { - NewActiveRule rule = builder - .setParam("foo", "bar") - .setParam("removed", "value") - .setParam("removed", null) - .build(); - assertThat(rule.params).isEqualTo(ImmutableMap.of("foo", "bar")); - } -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/QProfileVerifierTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/QProfileVerifierTest.java index f7a64f06b63..e81930bf234 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/QProfileVerifierTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/QProfileVerifierTest.java @@ -24,7 +24,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.slf4j.Logger; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.scanner.scan.branch.BranchConfiguration; import org.sonar.scanner.scan.filesystem.InputComponentStore; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/RulesBuilderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/RulesBuilderTest.java deleted file mode 100644 index 1bb2375bc21..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/RulesBuilderTest.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.rule; - -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.sonar.api.batch.rule.Rule; -import org.sonar.api.batch.rule.Rules; -import org.sonar.api.rule.RuleKey; -import org.sonar.api.rule.RuleStatus; -import org.sonar.api.rule.Severity; - -import static org.assertj.core.api.Assertions.assertThat; - -public class RulesBuilderTest { - @org.junit.Rule - public ExpectedException thrown = ExpectedException.none(); - - @Test - public void no_rules() { - RulesBuilder builder = new RulesBuilder(); - Rules rules = builder.build(); - assertThat(rules.findAll()).isEmpty(); - } - - @Test - public void build_rules() { - RulesBuilder builder = new RulesBuilder(); - NewRule newSquid1 = builder.add(RuleKey.of("squid", "S0001")); - newSquid1.setName("Detect bug"); - newSquid1.setDescription("Detect potential bug"); - newSquid1.setInternalKey("foo=bar"); - newSquid1.setSeverity(Severity.CRITICAL); - newSquid1.setStatus(RuleStatus.BETA); - newSquid1.addParam("min"); - newSquid1.addParam("max").setDescription("Maximum"); - // most simple rule - builder.add(RuleKey.of("squid", "S0002")); - builder.add(RuleKey.of("findbugs", "NPE")); - - Rules rules = builder.build(); - - assertThat(rules.findAll()).hasSize(3); - assertThat(rules.findByRepository("squid")).hasSize(2); - assertThat(rules.findByRepository("findbugs")).hasSize(1); - assertThat(rules.findByRepository("unknown")).isEmpty(); - - Rule squid1 = rules.find(RuleKey.of("squid", "S0001")); - assertThat(squid1.key().repository()).isEqualTo("squid"); - assertThat(squid1.key().rule()).isEqualTo("S0001"); - assertThat(squid1.name()).isEqualTo("Detect bug"); - assertThat(squid1.description()).isEqualTo("Detect potential bug"); - assertThat(squid1.internalKey()).isEqualTo("foo=bar"); - assertThat(squid1.status()).isEqualTo(RuleStatus.BETA); - assertThat(squid1.severity()).isEqualTo(Severity.CRITICAL); - assertThat(squid1.params()).hasSize(2); - assertThat(squid1.param("min").key()).isEqualTo("min"); - assertThat(squid1.param("min").description()).isNull(); - assertThat(squid1.param("max").key()).isEqualTo("max"); - assertThat(squid1.param("max").description()).isEqualTo("Maximum"); - - Rule squid2 = rules.find(RuleKey.of("squid", "S0002")); - assertThat(squid2.key().repository()).isEqualTo("squid"); - assertThat(squid2.key().rule()).isEqualTo("S0002"); - assertThat(squid2.description()).isNull(); - assertThat(squid2.internalKey()).isNull(); - assertThat(squid2.status()).isEqualTo(RuleStatus.defaultStatus()); - assertThat(squid2.severity()).isEqualTo(Severity.defaultSeverity()); - assertThat(squid2.params()).isEmpty(); - } - - @Test - public void fail_to_add_twice_the_same_rule() { - RulesBuilder builder = new RulesBuilder(); - builder.add(RuleKey.of("squid", "S0001")); - - thrown.expect(IllegalStateException.class); - thrown.expectMessage("Rule 'squid:S0001' already exists"); - - builder.add(RuleKey.of("squid", "S0001")); - } - - @Test - public void fail_to_add_twice_the_same_param() { - RulesBuilder builder = new RulesBuilder(); - NewRule newRule = builder.add(RuleKey.of("squid", "S0001")); - newRule.addParam("min"); - newRule.addParam("max"); - - thrown.expect(IllegalStateException.class); - thrown.expectMessage("Parameter 'min' already exists on rule 'squid:S0001'"); - - newRule.addParam("min"); - } -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/DefaultInputModuleHierarchyTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/DefaultInputModuleHierarchyTest.java index aadf37e6a75..1bdce821151 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/DefaultInputModuleHierarchyTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/DefaultInputModuleHierarchyTest.java @@ -28,7 +28,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; import org.sonar.api.batch.bootstrap.ProjectDefinition; -import org.sonar.scanner.fs.DefaultInputModule; +import org.sonar.api.impl.fs.DefaultInputModule; import static org.assertj.core.api.Assertions.assertThat; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ModuleIndexerTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ModuleIndexerTest.java index 3c4cb6ffb15..18da6ddf5bf 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ModuleIndexerTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ModuleIndexerTest.java @@ -22,7 +22,7 @@ package org.sonar.scanner.scan; import java.util.Arrays; import org.junit.Test; import org.sonar.api.batch.bootstrap.ProjectDefinition; -import org.sonar.scanner.fs.DefaultInputModule; +import org.sonar.api.impl.fs.DefaultInputModule; import org.sonar.scanner.scan.branch.BranchConfiguration; import org.sonar.scanner.scan.filesystem.InputComponentStore; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ProjectLockTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ProjectLockTest.java index 12f20933bdb..9ebc2cea34e 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ProjectLockTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ProjectLockTest.java @@ -29,7 +29,7 @@ import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.rules.TemporaryFolder; import org.sonar.api.batch.bootstrap.ProjectDefinition; -import org.sonar.scanner.fs.DefaultInputProject; +import org.sonar.api.impl.fs.DefaultInputProject; import static org.assertj.core.api.Assertions.assertThat; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ScanPropertiesTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ScanPropertiesTest.java index a2622ae4cbd..7241ab7b03a 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ScanPropertiesTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/ScanPropertiesTest.java @@ -27,9 +27,9 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.rules.TemporaryFolder; -import org.sonar.api.config.internal.MapSettings; +import org.sonar.api.impl.config.MapSettings; import org.sonar.api.utils.MessageException; -import org.sonar.scanner.fs.DefaultInputProject; +import org.sonar.api.impl.fs.DefaultInputProject; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/WorkDirectoriesInitializerTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/WorkDirectoriesInitializerTest.java index ba5aedb451f..19797c845bd 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/WorkDirectoriesInitializerTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/WorkDirectoriesInitializerTest.java @@ -26,7 +26,7 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; -import org.sonar.scanner.fs.DefaultInputModule; +import org.sonar.api.impl.fs.DefaultInputModule; import org.sonar.scanner.fs.InputModuleHierarchy; import static org.assertj.core.api.Assertions.assertThat; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/AdditionalFilePredicatesTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/AdditionalFilePredicatesTest.java index 37775d19ae5..4974350faf7 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/AdditionalFilePredicatesTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/AdditionalFilePredicatesTest.java @@ -22,7 +22,7 @@ package org.sonar.scanner.scan.filesystem; import org.junit.Test; import org.sonar.api.batch.fs.FilePredicate; import org.sonar.api.batch.fs.InputFile; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.TestInputFileBuilder; import static org.assertj.core.api.Assertions.assertThat; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/InputComponentStoreTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/InputComponentStoreTest.java index e9365140bd2..709b5960b9f 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/InputComponentStoreTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/InputComponentStoreTest.java @@ -32,10 +32,10 @@ import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.InputFile.Status; import org.sonar.api.batch.fs.InputFile.Type; import org.sonar.api.batch.fs.InputPath; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.DefaultInputModule; -import org.sonar.scanner.fs.DefaultInputProject; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.DefaultInputModule; +import org.sonar.api.impl.fs.DefaultInputProject; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.scanner.scan.branch.BranchConfiguration; import static org.assertj.core.api.Assertions.assertThat; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/LanguageDetectionTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/LanguageDetectionTest.java index c924cb4c5e5..30a3a20d713 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/LanguageDetectionTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/LanguageDetectionTest.java @@ -27,8 +27,7 @@ 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.internal.MapSettings; +import org.sonar.api.impl.config.MapSettings; import org.sonar.api.resources.Language; import org.sonar.api.resources.Languages; import org.sonar.api.utils.MessageException; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/MetadataGeneratorTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/MetadataGeneratorTest.java index 0682ccaf345..8ec05f3294e 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/MetadataGeneratorTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/MetadataGeneratorTest.java @@ -34,9 +34,9 @@ import org.mockito.MockitoAnnotations; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.notifications.AnalysisWarnings; import org.sonar.api.utils.PathUtils; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.FileMetadata; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.FileMetadata; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.scanner.issue.ignore.IgnoreIssuesFilter; import org.sonar.scanner.issue.ignore.pattern.IssueExclusionPatternInitializer; import org.sonar.scanner.issue.ignore.scanner.IssueExclusionsLoader; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/ModuleInputComponentStoreTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/ModuleInputComponentStoreTest.java index c624be2c6f1..57386cb65e9 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/ModuleInputComponentStoreTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/ModuleInputComponentStoreTest.java @@ -26,9 +26,9 @@ import org.junit.Test; import org.junit.rules.TemporaryFolder; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.InputModule; -import org.sonar.api.batch.fs.internal.SensorStrategy; -import org.sonar.scanner.fs.DefaultInputProject; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.SensorStrategy; +import org.sonar.api.impl.fs.DefaultInputProject; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.scanner.scan.branch.BranchConfiguration; import static org.assertj.core.api.Assertions.assertThat; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/ProjectExclusionFiltersTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/ProjectExclusionFiltersTest.java index 9f613f48ed7..af8c8156613 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/ProjectExclusionFiltersTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/ProjectExclusionFiltersTest.java @@ -30,8 +30,8 @@ import org.junit.rules.TemporaryFolder; import org.sonar.api.CoreProperties; import org.sonar.api.batch.fs.IndexedFile; import org.sonar.api.batch.fs.InputFile; -import org.sonar.scanner.fs.DefaultIndexedFile; -import org.sonar.api.config.internal.MapSettings; +import org.sonar.api.impl.fs.DefaultIndexedFile; +import org.sonar.api.impl.config.MapSettings; import static org.assertj.core.api.Assertions.assertThat; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/StatusDetectionTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/StatusDetectionTest.java index 167b4e33a9c..10fc2c68e1a 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/StatusDetectionTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scan/filesystem/StatusDetectionTest.java @@ -26,8 +26,8 @@ import java.util.Map; import org.junit.Before; import org.junit.Test; import org.sonar.api.batch.fs.InputFile; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.scanner.repository.FileData; import org.sonar.scanner.repository.ProjectRepositoriesSupplier; import org.sonar.scanner.repository.SingleProjectRepository; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scm/DefaultBlameOutputTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scm/DefaultBlameOutputTest.java index a408dde4a41..5ea2bc5464c 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scm/DefaultBlameOutputTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scm/DefaultBlameOutputTest.java @@ -25,7 +25,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.sonar.api.batch.fs.InputFile; -import org.sonar.scanner.fs.TestInputFileBuilder; +import org.sonar.api.impl.fs.TestInputFileBuilder; import org.sonar.api.batch.scm.BlameLine; public class DefaultBlameOutputTest { diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scm/ScmChangedFilesProviderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scm/ScmChangedFilesProviderTest.java index 681433767ff..6304dcbd82f 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/scm/ScmChangedFilesProviderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/scm/ScmChangedFilesProviderTest.java @@ -29,7 +29,7 @@ import org.junit.rules.ExpectedException; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.sonar.api.batch.scm.ScmProvider; -import org.sonar.scanner.fs.DefaultInputProject; +import org.sonar.api.impl.fs.DefaultInputProject; import org.sonar.scanner.fs.InputModuleHierarchy; import org.sonar.scanner.scan.branch.BranchConfiguration; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultAdHocRuleTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultAdHocRuleTest.java deleted file mode 100644 index 44a53e7dbf9..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultAdHocRuleTest.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.sensor; - -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.sonar.api.batch.rule.Severity; -import org.sonar.api.batch.sensor.internal.SensorStorage; -import org.sonar.api.batch.sensor.rule.NewAdHocRule; -import org.sonar.api.rules.RuleType; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -public class DefaultAdHocRuleTest { - - @Rule - public ExpectedException exception = ExpectedException.none(); - - @Test - public void store() { - SensorStorage storage = mock(SensorStorage.class); - DefaultAdHocRule rule = new DefaultAdHocRule(storage) - .engineId("engine") - .ruleId("ruleId") - .name("name") - .description("desc") - .severity(Severity.BLOCKER) - .type(RuleType.CODE_SMELL); - rule.save(); - - assertThat(rule.engineId()).isEqualTo("engine"); - assertThat(rule.ruleId()).isEqualTo("ruleId"); - assertThat(rule.name()).isEqualTo("name"); - assertThat(rule.description()).isEqualTo("desc"); - assertThat(rule.severity()).isEqualTo(Severity.BLOCKER); - assertThat(rule.type()).isEqualTo(RuleType.CODE_SMELL); - - verify(storage).store(any(DefaultAdHocRule.class)); - } - - - @Test - public void description_is_optional() { - SensorStorage storage = mock(SensorStorage.class); - new DefaultAdHocRule(storage) - .engineId("engine") - .ruleId("ruleId") - .name("name") - .severity(Severity.BLOCKER) - .type(RuleType.CODE_SMELL) - .save(); - - verify(storage).store(any(DefaultAdHocRule.class)); - } - - @Test - public void fail_to_store_if_no_engine_id() { - SensorStorage storage = mock(SensorStorage.class); - NewAdHocRule rule = new DefaultAdHocRule(storage) - .engineId(" ") - .ruleId("ruleId") - .name("name") - .description("desc") - .severity(Severity.BLOCKER) - .type(RuleType.CODE_SMELL); - - exception.expect(IllegalStateException.class); - exception.expectMessage("Engine id is mandatory"); - rule.save(); - } - - @Test - public void fail_to_store_if_no_rule_id() { - SensorStorage storage = mock(SensorStorage.class); - NewAdHocRule rule = new DefaultAdHocRule(storage) - .engineId("engine") - .ruleId(" ") - .name("name") - .description("desc") - .severity(Severity.BLOCKER) - .type(RuleType.CODE_SMELL); - - exception.expect(IllegalStateException.class); - exception.expectMessage("Rule id is mandatory"); - rule.save(); - } - - @Test - public void fail_to_store_if_no_name() { - SensorStorage storage = mock(SensorStorage.class); - NewAdHocRule rule = new DefaultAdHocRule(storage) - .engineId("engine") - .ruleId("ruleId") - .name(" ") - .description("desc") - .severity(Severity.BLOCKER) - .type(RuleType.CODE_SMELL); - - exception.expect(IllegalStateException.class); - exception.expectMessage("Name is mandatory"); - rule.save(); - } - - - @Test - public void fail_to_store_if_no_severity() { - SensorStorage storage = mock(SensorStorage.class); - NewAdHocRule rule = new DefaultAdHocRule(storage) - .engineId("engine") - .ruleId("ruleId") - .name("name") - .description("desc") - .type(RuleType.CODE_SMELL); - - exception.expect(IllegalStateException.class); - exception.expectMessage("Severity is mandatory"); - rule.save(); - } - - @Test - public void fail_to_store_if_no_type() { - SensorStorage storage = mock(SensorStorage.class); - NewAdHocRule rule = new DefaultAdHocRule(storage) - .engineId("engine") - .ruleId("ruleId") - .name("name") - .description("desc") - .severity(Severity.BLOCKER); - - exception.expect(IllegalStateException.class); - exception.expectMessage("Type is mandatory"); - rule.save(); - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultAnalysisErrorTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultAnalysisErrorTest.java deleted file mode 100644 index afff924afdf..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultAnalysisErrorTest.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.sensor; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.fs.TextPointer; -import org.sonar.api.batch.sensor.error.NewAnalysisError; -import org.sonar.api.batch.sensor.internal.SensorStorage; -import org.sonar.scanner.fs.DefaultTextPointer; -import org.sonar.scanner.fs.TestInputFileBuilder; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyNoMoreInteractions; - -public class DefaultAnalysisErrorTest { - private InputFile inputFile; - private SensorStorage storage; - private TextPointer textPointer; - - @Rule - public ExpectedException exception = ExpectedException.none(); - - @Before - public void setUp() { - inputFile = new TestInputFileBuilder("module1", "src/File.java").build(); - textPointer = new DefaultTextPointer(5, 2); - storage = mock(SensorStorage.class); - } - - @Test - public void test_analysis_error() { - DefaultAnalysisError analysisError = new DefaultAnalysisError(storage); - analysisError.onFile(inputFile) - .at(textPointer) - .message("msg"); - - assertThat(analysisError.location()).isEqualTo(textPointer); - assertThat(analysisError.message()).isEqualTo("msg"); - assertThat(analysisError.inputFile()).isEqualTo(inputFile); - } - - @Test - public void test_save() { - DefaultAnalysisError analysisError = new DefaultAnalysisError(storage); - analysisError.onFile(inputFile).save(); - - verify(storage).store(analysisError); - verifyNoMoreInteractions(storage); - } - - @Test - public void test_no_storage() { - exception.expect(NullPointerException.class); - DefaultAnalysisError analysisError = new DefaultAnalysisError(); - analysisError.onFile(inputFile).save(); - } - - @Test - public void test_validation() { - try { - new DefaultAnalysisError(storage).onFile(null); - fail("Expected exception"); - } catch (IllegalArgumentException e) { - // expected - } - - NewAnalysisError error = new DefaultAnalysisError(storage).onFile(inputFile); - try { - error.onFile(inputFile); - fail("Expected exception"); - } catch (IllegalStateException e) { - // expected - } - - error = new DefaultAnalysisError(storage).at(textPointer); - try { - error.at(textPointer); - fail("Expected exception"); - } catch (IllegalStateException e) { - // expected - } - - try { - new DefaultAnalysisError(storage).save(); - fail("Expected exception"); - } catch (NullPointerException e) { - // expected - } - } -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultCpdTokensTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultCpdTokensTest.java deleted file mode 100644 index 7a559792723..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultCpdTokensTest.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.sensor; - -import org.junit.Test; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.sensor.internal.SensorStorage; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.TestInputFileBuilder; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.fail; -import static org.assertj.core.api.Assertions.tuple; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyZeroInteractions; - -public class DefaultCpdTokensTest { - private final SensorStorage sensorStorage = mock(SensorStorage.class); - - private final DefaultInputFile inputFile = new TestInputFileBuilder("foo", "src/Foo.java") - .setLines(2) - .setOriginalLineStartOffsets(new int[] {0, 50}) - .setOriginalLineEndOffsets(new int[] {49, 100}) - .setLastValidOffset(101) - .build(); - - @Test - public void save_no_tokens() { - DefaultCpdTokens tokens = new DefaultCpdTokens(sensorStorage) - .onFile(inputFile); - - tokens.save(); - - verify(sensorStorage).store(tokens); - - assertThat(tokens.inputFile()).isEqualTo(inputFile); - } - - @Test - public void save_one_token() { - DefaultCpdTokens tokens = new DefaultCpdTokens(sensorStorage) - .onFile(inputFile) - .addToken(inputFile.newRange(1, 2, 1, 5), "foo"); - - tokens.save(); - - verify(sensorStorage).store(tokens); - - assertThat(tokens.getTokenLines()).extracting("value", "startLine", "hashCode", "startUnit", "endUnit").containsExactly(tuple("foo", 1, "foo".hashCode(), 1, 1)); - } - - @Test - public void handle_exclusions() { - inputFile.setExcludedForDuplication(true); - DefaultCpdTokens tokens = new DefaultCpdTokens(sensorStorage) - .onFile(inputFile) - .addToken(inputFile.newRange(1, 2, 1, 5), "foo"); - - tokens.save(); - - verifyZeroInteractions(sensorStorage); - - assertThat(tokens.getTokenLines()).isEmpty(); - } - - @Test - public void dont_save_for_test_files() { - DefaultInputFile testInputFile = new TestInputFileBuilder("foo", "src/Foo.java") - .setLines(2) - .setOriginalLineStartOffsets(new int[] {0, 50}) - .setOriginalLineEndOffsets(new int[] {49, 100}) - .setLastValidOffset(101) - .setType(InputFile.Type.TEST) - .build(); - - DefaultCpdTokens tokens = new DefaultCpdTokens(sensorStorage) - .onFile(testInputFile) - .addToken(testInputFile.newRange(1, 2, 1, 5), "foo"); - - tokens.save(); - verifyZeroInteractions(sensorStorage); - assertThat(tokens.getTokenLines()).isEmpty(); - } - - @Test - public void save_many_tokens() { - DefaultCpdTokens tokens = new DefaultCpdTokens(sensorStorage) - .onFile(inputFile) - .addToken(inputFile.newRange(1, 2, 1, 5), "foo") - .addToken(inputFile.newRange(1, 6, 1, 10), "bar") - .addToken(inputFile.newRange(1, 20, 1, 25), "biz") - .addToken(inputFile.newRange(2, 1, 2, 10), "next"); - - tokens.save(); - - verify(sensorStorage).store(tokens); - - assertThat(tokens.getTokenLines()) - .extracting("value", "startLine", "hashCode", "startUnit", "endUnit") - .containsExactly( - tuple("foobarbiz", 1, "foobarbiz".hashCode(), 1, 3), - tuple("next", 2, "next".hashCode(), 4, 4)); - } - - @Test - public void basic_validation() { - SensorStorage sensorStorage = mock(SensorStorage.class); - DefaultCpdTokens tokens = new DefaultCpdTokens(sensorStorage); - try { - tokens.save(); - fail("Expected exception"); - } catch (Exception e) { - assertThat(e).hasMessage("Call onFile() first"); - } - try { - tokens.addToken(inputFile.newRange(1, 2, 1, 5), "foo"); - fail("Expected exception"); - } catch (Exception e) { - assertThat(e).hasMessage("Call onFile() first"); - } - try { - tokens.addToken(null, "foo"); - fail("Expected exception"); - } catch (Exception e) { - assertThat(e).hasMessage("Range should not be null"); - } - try { - tokens.addToken(inputFile.newRange(1, 2, 1, 5), null); - fail("Expected exception"); - } catch (Exception e) { - assertThat(e).hasMessage("Image should not be null"); - } - } - - @Test - public void validate_tokens_order() { - SensorStorage sensorStorage = mock(SensorStorage.class); - DefaultCpdTokens tokens = new DefaultCpdTokens(sensorStorage) - .onFile(inputFile) - .addToken(inputFile.newRange(1, 6, 1, 10), "bar"); - - try { - tokens.addToken(inputFile.newRange(1, 2, 1, 5), "foo"); - fail("Expected exception"); - } catch (Exception e) { - assertThat(e).hasMessage("Tokens of file src/Foo.java should be provided in order.\n" + - "Previous token: Range[from [line=1, lineOffset=6] to [line=1, lineOffset=10]]\n" + - "Last token: Range[from [line=1, lineOffset=2] to [line=1, lineOffset=5]]"); - } - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultExternalIssueTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultExternalIssueTest.java deleted file mode 100644 index 0081480f466..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultExternalIssueTest.java +++ /dev/null @@ -1,160 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.sensor; - -import java.io.IOException; -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.batch.bootstrap.ProjectDefinition; -import org.sonar.api.batch.fs.InputComponent; -import org.sonar.api.batch.rule.Severity; -import org.sonar.api.batch.sensor.internal.SensorStorage; -import org.sonar.api.rule.RuleKey; -import org.sonar.api.rules.RuleType; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.DefaultInputProject; -import org.sonar.scanner.fs.TestInputFileBuilder; -import org.sonar.scanner.issue.DefaultIssueLocation; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -public class DefaultExternalIssueTest { - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - private DefaultInputProject project; - - @Before - public void setup() throws IOException { - project = new DefaultInputProject(ProjectDefinition.create() - .setKey("foo") - .setBaseDir(temp.newFolder()) - .setWorkDir(temp.newFolder())); - } - - @Rule - public ExpectedException exception = ExpectedException.none(); - - private DefaultInputFile inputFile = new TestInputFileBuilder("foo", "src/Foo.php") - .initMetadata("Foo\nBar\n") - .build(); - - @Test - public void build_file_issue() { - SensorStorage storage = mock(SensorStorage.class); - DefaultExternalIssue issue = new DefaultExternalIssue(project, storage) - .at(new DefaultIssueLocation() - .on(inputFile) - .at(inputFile.selectLine(1)) - .message("Wrong way!")) - .forRule(RuleKey.of("repo", "rule")) - .remediationEffortMinutes(10l) - .type(RuleType.BUG) - .severity(Severity.BLOCKER); - - assertThat(issue.primaryLocation().inputComponent()).isEqualTo(inputFile); - assertThat(issue.ruleKey()).isEqualTo(RuleKey.of("external_repo", "rule")); - assertThat(issue.engineId()).isEqualTo("repo"); - assertThat(issue.ruleId()).isEqualTo("rule"); - assertThat(issue.primaryLocation().textRange().start().line()).isEqualTo(1); - assertThat(issue.remediationEffort()).isEqualTo(10l); - assertThat(issue.type()).isEqualTo(RuleType.BUG); - assertThat(issue.severity()).isEqualTo(Severity.BLOCKER); - assertThat(issue.primaryLocation().message()).isEqualTo("Wrong way!"); - - issue.save(); - - verify(storage).store(issue); - } - - @Test - public void fail_to_store_if_no_type() { - SensorStorage storage = mock(SensorStorage.class); - DefaultExternalIssue issue = new DefaultExternalIssue(project, storage) - .at(new DefaultIssueLocation() - .on(inputFile) - .at(inputFile.selectLine(1)) - .message("Wrong way!")) - .forRule(RuleKey.of("repo", "rule")) - .remediationEffortMinutes(10l) - .severity(Severity.BLOCKER); - - exception.expect(IllegalStateException.class); - exception.expectMessage("Type is mandatory"); - issue.save(); - } - - @Test - public void fail_to_store_if_primary_location_is_not_a_file() { - SensorStorage storage = mock(SensorStorage.class); - DefaultExternalIssue issue = new DefaultExternalIssue(project, storage) - .at(new DefaultIssueLocation() - .on(mock(InputComponent.class)) - .message("Wrong way!")) - .forRule(RuleKey.of("repo", "rule")) - .remediationEffortMinutes(10l) - .severity(Severity.BLOCKER); - - exception.expect(IllegalStateException.class); - exception.expectMessage("External issues must be located in files"); - issue.save(); - } - - @Test - public void fail_to_store_if_primary_location_has_no_message() { - SensorStorage storage = mock(SensorStorage.class); - DefaultExternalIssue issue = new DefaultExternalIssue(project, storage) - .at(new DefaultIssueLocation() - .on(inputFile) - .at(inputFile.selectLine(1))) - .forRule(RuleKey.of("repo", "rule")) - .remediationEffortMinutes(10l) - .type(RuleType.BUG) - .severity(Severity.BLOCKER); - - exception.expect(IllegalStateException.class); - exception.expectMessage("External issues must have a message"); - issue.save(); - } - - @Test - public void fail_to_store_if_no_severity() { - SensorStorage storage = mock(SensorStorage.class); - DefaultExternalIssue issue = new DefaultExternalIssue(project, storage) - .at(new DefaultIssueLocation() - .on(inputFile) - .at(inputFile.selectLine(1)) - .message("Wrong way!")) - .forRule(RuleKey.of("repo", "rule")) - .remediationEffortMinutes(10l) - .type(RuleType.BUG); - - exception.expect(IllegalStateException.class); - exception.expectMessage("Severity is mandatory"); - issue.save(); - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultHighlightingTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultHighlightingTest.java deleted file mode 100644 index f70f92dd982..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultHighlightingTest.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.sensor; - -import java.util.Collection; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.fs.TextRange; -import org.sonar.api.batch.sensor.internal.SensorStorage; -import org.sonar.scanner.fs.DefaultTextPointer; -import org.sonar.scanner.fs.DefaultTextRange; -import org.sonar.scanner.fs.TestInputFileBuilder; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; -import static org.sonar.api.batch.sensor.highlighting.TypeOfText.COMMENT; -import static org.sonar.api.batch.sensor.highlighting.TypeOfText.CPP_DOC; -import static org.sonar.api.batch.sensor.highlighting.TypeOfText.KEYWORD; - -public class DefaultHighlightingTest { - - private static final InputFile INPUT_FILE = new TestInputFileBuilder("foo", "src/Foo.java") - .setLines(2) - .setOriginalLineStartOffsets(new int[] {0, 50}) - .setOriginalLineEndOffsets(new int[] {49, 100}) - .setLastValidOffset(101) - .build(); - - private Collection<SyntaxHighlightingRule> highlightingRules; - - @Rule - public ExpectedException throwable = ExpectedException.none(); - - @Before - public void setUpSampleRules() { - - DefaultHighlighting highlightingDataBuilder = new DefaultHighlighting(mock(SensorStorage.class)) - .onFile(INPUT_FILE) - .highlight(0, 10, COMMENT) - .highlight(1, 10, 1, 12, KEYWORD) - .highlight(24, 38, KEYWORD) - .highlight(42, 50, KEYWORD) - .highlight(24, 65, CPP_DOC) - .highlight(12, 20, COMMENT); - - highlightingDataBuilder.save(); - - highlightingRules = highlightingDataBuilder.getSyntaxHighlightingRuleSet(); - } - - @Test - public void should_register_highlighting_rule() { - assertThat(highlightingRules).hasSize(6); - } - - private static TextRange rangeOf(int startLine, int startOffset, int endLine, int endOffset) { - return new DefaultTextRange(new DefaultTextPointer(startLine, startOffset), new DefaultTextPointer(endLine, endOffset)); - } - - @Test - public void should_order_by_start_then_end_offset() { - assertThat(highlightingRules).extracting("range", TextRange.class).containsExactly( - rangeOf(1, 0, 1, 10), - rangeOf(1, 10, 1, 12), - rangeOf(1, 12, 1, 20), - rangeOf(1, 24, 2, 15), - rangeOf(1, 24, 1, 38), - rangeOf(1, 42, 2, 0)); - assertThat(highlightingRules).extracting("textType").containsExactly(COMMENT, KEYWORD, COMMENT, CPP_DOC, KEYWORD, KEYWORD); - } - - @Test - public void should_support_overlapping() { - new DefaultHighlighting(mock(SensorStorage.class)) - .onFile(INPUT_FILE) - .highlight(0, 15, KEYWORD) - .highlight(8, 12, CPP_DOC) - .save(); - } - - @Test - public void should_prevent_start_equal_end() { - throwable.expect(IllegalArgumentException.class); - throwable - .expectMessage("Unable to highlight file"); - - new DefaultHighlighting(mock(SensorStorage.class)) - .onFile(INPUT_FILE) - .highlight(10, 10, KEYWORD) - .save(); - } - - @Test - public void should_prevent_boudaries_overlapping() { - throwable.expect(IllegalStateException.class); - throwable - .expectMessage("Cannot register highlighting rule for characters at Range[from [line=1, lineOffset=8] to [line=1, lineOffset=15]] as it overlaps at least one existing rule"); - - new DefaultHighlighting(mock(SensorStorage.class)) - .onFile(INPUT_FILE) - .highlight(0, 10, KEYWORD) - .highlight(8, 15, KEYWORD) - .save(); - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultIssueLocationTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultIssueLocationTest.java deleted file mode 100644 index f869f6f17f0..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultIssueLocationTest.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.sensor; - -import org.apache.commons.lang.StringUtils; -import org.hamcrest.Description; -import org.hamcrest.Matcher; -import org.hamcrest.TypeSafeMatcher; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.scanner.fs.TestInputFileBuilder; -import org.sonar.scanner.issue.DefaultIssueLocation; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.rules.ExpectedException.none; - -public class DefaultIssueLocationTest { - - @Rule - public ExpectedException thrown = none(); - - private InputFile inputFile = new TestInputFileBuilder("foo", "src/Foo.php") - .initMetadata("Foo\nBar\n") - .build(); - - @Test - public void should_build() { - assertThat(new DefaultIssueLocation() - .on(inputFile) - .message("pipo bimbo") - .message() - ).isEqualTo("pipo bimbo"); - } - - @Test - public void not_allowed_to_call_on_twice() { - thrown.expect(IllegalStateException.class); - thrown.expectMessage("on() already called"); - new DefaultIssueLocation() - .on(inputFile) - .on(inputFile) - .message("Wrong way!"); - } - - @Test - public void prevent_too_long_messages() { - assertThat(new DefaultIssueLocation() - .on(inputFile) - .message(StringUtils.repeat("a", 4000)).message()).hasSize(4000); - - assertThat(new DefaultIssueLocation() - .on(inputFile) - .message(StringUtils.repeat("a", 4001)).message()).hasSize(4000); - } - - @Test - public void prevent_null_character_in_message_text() { - thrown.expect(IllegalArgumentException.class); - thrown.expectMessage("Character \\u0000 is not supported in issue message"); - - new DefaultIssueLocation() - .message("pipo " + '\u0000' + " bimbo"); - } - - @Test - public void prevent_null_character_in_message_text_when_builder_has_been_initialized() { - thrown.expect(IllegalArgumentException.class); - thrown.expectMessage(customMatcher("Character \\u0000 is not supported in issue message", ", on component: src/Foo.php")); - - new DefaultIssueLocation() - .on(inputFile) - .message("pipo " + '\u0000' + " bimbo"); - } - - private Matcher<String> customMatcher(String startWith, String endWith) { - return new TypeSafeMatcher<String>() { - @Override - public void describeTo(Description description) { - description.appendText("Invalid message"); - } - - @Override - protected boolean matchesSafely(final String item) { - return item.startsWith(startWith) && item.endsWith(endWith); - } - }; - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultIssueTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultIssueTest.java deleted file mode 100644 index c6659dbc8a1..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultIssueTest.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.sensor; - -import java.io.File; -import java.io.IOException; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; -import org.sonar.api.batch.bootstrap.ProjectDefinition; -import org.sonar.api.batch.rule.Severity; -import org.sonar.api.batch.sensor.internal.SensorStorage; -import org.sonar.api.rule.RuleKey; -import org.sonar.scanner.fs.DefaultInputDir; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.DefaultInputModule; -import org.sonar.scanner.fs.DefaultInputProject; -import org.sonar.scanner.fs.TestInputFileBuilder; -import org.sonar.scanner.issue.DefaultIssue; -import org.sonar.scanner.issue.DefaultIssueLocation; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -public class DefaultIssueTest { - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - private DefaultInputProject project; - - private DefaultInputFile inputFile = new TestInputFileBuilder("foo", "src/Foo.php") - .initMetadata("Foo\nBar\n") - .build(); - - @Before - public void prepare() throws IOException { - project = new DefaultInputProject(ProjectDefinition.create() - .setKey("foo") - .setBaseDir(temp.newFolder()) - .setWorkDir(temp.newFolder())); - } - - @Test - public void build_file_issue() { - SensorStorage storage = mock(SensorStorage.class); - DefaultIssue issue = new DefaultIssue(project, storage) - .at(new DefaultIssueLocation() - .on(inputFile) - .at(inputFile.selectLine(1)) - .message("Wrong way!")) - .forRule(RuleKey.of("repo", "rule")) - .gap(10.0); - - assertThat(issue.primaryLocation().inputComponent()).isEqualTo(inputFile); - assertThat(issue.ruleKey()).isEqualTo(RuleKey.of("repo", "rule")); - assertThat(issue.primaryLocation().textRange().start().line()).isEqualTo(1); - assertThat(issue.gap()).isEqualTo(10.0); - assertThat(issue.primaryLocation().message()).isEqualTo("Wrong way!"); - - issue.save(); - - verify(storage).store(issue); - } - - @Test - public void move_directory_issue_to_project_root() { - SensorStorage storage = mock(SensorStorage.class); - DefaultIssue issue = new DefaultIssue(project, storage) - .at(new DefaultIssueLocation() - .on(new DefaultInputDir("foo", "src/main").setModuleBaseDir(project.getBaseDir())) - .message("Wrong way!")) - .forRule(RuleKey.of("repo", "rule")) - .overrideSeverity(Severity.BLOCKER); - - assertThat(issue.primaryLocation().inputComponent()).isEqualTo(project); - assertThat(issue.ruleKey()).isEqualTo(RuleKey.of("repo", "rule")); - assertThat(issue.primaryLocation().textRange()).isNull(); - assertThat(issue.primaryLocation().message()).isEqualTo("[src/main] Wrong way!"); - assertThat(issue.overriddenSeverity()).isEqualTo(Severity.BLOCKER); - - issue.save(); - - verify(storage).store(issue); - } - - @Test - public void move_submodule_issue_to_project_root() { - File subModuleDirectory = new File(project.getBaseDir().toString(), "bar"); - subModuleDirectory.mkdir(); - - ProjectDefinition subModuleDefinition = ProjectDefinition.create() - .setKey("foo/bar") - .setBaseDir(subModuleDirectory) - .setWorkDir(subModuleDirectory); - project.definition().addSubProject(subModuleDefinition); - DefaultInputModule subModule = new DefaultInputModule(subModuleDefinition); - - SensorStorage storage = mock(SensorStorage.class); - DefaultIssue issue = new DefaultIssue(project, storage) - .at(new DefaultIssueLocation() - .on(subModule) - .message("Wrong way!")) - .forRule(RuleKey.of("repo", "rule")) - .overrideSeverity(Severity.BLOCKER); - - assertThat(issue.primaryLocation().inputComponent()).isEqualTo(project); - assertThat(issue.ruleKey()).isEqualTo(RuleKey.of("repo", "rule")); - assertThat(issue.primaryLocation().textRange()).isNull(); - assertThat(issue.primaryLocation().message()).isEqualTo("[bar] Wrong way!"); - assertThat(issue.overriddenSeverity()).isEqualTo(Severity.BLOCKER); - - issue.save(); - - verify(storage).store(issue); - } - - @Test - public void build_project_issue() throws IOException { - SensorStorage storage = mock(SensorStorage.class); - DefaultInputModule inputModule = new DefaultInputModule(ProjectDefinition.create().setKey("foo").setBaseDir(temp.newFolder()).setWorkDir(temp.newFolder())); - DefaultIssue issue = new DefaultIssue(project, storage) - .at(new DefaultIssueLocation() - .on(inputModule) - .message("Wrong way!")) - .forRule(RuleKey.of("repo", "rule")) - .gap(10.0); - - assertThat(issue.primaryLocation().inputComponent()).isEqualTo(inputModule); - assertThat(issue.ruleKey()).isEqualTo(RuleKey.of("repo", "rule")); - assertThat(issue.primaryLocation().textRange()).isNull(); - assertThat(issue.gap()).isEqualTo(10.0); - assertThat(issue.primaryLocation().message()).isEqualTo("Wrong way!"); - - issue.save(); - - verify(storage).store(issue); - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultMeasureTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultMeasureTest.java deleted file mode 100644 index 43de69f19d0..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultMeasureTest.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.sensor; - -import java.io.IOException; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.junit.rules.TemporaryFolder; -import org.sonar.api.batch.bootstrap.ProjectDefinition; -import org.sonar.api.batch.sensor.internal.SensorStorage; -import org.sonar.api.measures.CoreMetrics; -import org.sonar.scanner.fs.AbstractProjectOrModule; -import org.sonar.scanner.fs.DefaultInputProject; -import org.sonar.scanner.fs.TestInputFileBuilder; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -public class DefaultMeasureTest { - - @Rule - public ExpectedException thrown = ExpectedException.none(); - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - @Test - public void build_file_measure() { - SensorStorage storage = mock(SensorStorage.class); - DefaultMeasure<Integer> newMeasure = new DefaultMeasure<Integer>(storage) - .forMetric(CoreMetrics.LINES) - .on(new TestInputFileBuilder("foo", "src/Foo.php").build()) - .withValue(3); - - assertThat(newMeasure.inputComponent()).isEqualTo(new TestInputFileBuilder("foo", "src/Foo.php").build()); - assertThat(newMeasure.metric()).isEqualTo(CoreMetrics.LINES); - assertThat(newMeasure.value()).isEqualTo(3); - - newMeasure.save(); - - verify(storage).store(newMeasure); - } - - @Test - public void build_project_measure() throws IOException { - SensorStorage storage = mock(SensorStorage.class); - AbstractProjectOrModule module = new DefaultInputProject(ProjectDefinition.create().setKey("foo").setBaseDir(temp.newFolder()).setWorkDir(temp.newFolder())); - DefaultMeasure<Integer> newMeasure = new DefaultMeasure<Integer>(storage) - .forMetric(CoreMetrics.LINES) - .on(module) - .withValue(3); - - assertThat(newMeasure.inputComponent()).isEqualTo(module); - assertThat(newMeasure.metric()).isEqualTo(CoreMetrics.LINES); - assertThat(newMeasure.value()).isEqualTo(3); - - newMeasure.save(); - - verify(storage).store(newMeasure); - } - - @Test - public void not_allowed_to_call_on_twice() throws IOException { - thrown.expect(IllegalStateException.class); - thrown.expectMessage("on() already called"); - new DefaultMeasure<Integer>() - .on(new DefaultInputProject(ProjectDefinition.create().setKey("foo").setBaseDir(temp.newFolder()).setWorkDir(temp.newFolder()))) - .on(new TestInputFileBuilder("foo", "src/Foo.php").build()) - .withValue(3) - .save(); - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultSensorDescriptorTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultSensorDescriptorTest.java deleted file mode 100644 index a43272ba20d..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultSensorDescriptorTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.sensor; - -import org.junit.Test; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.config.internal.MapSettings; - -import static org.assertj.core.api.Assertions.assertThat; - -public class DefaultSensorDescriptorTest { - - @Test - public void describe() { - DefaultSensorDescriptor descriptor = new DefaultSensorDescriptor(); - descriptor - .name("Foo") - .onlyOnLanguage("java") - .onlyOnFileType(InputFile.Type.MAIN) - .requireProperty("sonar.foo.reportPath", "sonar.foo.reportPath2") - .createIssuesForRuleRepository("squid-java"); - - assertThat(descriptor.name()).isEqualTo("Foo"); - assertThat(descriptor.languages()).containsOnly("java"); - assertThat(descriptor.type()).isEqualTo(InputFile.Type.MAIN); - MapSettings settings = new MapSettings(); - settings.setProperty("sonar.foo.reportPath", "foo"); - assertThat(descriptor.configurationPredicate().test(settings.asConfig())).isFalse(); - settings.setProperty("sonar.foo.reportPath2", "foo"); - assertThat(descriptor.configurationPredicate().test(settings.asConfig())).isTrue(); - assertThat(descriptor.ruleRepositories()).containsOnly("squid-java"); - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultSensorStorageTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultSensorStorageTest.java index d95d44a69ed..fe82b642902 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultSensorStorageTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultSensorStorageTest.java @@ -33,17 +33,22 @@ import org.sonar.api.batch.measure.MetricFinder; import org.sonar.api.batch.sensor.highlighting.TypeOfText; import org.sonar.api.batch.sensor.issue.ExternalIssue; import org.sonar.api.batch.sensor.issue.Issue; -import org.sonar.api.config.internal.MapSettings; +import org.sonar.api.impl.config.MapSettings; import org.sonar.api.measures.CoreMetrics; import org.sonar.core.metric.ScannerMetrics; +import org.sonar.api.impl.fs.DefaultInputDir; +import org.sonar.api.impl.fs.DefaultInputFile; +import org.sonar.api.impl.fs.DefaultInputModule; +import org.sonar.api.impl.fs.DefaultInputProject; +import org.sonar.api.impl.fs.TestInputFileBuilder; +import org.sonar.api.impl.sensor.DefaultExternalIssue; +import org.sonar.api.impl.sensor.DefaultHighlighting; +import org.sonar.api.impl.sensor.DefaultMeasure; +import org.sonar.api.impl.sensor.DefaultSignificantCode; +import org.sonar.api.impl.sensor.DefaultSymbolTable; import org.sonar.scanner.cpd.index.SonarCpdBlockIndex; -import org.sonar.scanner.fs.DefaultInputDir; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.DefaultInputModule; -import org.sonar.scanner.fs.DefaultInputProject; -import org.sonar.scanner.fs.TestInputFileBuilder; -import org.sonar.scanner.issue.DefaultIssue; -import org.sonar.scanner.issue.DefaultIssueLocation; +import org.sonar.api.impl.issue.DefaultIssue; +import org.sonar.api.impl.issue.DefaultIssueLocation; import org.sonar.scanner.issue.IssuePublisher; import org.sonar.scanner.protocol.output.FileStructure; import org.sonar.scanner.protocol.output.ScannerReport; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultSignificantCodeTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultSignificantCodeTest.java deleted file mode 100644 index 73a7f1c4299..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultSignificantCodeTest.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.sensor; - -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.sensor.internal.SensorStorage; -import org.sonar.scanner.fs.TestInputFileBuilder; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -public class DefaultSignificantCodeTest { - private SensorStorage sensorStorage = mock(SensorStorage.class); - private DefaultSignificantCode underTest = new DefaultSignificantCode(sensorStorage); - private InputFile inputFile = TestInputFileBuilder.create("module", "file1.xoo") - .setContents("this is\na file\n with some code") - .build(); - - @Rule - public ExpectedException exception = ExpectedException.none(); - - @Test - public void should_save_ranges() { - underTest.onFile(inputFile) - .addRange(inputFile.selectLine(1)) - .save(); - verify(sensorStorage).store(underTest); - } - - @Test - public void fail_if_save_without_file() { - exception.expect(IllegalStateException.class); - exception.expectMessage("Call onFile() first"); - underTest.save(); - } - - @Test - public void fail_if_add_range_to_same_line_twice() { - underTest.onFile(inputFile); - underTest.addRange(inputFile.selectLine(1)); - - exception.expect(IllegalStateException.class); - exception.expectMessage("Significant code was already reported for line '1'."); - underTest.addRange(inputFile.selectLine(1)); - } - - @Test - public void fail_if_range_includes_many_lines() { - underTest.onFile(inputFile); - - exception.expect(IllegalArgumentException.class); - exception.expectMessage("Ranges of significant code must be located in a single line"); - underTest.addRange(inputFile.newRange(1, 1, 2, 1)); - } - - @Test - public void fail_if_add_range_before_setting_file() { - exception.expect(IllegalStateException.class); - exception.expectMessage("addRange() should be called after on()"); - underTest.addRange(inputFile.selectLine(1)); - } -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultSymbolTableTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultSymbolTableTest.java deleted file mode 100644 index 3339e1d2bed..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/DefaultSymbolTableTest.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.sensor; - -import java.util.Map; -import java.util.Set; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.fs.TextRange; -import org.sonar.api.batch.sensor.internal.SensorStorage; -import org.sonar.scanner.fs.TestInputFileBuilder; -import org.sonar.scanner.sensor.DefaultSymbolTable; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; - -public class DefaultSymbolTableTest { - - private static final InputFile INPUT_FILE = new TestInputFileBuilder("foo", "src/Foo.java") - .setLines(2) - .setOriginalLineStartOffsets(new int[] {0, 50}) - .setOriginalLineEndOffsets(new int[] {49, 100}) - .setLastValidOffset(101) - .build(); - - private Map<TextRange, Set<TextRange>> referencesPerSymbol; - - @Rule - public ExpectedException throwable = ExpectedException.none(); - - @Before - public void setUpSampleSymbols() { - - DefaultSymbolTable symbolTableBuilder = new DefaultSymbolTable(mock(SensorStorage.class)) - .onFile(INPUT_FILE); - symbolTableBuilder - .newSymbol(0, 10) - .newReference(12, 15) - .newReference(2, 10, 2, 15); - - symbolTableBuilder.newSymbol(1, 12, 1, 15).newReference(52, 55); - - symbolTableBuilder.save(); - - referencesPerSymbol = symbolTableBuilder.getReferencesBySymbol(); - } - - @Test - public void should_register_symbols() { - assertThat(referencesPerSymbol).hasSize(2); - } - -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/InMemorySensorStorageTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/InMemorySensorStorageTest.java deleted file mode 100644 index 76e4874a41a..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/InMemorySensorStorageTest.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.sensor; - -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.ExpectedException; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.data.MapEntry.entry; - -public class InMemorySensorStorageTest { - - @Rule - public ExpectedException expectedException = ExpectedException.none(); - - InMemorySensorStorage underTest = new InMemorySensorStorage(); - - @Test - public void test_storeProperty() { - assertThat(underTest.contextProperties).isEmpty(); - - underTest.storeProperty("foo", "bar"); - assertThat(underTest.contextProperties).containsOnly(entry("foo", "bar")); - } - - @Test - public void storeProperty_throws_IAE_if_key_is_null() { - expectedException.expect(IllegalArgumentException.class); - expectedException.expectMessage("Key of context property must not be null"); - - underTest.storeProperty(null, "bar"); - } - - @Test - public void storeProperty_throws_IAE_if_value_is_null() { - expectedException.expect(IllegalArgumentException.class); - expectedException.expectMessage("Value of context property must not be null"); - - underTest.storeProperty("foo", null); - } -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorContextTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorContextTest.java index 668a050119a..dea7f4176d5 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorContextTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorContextTest.java @@ -31,13 +31,13 @@ import org.sonar.api.batch.fs.InputModule; import org.sonar.api.batch.measure.MetricFinder; import org.sonar.api.batch.rule.ActiveRules; import org.sonar.api.batch.sensor.internal.SensorStorage; -import org.sonar.api.config.internal.MapSettings; -import org.sonar.api.internal.SonarRuntimeImpl; +import org.sonar.api.impl.config.MapSettings; +import org.sonar.api.impl.fs.DefaultFileSystem; +import org.sonar.api.impl.fs.DefaultInputProject; +import org.sonar.api.impl.context.SonarRuntimeImpl; import org.sonar.api.measures.CoreMetrics; import org.sonar.api.utils.Version; -import org.sonar.scanner.fs.DefaultFileSystem; -import org.sonar.scanner.fs.DefaultInputProject; -import org.sonar.scanner.rule.ActiveRulesBuilder; +import org.sonar.api.impl.rule.ActiveRulesBuilder; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorOptimizerTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorOptimizerTest.java index 0a78c6b2984..197749532c8 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorOptimizerTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/ModuleSensorOptimizerTest.java @@ -26,12 +26,13 @@ import org.junit.rules.ExpectedException; import org.junit.rules.TemporaryFolder; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.rule.ActiveRules; -import org.sonar.api.config.internal.MapSettings; +import org.sonar.api.batch.rule.NewActiveRule; +import org.sonar.api.impl.config.MapSettings; +import org.sonar.api.impl.fs.DefaultFileSystem; +import org.sonar.api.impl.fs.TestInputFileBuilder; +import org.sonar.api.impl.sensor.DefaultSensorDescriptor; import org.sonar.api.rule.RuleKey; -import org.sonar.scanner.fs.DefaultFileSystem; -import org.sonar.scanner.fs.TestInputFileBuilder; -import org.sonar.scanner.rule.ActiveRulesBuilder; -import org.sonar.scanner.rule.NewActiveRule; +import org.sonar.api.impl.rule.ActiveRulesBuilder; import static org.assertj.core.api.Assertions.assertThat; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/SensorContextTesterTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/SensorContextTesterTest.java deleted file mode 100644 index 24e93796c31..00000000000 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/sensor/SensorContextTesterTest.java +++ /dev/null @@ -1,375 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2019 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.scanner.sensor; - -import java.io.File; -import java.io.IOException; -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.batch.bootstrap.ProjectDefinition; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.rule.ActiveRules; -import org.sonar.api.batch.rule.Severity; -import org.sonar.api.batch.sensor.error.AnalysisError; -import org.sonar.api.batch.sensor.error.NewAnalysisError; -import org.sonar.api.batch.sensor.highlighting.TypeOfText; -import org.sonar.api.batch.sensor.issue.NewExternalIssue; -import org.sonar.api.batch.sensor.issue.NewIssue; -import org.sonar.api.batch.sensor.symbol.NewSymbolTable; -import org.sonar.api.config.Settings; -import org.sonar.api.config.internal.MapSettings; -import org.sonar.api.measures.CoreMetrics; -import org.sonar.api.rule.RuleKey; -import org.sonar.api.rules.RuleType; -import org.sonar.scanner.fs.DefaultFileSystem; -import org.sonar.scanner.fs.DefaultInputFile; -import org.sonar.scanner.fs.DefaultInputModule; -import org.sonar.scanner.fs.DefaultTextPointer; -import org.sonar.scanner.fs.TestInputFileBuilder; -import org.sonar.scanner.rule.ActiveRulesBuilder; -import org.sonar.scanner.rule.NewActiveRule; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.tuple; -import static org.assertj.core.data.MapEntry.entry; - -public class SensorContextTesterTest { - - @Rule - public TemporaryFolder temp = new TemporaryFolder(); - - @Rule - public ExpectedException exception = ExpectedException.none(); - - private SensorContextTester tester; - private File baseDir; - - @Before - public void prepare() throws Exception { - baseDir = temp.newFolder(); - tester = SensorContextTester.create(baseDir); - } - - @Test - public void testSettings() { - Settings settings = new MapSettings(); - settings.setProperty("foo", "bar"); - tester.setSettings(settings); - assertThat(tester.settings().getString("foo")).isEqualTo("bar"); - } - - @Test - public void testActiveRules() { - NewActiveRule activeRule = new NewActiveRule.Builder() - .setRuleKey(RuleKey.of("foo", "bar")) - .build(); - ActiveRules activeRules = new ActiveRulesBuilder().addRule(activeRule).build(); - tester.setActiveRules(activeRules); - assertThat(tester.activeRules().findAll()).hasSize(1); - } - - @Test - public void testFs() throws Exception { - DefaultFileSystem fs = new DefaultFileSystem(temp.newFolder()); - tester.setFileSystem(fs); - assertThat(tester.fileSystem().baseDir()).isNotEqualTo(baseDir); - } - - @Test - public void testIssues() { - assertThat(tester.allIssues()).isEmpty(); - NewIssue newIssue = tester.newIssue(); - newIssue - .at(newIssue.newLocation().on(new TestInputFileBuilder("foo", "src/Foo.java").build())) - .forRule(RuleKey.of("repo", "rule")) - .save(); - newIssue = tester.newIssue(); - newIssue - .at(newIssue.newLocation().on(new TestInputFileBuilder("foo", "src/Foo.java").build())) - .forRule(RuleKey.of("repo", "rule")) - .save(); - assertThat(tester.allIssues()).hasSize(2); - } - - @Test - public void testExternalIssues() { - assertThat(tester.allExternalIssues()).isEmpty(); - NewExternalIssue newExternalIssue = tester.newExternalIssue(); - newExternalIssue - .at(newExternalIssue.newLocation().message("message").on(new TestInputFileBuilder("foo", "src/Foo.java").build())) - .forRule(RuleKey.of("repo", "rule")) - .type(RuleType.BUG) - .severity(Severity.BLOCKER) - .save(); - newExternalIssue = tester.newExternalIssue(); - newExternalIssue - .at(newExternalIssue.newLocation().message("message").on(new TestInputFileBuilder("foo", "src/Foo.java").build())) - .type(RuleType.BUG) - .severity(Severity.BLOCKER) - .forRule(RuleKey.of("repo", "rule")) - .save(); - assertThat(tester.allExternalIssues()).hasSize(2); - } - - @Test - public void testAnalysisErrors() { - assertThat(tester.allAnalysisErrors()).isEmpty(); - NewAnalysisError newAnalysisError = tester.newAnalysisError(); - - InputFile file = new TestInputFileBuilder("foo", "src/Foo.java").build(); - newAnalysisError.onFile(file) - .message("error") - .at(new DefaultTextPointer(5, 2)) - .save(); - - assertThat(tester.allAnalysisErrors()).hasSize(1); - AnalysisError analysisError = tester.allAnalysisErrors().iterator().next(); - - assertThat(analysisError.inputFile()).isEqualTo(file); - assertThat(analysisError.message()).isEqualTo("error"); - assertThat(analysisError.location()).isEqualTo(new DefaultTextPointer(5, 2)); - - } - - @Test - public void testMeasures() throws IOException { - assertThat(tester.measures("foo:src/Foo.java")).isEmpty(); - assertThat(tester.measure("foo:src/Foo.java", "ncloc")).isNull(); - tester.<Integer>newMeasure() - .on(new TestInputFileBuilder("foo", "src/Foo.java").build()) - .forMetric(CoreMetrics.NCLOC) - .withValue(2) - .save(); - assertThat(tester.measures("foo:src/Foo.java")).hasSize(1); - assertThat(tester.measure("foo:src/Foo.java", "ncloc")).isNotNull(); - tester.<Integer>newMeasure() - .on(new TestInputFileBuilder("foo", "src/Foo.java").build()) - .forMetric(CoreMetrics.LINES) - .withValue(4) - .save(); - assertThat(tester.measures("foo:src/Foo.java")).hasSize(2); - assertThat(tester.measure("foo:src/Foo.java", "ncloc")).isNotNull(); - assertThat(tester.measure("foo:src/Foo.java", "lines")).isNotNull(); - tester.<Integer>newMeasure() - .on(new DefaultInputModule(ProjectDefinition.create().setKey("foo").setBaseDir(temp.newFolder()).setWorkDir(temp.newFolder()))) - .forMetric(CoreMetrics.DIRECTORIES) - .withValue(4) - .save(); - assertThat(tester.measures("foo")).hasSize(1); - assertThat(tester.measure("foo", "directories")).isNotNull(); - } - - @Test(expected = IllegalStateException.class) - public void duplicateMeasures() { - tester.<Integer>newMeasure() - .on(new TestInputFileBuilder("foo", "src/Foo.java").build()) - .forMetric(CoreMetrics.NCLOC) - .withValue(2) - .save(); - tester.<Integer>newMeasure() - .on(new TestInputFileBuilder("foo", "src/Foo.java").build()) - .forMetric(CoreMetrics.NCLOC) - .withValue(2) - .save(); - } - - @Test - public void testHighlighting() { - assertThat(tester.highlightingTypeAt("foo:src/Foo.java", 1, 3)).isEmpty(); - tester.newHighlighting() - .onFile(new TestInputFileBuilder("foo", "src/Foo.java").initMetadata("annot dsf fds foo bar").build()) - .highlight(1, 0, 1, 5, TypeOfText.ANNOTATION) - .highlight(8, 10, TypeOfText.CONSTANT) - .highlight(9, 10, TypeOfText.COMMENT) - .save(); - assertThat(tester.highlightingTypeAt("foo:src/Foo.java", 1, 3)).containsExactly(TypeOfText.ANNOTATION); - assertThat(tester.highlightingTypeAt("foo:src/Foo.java", 1, 9)).containsExactly(TypeOfText.CONSTANT, TypeOfText.COMMENT); - } - - @Test(expected = UnsupportedOperationException.class) - public void duplicateHighlighting() { - tester.newHighlighting() - .onFile(new TestInputFileBuilder("foo", "src/Foo.java").initMetadata("annot dsf fds foo bar").build()) - .highlight(1, 0, 1, 5, TypeOfText.ANNOTATION) - .save(); - tester.newHighlighting() - .onFile(new TestInputFileBuilder("foo", "src/Foo.java").initMetadata("annot dsf fds foo bar").build()) - .highlight(1, 0, 1, 5, TypeOfText.ANNOTATION) - .save(); - } - - @Test - public void testSymbolReferences() { - assertThat(tester.referencesForSymbolAt("foo:src/Foo.java", 1, 0)).isNull(); - - NewSymbolTable symbolTable = tester.newSymbolTable() - .onFile(new TestInputFileBuilder("foo", "src/Foo.java").initMetadata("annot dsf fds foo bar").build()); - symbolTable - .newSymbol(1, 8, 1, 10); - - symbolTable - .newSymbol(1, 1, 1, 5) - .newReference(6, 9) - .newReference(1, 10, 1, 13); - - symbolTable.save(); - - assertThat(tester.referencesForSymbolAt("foo:src/Foo.java", 1, 0)).isNull(); - assertThat(tester.referencesForSymbolAt("foo:src/Foo.java", 1, 8)).isEmpty(); - assertThat(tester.referencesForSymbolAt("foo:src/Foo.java", 1, 3)).extracting("start.line", "start.lineOffset", "end.line", "end.lineOffset").containsExactly(tuple(1, 6, 1, 9), - tuple(1, 10, 1, 13)); - } - - @Test(expected = UnsupportedOperationException.class) - public void duplicateSymbolReferences() { - NewSymbolTable symbolTable = tester.newSymbolTable() - .onFile(new TestInputFileBuilder("foo", "src/Foo.java").initMetadata("annot dsf fds foo bar").build()); - symbolTable - .newSymbol(1, 8, 1, 10); - - symbolTable.save(); - - symbolTable = tester.newSymbolTable() - .onFile(new TestInputFileBuilder("foo", "src/Foo.java").initMetadata("annot dsf fds foo bar").build()); - symbolTable - .newSymbol(1, 8, 1, 10); - - symbolTable.save(); - } - - @Test - public void testCoverageAtLineZero() { - assertThat(tester.lineHits("foo:src/Foo.java", 1)).isNull(); - assertThat(tester.lineHits("foo:src/Foo.java", 4)).isNull(); - - exception.expect(IllegalStateException.class); - tester.newCoverage() - .onFile(new TestInputFileBuilder("foo", "src/Foo.java").initMetadata("annot dsf fds foo bar").build()) - .lineHits(0, 3); - } - - @Test - public void testCoverageAtLineOutOfRange() { - assertThat(tester.lineHits("foo:src/Foo.java", 1)).isNull(); - assertThat(tester.lineHits("foo:src/Foo.java", 4)).isNull(); - exception.expect(IllegalStateException.class); - - tester.newCoverage() - .onFile(new TestInputFileBuilder("foo", "src/Foo.java").initMetadata("annot dsf fds foo bar").build()) - .lineHits(4, 3); - } - - @Test - public void testLineHits() { - assertThat(tester.lineHits("foo:src/Foo.java", 1)).isNull(); - assertThat(tester.lineHits("foo:src/Foo.java", 4)).isNull(); - tester.newCoverage() - .onFile(new TestInputFileBuilder("foo", "src/Foo.java").initMetadata("annot dsf fds foo bar\nasdas").build()) - .lineHits(1, 2) - .lineHits(2, 3) - .save(); - assertThat(tester.lineHits("foo:src/Foo.java", 1)).isEqualTo(2); - assertThat(tester.lineHits("foo:src/Foo.java", 2)).isEqualTo(3); - } - - public void multipleCoverage() { - tester.newCoverage() - .onFile(new TestInputFileBuilder("foo", "src/Foo.java").initMetadata("annot dsf fds foo bar\nasdas").build()) - .lineHits(1, 2) - .conditions(3, 4, 2) - .save(); - tester.newCoverage() - .onFile(new TestInputFileBuilder("foo", "src/Foo.java").initMetadata("annot dsf fds foo bar\nasdas").build()) - .lineHits(1, 2) - .conditions(3, 4, 3) - .save(); - assertThat(tester.lineHits("foo:src/Foo.java", 1)).isEqualTo(4); - assertThat(tester.conditions("foo:src/Foo.java", 3)).isEqualTo(4); - assertThat(tester.coveredConditions("foo:src/Foo.java", 3)).isEqualTo(3); - } - - @Test - public void testConditions() { - assertThat(tester.conditions("foo:src/Foo.java", 1)).isNull(); - assertThat(tester.coveredConditions("foo:src/Foo.java", 1)).isNull(); - tester.newCoverage() - .onFile(new TestInputFileBuilder("foo", "src/Foo.java") - .initMetadata("annot dsf fds foo bar\nasd\nasdas\nasdfas") - .build()) - .conditions(1, 4, 2) - .save(); - assertThat(tester.conditions("foo:src/Foo.java", 1)).isEqualTo(4); - assertThat(tester.coveredConditions("foo:src/Foo.java", 1)).isEqualTo(2); - } - - @Test - public void testCpdTokens() { - assertThat(tester.cpdTokens("foo:src/Foo.java")).isNull(); - DefaultInputFile inputFile = new TestInputFileBuilder("foo", "src/Foo.java") - .initMetadata("public class Foo {\n\n}") - .build(); - tester.newCpdTokens() - .onFile(inputFile) - .addToken(inputFile.newRange(0, 6), "public") - .addToken(inputFile.newRange(7, 12), "class") - .addToken(inputFile.newRange(13, 16), "$IDENTIFIER") - .addToken(inputFile.newRange(17, 18), "{") - .addToken(inputFile.newRange(3, 0, 3, 1), "}") - .save(); - assertThat(tester.cpdTokens("foo:src/Foo.java")).extracting("value", "startLine", "startUnit", "endUnit") - .containsExactly( - tuple("publicclass$IDENTIFIER{", 1, 1, 4), - tuple("}", 3, 5, 5)); - } - - @Test(expected = UnsupportedOperationException.class) - public void duplicateCpdTokens() { - DefaultInputFile inputFile = new TestInputFileBuilder("foo", "src/Foo.java") - .initMetadata("public class Foo {\n\n}") - .build(); - tester.newCpdTokens() - .onFile(inputFile) - .addToken(inputFile.newRange(0, 6), "public") - .save(); - - tester.newCpdTokens() - .onFile(inputFile) - .addToken(inputFile.newRange(0, 6), "public") - .save(); - } - - @Test - public void testCancellation() { - assertThat(tester.isCancelled()).isFalse(); - tester.setCancelled(true); - assertThat(tester.isCancelled()).isTrue(); - } - - @Test - public void testContextProperties() { - assertThat(tester.getContextProperties()).isEmpty(); - - tester.addContextProperty("foo", "bar"); - assertThat(tester.getContextProperties()).containsOnly(entry("foo", "bar")); - } -} diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/util/ScannerUtilsTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/util/ScannerUtilsTest.java index f5df14fd0b3..1a1ccf2843c 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/util/ScannerUtilsTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/util/ScannerUtilsTest.java @@ -20,6 +20,7 @@ package org.sonar.scanner.util; import org.junit.Test; +import org.sonar.api.impl.utils.ScannerUtils; import static org.assertj.core.api.Assertions.assertThat; |