|
32 | 32 | import org.apache.maven.plugin.MojoExecutionException;
|
33 | 33 | import org.apache.maven.plugin.logging.Log;
|
34 | 34 | import org.apache.maven.project.MavenProject;
|
35 |
| - |
| 35 | +import org.junit.jupiter.api.AfterEach; |
36 | 36 | import org.junit.jupiter.api.BeforeEach;
|
| 37 | +import org.junit.jupiter.api.Nested; |
37 | 38 | import org.junit.jupiter.api.Test;
|
38 | 39 | import org.junit.jupiter.api.io.TempDir;
|
| 40 | +import org.mockito.InOrder; |
39 | 41 | import org.mockito.Mock;
|
40 | 42 | import org.mockito.MockedStatic;
|
41 | 43 | import org.mockito.Mockito;
|
|
48 | 50 | import static org.junit.Assert.assertThrows;
|
49 | 51 | import static org.mockito.ArgumentMatchers.any;
|
50 | 52 | import static org.mockito.ArgumentMatchers.anyString;
|
| 53 | +import static org.mockito.ArgumentMatchers.contains; |
| 54 | +import static org.mockito.Mockito.inOrder; |
51 | 55 | import static org.mockito.Mockito.mock;
|
| 56 | +import static org.mockito.Mockito.mockStatic; |
52 | 57 | import static org.mockito.Mockito.never;
|
53 | 58 | import static org.mockito.Mockito.times;
|
54 | 59 | import static org.mockito.Mockito.verify;
|
@@ -273,6 +278,49 @@ void test_not_logging_the_version_when_sonarcloud_is_used() throws MojoExecution
|
273 | 278 | verify(log, never()).info("Communicating with SonarQube Server 8.0");
|
274 | 279 | }
|
275 | 280 |
|
| 281 | + @Nested |
| 282 | + class EnvironmentInformation { |
| 283 | + MockedStatic<SystemWrapper> mockedSystem; |
| 284 | + |
| 285 | + @BeforeEach |
| 286 | + void before() { |
| 287 | + when(scanner.serverVersion()).thenReturn("9.9"); |
| 288 | + mockedSystem = mockStatic(SystemWrapper.class); |
| 289 | + } |
| 290 | + |
| 291 | + @AfterEach |
| 292 | + void after() { |
| 293 | + mockedSystem.close(); |
| 294 | + } |
| 295 | + |
| 296 | + @Test |
| 297 | + void environment_information_is_logged_at_info_level() throws MojoExecutionException { |
| 298 | + mockedSystem.when(() -> SystemWrapper.getProperty("os.name")).thenReturn("Solaris"); |
| 299 | + mockedSystem.when(() -> SystemWrapper.getProperty("os.version")).thenReturn("42.1"); |
| 300 | + mockedSystem.when(() -> SystemWrapper.getProperty("os.arch")).thenReturn("x16"); |
| 301 | + |
| 302 | + mockedSystem.when(() -> SystemWrapper.getProperty("java.vm.vendor")).thenReturn("Artisanal Distribution"); |
| 303 | + mockedSystem.when(() -> SystemWrapper.getProperty("java.version")).thenReturn("4.2.0"); |
| 304 | + mockedSystem.when(() -> SystemWrapper.getProperty("sun.arch.data.model")).thenReturn("16"); |
| 305 | + |
| 306 | + mockedSystem.when(() -> SystemWrapper.getenv("MAVEN_OPTS")).thenReturn("-XX:NotAnActualOption=42"); |
| 307 | + |
| 308 | + scannerBootstrapper.execute(); |
| 309 | + InOrder inOrderVerifier = inOrder(log); |
| 310 | + |
| 311 | + inOrderVerifier.verify(log, times(1)).info("Java 4.2.0 Artisanal Distribution (16-bit)"); |
| 312 | + inOrderVerifier.verify(log, times(1)).info("Solaris 42.1 (x16)"); |
| 313 | + inOrderVerifier.verify(log, times(1)).info("MAVEN_OPTS=-XX:NotAnActualOption=42"); |
| 314 | + } |
| 315 | + |
| 316 | + @Test |
| 317 | + void maven_opts_is_not_logged_at_info_level_when_not_absent_from_environment_variables() throws MojoExecutionException { |
| 318 | + mockedSystem.when(() -> SystemWrapper.getenv("MAVEN_OPTS")).thenReturn(null); |
| 319 | + scannerBootstrapper.execute(); |
| 320 | + verify(log, never()).info(contains("MAVEN_OPTS=")); |
| 321 | + } |
| 322 | + } |
| 323 | + |
276 | 324 | private void verifyCommonCalls() {
|
277 | 325 | verify(scanner).start();
|
278 | 326 | verify(scanner).serverVersion();
|
|
0 commit comments