This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit dd3103ee5792db87483c018426c8ab7ccfb1bee5 Author: James Netherton <[email protected]> AuthorDate: Tue Dec 3 11:39:58 2024 +0000 Add test for StartupCondition Fixes #6664 --- .../camel/quarkus/main/cmd/it/CommandModeTest.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/integration-tests/main-command-mode/src/test/java/org/apache/camel/quarkus/main/cmd/it/CommandModeTest.java b/integration-tests/main-command-mode/src/test/java/org/apache/camel/quarkus/main/cmd/it/CommandModeTest.java index 3cc8a2bb9d..4145cea897 100644 --- a/integration-tests/main-command-mode/src/test/java/org/apache/camel/quarkus/main/cmd/it/CommandModeTest.java +++ b/integration-tests/main-command-mode/src/test/java/org/apache/camel/quarkus/main/cmd/it/CommandModeTest.java @@ -17,6 +17,7 @@ package org.apache.camel.quarkus.main.cmd.it; import java.io.IOException; +import java.util.Map; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; @@ -91,4 +92,25 @@ public class CommandModeTest { Assertions.fail("The process should not take so long as camel.main.duration-max-seconds is set"); } } + + @Test + void startupCondition() throws Exception { + String[] jvmArgs = new String[] { + "-Dcamel.startupcondition.enabled=true", + "-Dcamel.startupcondition.environment-variable-exists=CAMEL_SPECIES", + "-Dcamel.startupcondition.timeout=100", + "-Dcamel.main.duration-max-seconds=1" + }; + + // Launch the process without the expected environment variable + ProcessResult startupConditionNotMetResult = new QuarkusProcessExecutor(jvmArgs).execute(); + assertThat(startupConditionNotMetResult.getExitValue()).isEqualTo(1); + + // Try again with the environment variable set + Map<String, String> environment = Map.of("CAMEL_SPECIES", "Dromedary"); + QuarkusProcessExecutor executor = new QuarkusProcessExecutor(customizer -> customizer.environment(environment), + jvmArgs); + ProcessResult startupConditionMetResult = executor.execute(); + assertThat(startupConditionMetResult.getExitValue()).isEqualTo(0); + } }
