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);
+    }
 }

Reply via email to