diff options
Diffstat (limited to 'server/sonar-process/src/test')
-rw-r--r-- | server/sonar-process/src/test/java/org/sonar/process/command/AbstractCommandTest.java | 72 |
1 files changed, 69 insertions, 3 deletions
diff --git a/server/sonar-process/src/test/java/org/sonar/process/command/AbstractCommandTest.java b/server/sonar-process/src/test/java/org/sonar/process/command/AbstractCommandTest.java index 62f59f11a48..dec2dde6008 100644 --- a/server/sonar-process/src/test/java/org/sonar/process/command/AbstractCommandTest.java +++ b/server/sonar-process/src/test/java/org/sonar/process/command/AbstractCommandTest.java @@ -21,14 +21,23 @@ package org.sonar.process.command; import java.io.File; import java.io.IOException; +import java.util.HashMap; +import java.util.Map; import java.util.Properties; +import java.util.Random; +import java.util.stream.Collectors; +import java.util.stream.IntStream; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.rules.TemporaryFolder; +import org.mockito.Mockito; import org.sonar.process.ProcessId; +import org.sonar.process.System2; +import static org.apache.commons.lang.RandomStringUtils.randomAlphanumeric; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.when; public class AbstractCommandTest { @@ -42,7 +51,7 @@ public class AbstractCommandTest { expectedException.expect(NullPointerException.class); expectedException.expectMessage("ProcessId can't be null"); - new AbstractCommand<AbstractCommand>(null, temp.newFolder()) { + new AbstractCommand<AbstractCommand>(null, temp.newFolder(), System2.INSTANCE) { }; } @@ -52,7 +61,7 @@ public class AbstractCommandTest { expectedException.expect(NullPointerException.class); expectedException.expectMessage("workDir can't be null"); - new AbstractCommand<AbstractCommand>(ProcessId.WEB_SERVER, null) { + new AbstractCommand<AbstractCommand>(ProcessId.WEB_SERVER, null, System2.INSTANCE) { }; } @@ -60,7 +69,7 @@ public class AbstractCommandTest { @Test public void test_command_with_complete_information() throws Exception { File workDir = temp.newFolder(); - AbstractCommand command = new AbstractCommand(ProcessId.ELASTICSEARCH, workDir) { + AbstractCommand command = new AbstractCommand(ProcessId.ELASTICSEARCH, workDir, System2.INSTANCE) { }; @@ -79,4 +88,61 @@ public class AbstractCommandTest { assertThat(command.getEnvVariables().size()).isEqualTo(System.getenv().size() + 1); } + @Test + public void setEnvVariable_fails_with_NPE_if_key_is_null() throws IOException { + File workDir = temp.newFolder(); + AbstractCommand underTest = new AbstractCommand(ProcessId.ELASTICSEARCH, workDir, System2.INSTANCE) { + + }; + + expectedException.expect(NullPointerException.class); + expectedException.expectMessage("key can't be null"); + + underTest.setEnvVariable(null, randomAlphanumeric(30)); + } + + @Test + public void setEnvVariable_fails_with_NPE_if_value_is_null() throws IOException { + File workDir = temp.newFolder(); + AbstractCommand underTest = new AbstractCommand(ProcessId.ELASTICSEARCH, workDir, System2.INSTANCE) { + + }; + + expectedException.expect(NullPointerException.class); + expectedException.expectMessage("value can't be null"); + + underTest.setEnvVariable(randomAlphanumeric(30), null); + } + + @Test + public void constructor_puts_System_getEnv_into_map_of_env_variables() throws IOException { + File workDir = temp.newFolder(); + System2 system2 = Mockito.mock(System2.class); + Map<String, String> env = IntStream.range(0, 1 + new Random().nextInt(99)).mapToObj(String::valueOf).collect(Collectors.toMap(i -> "key" + i, j -> "value" + j)); + when(system2.getenv()).thenReturn(env); + AbstractCommand underTest = new AbstractCommand(ProcessId.ELASTICSEARCH, workDir, system2) { + + }; + + assertThat(underTest.getEnvVariables()).isEqualTo(env); + } + + @Test + public void suppressEnvVariable_remove_existing_env_variable_and_add_variable_to_set_of_suppressed_variables() throws IOException { + File workDir = temp.newFolder(); + System2 system2 = Mockito.mock(System2.class); + Map<String, String> env = new HashMap<>(); + String key1 = randomAlphanumeric(3); + env.put(key1, randomAlphanumeric(9)); + when(system2.getenv()).thenReturn(env); + AbstractCommand underTest = new AbstractCommand(ProcessId.ELASTICSEARCH, workDir, system2) { + + }; + + underTest.suppressEnvVariable(key1); + + assertThat(underTest.getEnvVariables()).doesNotContainKey(key1); + assertThat(underTest.getSuppressedEnvVariables()).containsOnly(key1); + } + } |