aboutsummaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/sonar/api/utils/MessageException.java2
-rw-r--r--src/test/java/org/sonarsource/scanner/cli/CliTest.java2
-rw-r--r--src/test/java/org/sonarsource/scanner/cli/ConfTest.java11
-rw-r--r--src/test/java/org/sonarsource/scanner/cli/MainTest.java56
-rw-r--r--src/test/java/org/sonarsource/scanner/cli/PropertyResolverTest.java2
-rw-r--r--src/test/java/org/sonarsource/scanner/cli/ScannerEngineBootstrapperFactoryTest.java2
-rw-r--r--src/test/java/org/sonarsource/scanner/cli/StatsTest.java2
-rw-r--r--src/test/java/org/sonarsource/scanner/cli/SystemInfoTest.java2
-rw-r--r--src/test/java/testutils/ConcurrentListAppender.java2
-rw-r--r--src/test/java/testutils/LogTester.java8
-rw-r--r--src/test/resources/org/sonarsource/scanner/cli/ConfTest/shouldHandleNonLatinChars/project/sonar-project.properties1
11 files changed, 46 insertions, 44 deletions
diff --git a/src/test/java/org/sonar/api/utils/MessageException.java b/src/test/java/org/sonar/api/utils/MessageException.java
index e388c9d..b4fcc5f 100644
--- a/src/test/java/org/sonar/api/utils/MessageException.java
+++ b/src/test/java/org/sonar/api/utils/MessageException.java
@@ -1,6 +1,6 @@
/*
* SonarScanner CLI
- * Copyright (C) 2011-2024 SonarSource SA
+ * Copyright (C) 2011-2025 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
diff --git a/src/test/java/org/sonarsource/scanner/cli/CliTest.java b/src/test/java/org/sonarsource/scanner/cli/CliTest.java
index 5cb05d8..dcf84d7 100644
--- a/src/test/java/org/sonarsource/scanner/cli/CliTest.java
+++ b/src/test/java/org/sonarsource/scanner/cli/CliTest.java
@@ -1,6 +1,6 @@
/*
* SonarScanner CLI
- * Copyright (C) 2011-2024 SonarSource SA
+ * Copyright (C) 2011-2025 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
diff --git a/src/test/java/org/sonarsource/scanner/cli/ConfTest.java b/src/test/java/org/sonarsource/scanner/cli/ConfTest.java
index 82bd955..0c737b5 100644
--- a/src/test/java/org/sonarsource/scanner/cli/ConfTest.java
+++ b/src/test/java/org/sonarsource/scanner/cli/ConfTest.java
@@ -1,6 +1,6 @@
/*
* SonarScanner CLI
- * Copyright (C) 2011-2024 SonarSource SA
+ * Copyright (C) 2011-2025 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
@@ -289,4 +289,13 @@ class ConfTest {
assertThat(properties).containsEntry("sonar.prop", "expected");
}
+ @Test
+ void should_handle_non_latin_characters() throws Exception {
+ Path home = Paths.get(getClass().getResource("ConfTest/shouldHandleNonLatinChars/project").toURI());
+ args.setProperty("project.home", home.toAbsolutePath().toString());
+
+ Properties properties = conf.properties();
+ assertThat(properties).containsEntry("project.nonlatin", "Non Latin ÇŞĞIİÖÜ");
+ }
+
}
diff --git a/src/test/java/org/sonarsource/scanner/cli/MainTest.java b/src/test/java/org/sonarsource/scanner/cli/MainTest.java
index 48b2ed3..7186558 100644
--- a/src/test/java/org/sonarsource/scanner/cli/MainTest.java
+++ b/src/test/java/org/sonarsource/scanner/cli/MainTest.java
@@ -1,6 +1,6 @@
/*
* SonarScanner CLI
- * Copyright (C) 2011-2024 SonarSource SA
+ * Copyright (C) 2011-2025 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
@@ -30,6 +30,7 @@ import org.mockito.Mockito;
import org.slf4j.LoggerFactory;
import org.slf4j.event.Level;
import org.sonar.api.utils.MessageException;
+import org.sonarsource.scanner.lib.ScannerEngineBootstrapResult;
import org.sonarsource.scanner.lib.ScannerEngineBootstrapper;
import org.sonarsource.scanner.lib.ScannerEngineFacade;
import org.sonarsource.scanner.lib.ScannerProperties;
@@ -56,11 +57,14 @@ class MainTest {
private final ScannerEngineBootstrapperFactory scannerEngineBootstrapperFactory = mock();
private final ScannerEngineBootstrapper bootstrapper = mock();
private final ScannerEngineFacade engine = mock();
+ private final ScannerEngineBootstrapResult result = mock();
@BeforeEach
void setUp() {
when(scannerEngineBootstrapperFactory.create(any(Properties.class), any(String.class))).thenReturn(bootstrapper);
- when(bootstrapper.bootstrap()).thenReturn(engine);
+ when(result.isSuccessful()).thenReturn(true);
+ when(result.getEngineFacade()).thenReturn(engine);
+ when(bootstrapper.bootstrap()).thenReturn(result);
when(engine.analyze(any())).thenReturn(true);
when(conf.properties()).thenReturn(properties);
}
@@ -79,7 +83,7 @@ class MainTest {
}
@Test
- void should_exit_with_error_on_error_during_analysis() {
+ void should_exit_with_error_on_exception_during_analysis() {
Exception e = new NullPointerException("NPE");
e = new IllegalStateException("Error", e);
doThrow(e).when(engine).analyze(any());
@@ -94,9 +98,7 @@ class MainTest {
@Test
void should_exit_with_error_on_error_during_bootstrap() {
- Exception e = new NullPointerException("NPE");
- e = new IllegalStateException("Error", e);
- doThrow(e).when(bootstrapper).bootstrap();
+ when(result.isSuccessful()).thenReturn(false);
when(cli.getInvokedFrom()).thenReturn("");
when(cli.isDebugEnabled()).thenReturn(true);
@@ -106,7 +108,21 @@ class MainTest {
verify(bootstrapper).bootstrap();
verify(engine, never()).analyze(any());
verify(exit).exit(Exit.INTERNAL_ERROR);
- assertThat(logTester.logs(Level.ERROR)).contains("Error during SonarScanner CLI execution");
+ assertThat(logTester.logs(Level.INFO)).contains("EXECUTION FAILURE");
+ }
+
+ @Test
+ void should_exit_with_error_on_error_during_analysis() {
+ when(engine.analyze(any())).thenReturn(false);
+ when(cli.getInvokedFrom()).thenReturn("");
+ when(cli.isDebugEnabled()).thenReturn(true);
+
+ Main main = new Main(exit, cli, conf, scannerEngineBootstrapperFactory);
+ main.analyze();
+
+ verify(bootstrapper).bootstrap();
+ verify(exit).exit(Exit.SCANNER_ENGINE_ERROR);
+ assertThat(logTester.logs(Level.INFO)).contains("EXECUTION FAILURE");
}
@Test
@@ -227,32 +243,6 @@ class MainTest {
}
@Test
- void shouldLogServerVersion() {
- when(engine.isSonarCloud()).thenReturn(false);
- when(engine.getServerVersion()).thenReturn("5.5");
- Properties p = new Properties();
- when(cli.isDisplayVersionOnly()).thenReturn(true);
- when(cli.getInvokedFrom()).thenReturn("");
- when(conf.properties()).thenReturn(p);
-
- Main main = new Main(exit, cli, conf, scannerEngineBootstrapperFactory);
- main.analyze();
- assertThat(logTester.logs(Level.INFO)).contains("Communicating with SonarQube Server 5.5");
- }
-
- @Test
- void should_log_SonarCloud_server() {
- when(engine.isSonarCloud()).thenReturn(true);
- Properties p = new Properties();
- when(conf.properties()).thenReturn(p);
- when(cli.getInvokedFrom()).thenReturn("");
-
- Main main = new Main(exit, cli, conf, scannerEngineBootstrapperFactory);
- main.analyze();
- assertThat(logTester.logs(Level.INFO)).contains("Communicating with SonarCloud");
- }
-
- @Test
void should_configure_logging() {
Properties analysisProps = testLogging("sonar.verbose", "true");
assertThat(analysisProps.getProperty("sonar.verbose")).isEqualTo("true");
diff --git a/src/test/java/org/sonarsource/scanner/cli/PropertyResolverTest.java b/src/test/java/org/sonarsource/scanner/cli/PropertyResolverTest.java
index a22f9f6..f5c2792 100644
--- a/src/test/java/org/sonarsource/scanner/cli/PropertyResolverTest.java
+++ b/src/test/java/org/sonarsource/scanner/cli/PropertyResolverTest.java
@@ -1,6 +1,6 @@
/*
* SonarScanner CLI
- * Copyright (C) 2011-2024 SonarSource SA
+ * Copyright (C) 2011-2025 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
diff --git a/src/test/java/org/sonarsource/scanner/cli/ScannerEngineBootstrapperFactoryTest.java b/src/test/java/org/sonarsource/scanner/cli/ScannerEngineBootstrapperFactoryTest.java
index c25ddb1..f1842ae 100644
--- a/src/test/java/org/sonarsource/scanner/cli/ScannerEngineBootstrapperFactoryTest.java
+++ b/src/test/java/org/sonarsource/scanner/cli/ScannerEngineBootstrapperFactoryTest.java
@@ -1,6 +1,6 @@
/*
* SonarScanner CLI
- * Copyright (C) 2011-2024 SonarSource SA
+ * Copyright (C) 2011-2025 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
diff --git a/src/test/java/org/sonarsource/scanner/cli/StatsTest.java b/src/test/java/org/sonarsource/scanner/cli/StatsTest.java
index 174acbc..fa888a6 100644
--- a/src/test/java/org/sonarsource/scanner/cli/StatsTest.java
+++ b/src/test/java/org/sonarsource/scanner/cli/StatsTest.java
@@ -1,6 +1,6 @@
/*
* SonarScanner CLI
- * Copyright (C) 2011-2024 SonarSource SA
+ * Copyright (C) 2011-2025 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
diff --git a/src/test/java/org/sonarsource/scanner/cli/SystemInfoTest.java b/src/test/java/org/sonarsource/scanner/cli/SystemInfoTest.java
index b372d9c..da00b00 100644
--- a/src/test/java/org/sonarsource/scanner/cli/SystemInfoTest.java
+++ b/src/test/java/org/sonarsource/scanner/cli/SystemInfoTest.java
@@ -1,6 +1,6 @@
/*
* SonarScanner CLI
- * Copyright (C) 2011-2024 SonarSource SA
+ * Copyright (C) 2011-2025 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
diff --git a/src/test/java/testutils/ConcurrentListAppender.java b/src/test/java/testutils/ConcurrentListAppender.java
index b31e34e..f8b9ed0 100644
--- a/src/test/java/testutils/ConcurrentListAppender.java
+++ b/src/test/java/testutils/ConcurrentListAppender.java
@@ -1,6 +1,6 @@
/*
* SonarScanner CLI
- * Copyright (C) 2011-2024 SonarSource SA
+ * Copyright (C) 2011-2025 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
diff --git a/src/test/java/testutils/LogTester.java b/src/test/java/testutils/LogTester.java
index 1708479..8a9d0f0 100644
--- a/src/test/java/testutils/LogTester.java
+++ b/src/test/java/testutils/LogTester.java
@@ -1,6 +1,6 @@
/*
* SonarScanner CLI
- * Copyright (C) 2011-2024 SonarSource SA
+ * Copyright (C) 2011-2025 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
@@ -28,6 +28,8 @@ import org.junit.jupiter.api.extension.ExtensionContext;
import org.slf4j.LoggerFactory;
import org.slf4j.event.Level;
+import static java.util.stream.Collectors.*;
+
public class LogTester implements BeforeEachCallback, AfterEachCallback {
private final ConcurrentListAppender<ILoggingEvent> listAppender = new ConcurrentListAppender<>();
@@ -55,7 +57,7 @@ public class LogTester implements BeforeEachCallback, AfterEachCallback {
public List<String> logs() {
return listAppender.list.stream().map(e -> (LoggingEvent) e)
.map(LoggingEvent::getFormattedMessage)
- .toList();
+ .collect(toList());
}
/**
@@ -66,7 +68,7 @@ public class LogTester implements BeforeEachCallback, AfterEachCallback {
return listAppender.list.stream().map(e -> (LoggingEvent) e)
.filter(e -> e.getLevel().equals(ch.qos.logback.classic.Level.fromLocationAwareLoggerInteger(level.toInt())))
.map(LoggingEvent::getFormattedMessage)
- .toList();
+ .collect(toList());
}
public LogTester clear() {
diff --git a/src/test/resources/org/sonarsource/scanner/cli/ConfTest/shouldHandleNonLatinChars/project/sonar-project.properties b/src/test/resources/org/sonarsource/scanner/cli/ConfTest/shouldHandleNonLatinChars/project/sonar-project.properties
new file mode 100644
index 0000000..24ced59
--- /dev/null
+++ b/src/test/resources/org/sonarsource/scanner/cli/ConfTest/shouldHandleNonLatinChars/project/sonar-project.properties
@@ -0,0 +1 @@
+project.nonlatin=Non Latin ÇŞĞIİÖÜ