diff options
author | Claire Villard <claire.villard@sonarsource.com> | 2024-04-26 15:30:23 +0200 |
---|---|---|
committer | Claire Villard <60586848+claire-villard-sonarsource@users.noreply.github.com> | 2024-04-29 01:20:25 -0600 |
commit | 773c70fc2bc829183d3915bfbcb968eff4941237 (patch) | |
tree | 3d3de9652fa233dfebf6a147a3919d39dab44cd1 /src/test/java/org/sonarsource | |
parent | 98f8be682a4f254b2a9f1ed0e51f0f2df12942f1 (diff) | |
download | sonar-scanner-cli-773c70fc2bc829183d3915bfbcb968eff4941237.tar.gz sonar-scanner-cli-773c70fc2bc829183d3915bfbcb968eff4941237.zip |
SCANCLI-130 Set sonar.scanner.bootstrapStartTime
Diffstat (limited to 'src/test/java/org/sonarsource')
-rw-r--r-- | src/test/java/org/sonarsource/scanner/cli/ConfTest.java | 51 | ||||
-rw-r--r-- | src/test/java/org/sonarsource/scanner/cli/MainTest.java | 19 |
2 files changed, 47 insertions, 23 deletions
diff --git a/src/test/java/org/sonarsource/scanner/cli/ConfTest.java b/src/test/java/org/sonarsource/scanner/cli/ConfTest.java index c78839f..5ff2441 100644 --- a/src/test/java/org/sonarsource/scanner/cli/ConfTest.java +++ b/src/test/java/org/sonarsource/scanner/cli/ConfTest.java @@ -31,11 +31,12 @@ import org.apache.commons.lang.SystemUtils; import org.junit.Before; import org.junit.Rule; import org.junit.Test; -import org.junit.rules.ExpectedException; import org.junit.rules.TemporaryFolder; import org.sonarsource.scanner.api.internal.shaded.minimaljson.Json; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatCode; +import static org.assertj.core.api.Assertions.assertThatIllegalStateException; import static org.junit.Assume.assumeTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -45,9 +46,6 @@ public class ConfTest { @Rule public TemporaryFolder temp = new TemporaryFolder(); - @Rule - public ExpectedException exception = ExpectedException.none(); - private final Map<String, String> env = new HashMap<>(); private final Properties args = new Properties(); private final Logs logs = new Logs(System.out, System.err); @@ -66,7 +64,7 @@ public class ConfTest { args.setProperty("scanner.home", home.toAbsolutePath().toString()); Properties properties = conf.properties(); - assertThat(properties.get("sonar.prop")).isEqualTo("value"); + assertThat(properties).containsEntry("sonar.prop", "value"); } @Test @@ -77,6 +75,17 @@ public class ConfTest { } @Test + public void should_set_bootstrap_time_only_once() { + Properties properties = conf.properties(); + + assertThat(properties).containsKey("sonar.scanner.bootstrapStartTime"); + String value = properties.getProperty("sonar.scanner.bootstrapStartTime"); + + assertThat(conf.properties()) + .containsEntry("sonar.scanner.bootstrapStartTime", value); + } + + @Test public void base_dir_can_be_relative() throws URISyntaxException { Path projectHome = Paths.get(getClass().getResource("ConfTest/shouldLoadModuleConfiguration/project").toURI()); args.setProperty("project.home", projectHome.getParent().toAbsolutePath().toString()); @@ -94,7 +103,7 @@ public class ConfTest { Path settings = Paths.get(getClass().getResource("ConfTest/shouldLoadRunnerSettingsByDirectPath/other-conf.properties").toURI()); args.setProperty("scanner.settings", settings.toAbsolutePath().toString()); - assertThat(conf.properties().get("sonar.prop")).isEqualTo("otherValue"); + assertThat(conf.properties()).containsEntry("sonar.prop", "otherValue"); } @Test @@ -138,9 +147,10 @@ public class ConfTest { @Test public void shouldFailWithInvalidEnvironmentProperties() { env.put("SONARQUBE_SCANNER_PARAMS", "{sonar.key1: \"v1\", \"sonar.key2\" : \"v2\"}"); - exception.expect(IllegalStateException.class); - exception.expectMessage("JSON"); - conf.properties(); + + assertThatIllegalStateException() + .isThrownBy(conf::properties) + .withMessage("Failed to parse JSON in SONARQUBE_SCANNER_PARAMS environment variable"); } @Test @@ -236,9 +246,9 @@ public class ConfTest { args.setProperty("sonar.modules", "module1"); args.setProperty("module1.sonar.projectBaseDir", "invalid"); - exception.expect(IllegalStateException.class); - exception.expectMessage("The base directory of the module 'module1' does not exist"); - conf.properties(); + assertThatIllegalStateException() + .isThrownBy(conf::properties) + .withMessageStartingWith("The base directory of the module 'module1' does not exist"); } @Test @@ -246,9 +256,9 @@ public class ConfTest { args.setProperty("sonar.modules", "module1"); args.setProperty("module1.sonar.projectConfigFile", "invalid"); - exception.expect(IllegalStateException.class); - exception.expectMessage("The properties file of the module 'module1' does not exist"); - conf.properties(); + assertThatIllegalStateException() + .isThrownBy(conf::properties) + .withMessageStartingWith("The properties file of the module 'module1' does not exist"); } @Test @@ -270,7 +280,8 @@ public class ConfTest { args.setProperty("project.home", temp.newFolder().getCanonicalPath()); args.setProperty("sonar.projectBaseDir", projectHome.toAbsolutePath().toString()); - conf.properties(); + assertThatCode(conf::properties) + .doesNotThrowAnyException(); } @Test @@ -310,12 +321,12 @@ public class ConfTest { args.setProperty("project.home", home.toAbsolutePath().toString()); Properties properties = conf.properties(); - assertThat(properties.get("sonar.prop")).isEqualTo("default"); + assertThat(properties).containsEntry("sonar.prop", "default"); args.setProperty("project.settings", home.resolve("conf/sq-project.properties").toAbsolutePath().toString()); properties = conf.properties(); - assertThat(properties.get("sonar.prop")).isEqualTo("expected"); + assertThat(properties).containsEntry("sonar.prop", "expected"); } // SQSCANNER-61 @@ -325,7 +336,7 @@ public class ConfTest { args.setProperty("project.home", home.toAbsolutePath().toString()); Properties properties = conf.properties(); - assertThat(properties.get("sonar.prop")).isEqualTo("default"); + assertThat(properties).containsEntry("sonar.prop", "default"); String jsonString = Json.object() .add("project.settings", home.resolve("conf/sq-project.properties").toAbsolutePath().toString()) @@ -334,7 +345,7 @@ public class ConfTest { env.put("SONARQUBE_SCANNER_PARAMS", jsonString); properties = conf.properties(); - assertThat(properties.get("sonar.prop")).isEqualTo("expected"); + assertThat(properties).containsEntry("sonar.prop", "expected"); } } diff --git a/src/test/java/org/sonarsource/scanner/cli/MainTest.java b/src/test/java/org/sonarsource/scanner/cli/MainTest.java index 3b5b07e..85f233c 100644 --- a/src/test/java/org/sonarsource/scanner/cli/MainTest.java +++ b/src/test/java/org/sonarsource/scanner/cli/MainTest.java @@ -300,23 +300,36 @@ public class MainTest { } @Test + public void should_set_bootstrap_start_time_in_millis() { + Properties analysisProps = execute("sonar.scanner.bootstrapStartTime", "1714137496104"); + assertThat(analysisProps.getProperty("sonar.scanner.bootstrapStartTime")).isEqualTo("1714137496104"); + } + + @Test public void should_configure_logging_debug() { Properties analysisProps = testLogging("sonar.log.level", "DEBUG"); assertThat(analysisProps.getProperty("sonar.log.level")).isEqualTo("DEBUG"); } private Properties testLogging(String propKey, String propValue) { + Properties actualProps = execute(propKey, propValue); + + // Logger used for callback should have debug enabled + verify(logs).setDebugEnabled(true); + + return actualProps; + } + + private Properties execute(String propKey, String propValue) { Properties p = new Properties(); p.put(propKey, propValue); + when(conf.properties()).thenReturn(p); when(cli.getInvokedFrom()).thenReturn(""); Main main = new Main(exit, cli, conf, scannerFactory, logs); main.execute(); - // Logger used for callback should have debug enabled - verify(logs).setDebugEnabled(true); - ArgumentCaptor<Properties> propertiesCapture = ArgumentCaptor.forClass(Properties.class); verify(scanner).execute((Map) propertiesCapture.capture()); |