This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 948deff1eb9422f1804ebf0583031a271feab634
Author: Otavio Rodolfo Piske <angusyo...@gmail.com>
AuthorDate: Fri Aug 8 14:16:43 2025 +0200

    CAMEL-22326: Added tests
---
 .../camel-ai/camel-langchain4j-agent-api/pom.xml   |   7 +
 .../agent/api/AgentConfigurationTest.java          | 141 +++++++++++++++++++++
 2 files changed, 148 insertions(+)

diff --git a/components/camel-ai/camel-langchain4j-agent-api/pom.xml 
b/components/camel-ai/camel-langchain4j-agent-api/pom.xml
index b875f4dd599..1a2d4e4c18e 100644
--- a/components/camel-ai/camel-langchain4j-agent-api/pom.xml
+++ b/components/camel-ai/camel-langchain4j-agent-api/pom.xml
@@ -52,6 +52,13 @@
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-api</artifactId>
         </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git 
a/components/camel-ai/camel-langchain4j-agent-api/src/test/java/org/apache/camel/component/langchain4j/agent/api/AgentConfigurationTest.java
 
b/components/camel-ai/camel-langchain4j-agent-api/src/test/java/org/apache/camel/component/langchain4j/agent/api/AgentConfigurationTest.java
new file mode 100644
index 00000000000..86264dae307
--- /dev/null
+++ 
b/components/camel-ai/camel-langchain4j-agent-api/src/test/java/org/apache/camel/component/langchain4j/agent/api/AgentConfigurationTest.java
@@ -0,0 +1,141 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.langchain4j.agent.api;
+
+import java.util.List;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+public class AgentConfigurationTest {
+
+    @Test
+    public void testParseGuardrailClasses_WithValidClasses() {
+        // Test with built-in Java classes that should always be available
+        String classNames = 
"java.lang.String,java.util.List,java.io.Serializable";
+
+        List<Class<?>> result = 
AgentConfiguration.parseGuardrailClasses(classNames);
+
+        assertNotNull(result);
+        assertEquals(3, result.size());
+        assertTrue(result.contains(String.class));
+        assertTrue(result.contains(List.class));
+        assertTrue(result.contains(java.io.Serializable.class));
+    }
+
+    @Test
+    public void testParseGuardrailClasses_WithMixedValidAndInvalidClasses() {
+        // Mix of valid and invalid class names
+        String classNames = 
"java.lang.String,com.nonexistent.InvalidClass,java.util.List";
+
+        List<Class<?>> result = 
AgentConfiguration.parseGuardrailClasses(classNames);
+
+        assertNotNull(result);
+        assertEquals(2, result.size());
+        assertTrue(result.contains(String.class));
+        assertTrue(result.contains(List.class));
+    }
+
+    @Test
+    public void testParseGuardrailClasses_WithInvalidClasses() {
+        // Test with non-existent classes
+        String classNames = 
"com.nonexistent.InvalidClass1,com.nonexistent.InvalidClass2";
+
+        List<Class<?>> result = 
AgentConfiguration.parseGuardrailClasses(classNames);
+
+        assertNotNull(result);
+        assertTrue(result.isEmpty());
+    }
+
+    @Test
+    public void testParseGuardrailClasses_WithNullInput() {
+        List<Class<?>> result = AgentConfiguration.parseGuardrailClasses(null);
+
+        assertNotNull(result);
+        assertTrue(result.isEmpty());
+    }
+
+    @Test
+    public void testParseGuardrailClasses_WithEmptyString() {
+        List<Class<?>> result = AgentConfiguration.parseGuardrailClasses("");
+
+        assertNotNull(result);
+        assertTrue(result.isEmpty());
+    }
+
+    @Test
+    public void testParseGuardrailClasses_WithWhitespaceOnly() {
+        List<Class<?>> result = AgentConfiguration.parseGuardrailClasses("   
");
+
+        assertNotNull(result);
+        assertTrue(result.isEmpty());
+    }
+
+    @Test
+    public void testParseGuardrailClasses_WithExtraWhitespace() {
+        // Test with extra whitespace around class names
+        String classNames = " java.lang.String , java.util.List , 
java.io.Serializable ";
+
+        List<Class<?>> result = 
AgentConfiguration.parseGuardrailClasses(classNames);
+
+        assertNotNull(result);
+        assertEquals(3, result.size());
+        assertTrue(result.contains(String.class));
+        assertTrue(result.contains(List.class));
+        assertTrue(result.contains(java.io.Serializable.class));
+    }
+
+    @Test
+    public void testParseGuardrailClasses_WithEmptyClassNames() {
+        // Test with empty class names (multiple commas)
+        String classNames = 
"java.lang.String,,java.util.List,,,java.io.Serializable,";
+
+        List<Class<?>> result = 
AgentConfiguration.parseGuardrailClasses(classNames);
+
+        assertNotNull(result);
+        assertEquals(3, result.size());
+        assertTrue(result.contains(String.class));
+        assertTrue(result.contains(List.class));
+        assertTrue(result.contains(java.io.Serializable.class));
+    }
+
+    @Test
+    public void testParseGuardrailClasses_WithSingleClass() {
+        String classNames = "java.lang.String";
+
+        List<Class<?>> result = 
AgentConfiguration.parseGuardrailClasses(classNames);
+
+        assertNotNull(result);
+        assertEquals(1, result.size());
+        assertTrue(result.contains(String.class));
+    }
+
+    @Test
+    public void testParseGuardrailClasses_WithTrailingComma() {
+        String classNames = "java.lang.String,java.util.List,";
+
+        List<Class<?>> result = 
AgentConfiguration.parseGuardrailClasses(classNames);
+
+        assertNotNull(result);
+        assertEquals(2, result.size());
+        assertTrue(result.contains(String.class));
+        assertTrue(result.contains(List.class));
+    }
+}

Reply via email to