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

davsclaus pushed a commit to branch worktree-snazzy-petting-map
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 21f00c532f8516963e9e64ba9610e45a3230e2bd
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Jul 11 10:41:01 2026 +0200

    CAMEL-23985: camel-yaml-dsl - Add more unit tests for YAML DSL bug fixes
    
    Tests added:
    - RouteConfigurationTest: note property is parsed (CAMEL-23987) and line 
number/location are set (CAMEL-23986)
    - KameletTest: note and description properties are parsed (CAMEL-23987)
    - PipeLoaderTest: unsupported ref kind throws clear error (CAMEL-23985)
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 .../org/apache/camel/dsl/yaml/KameletTest.groovy   | 39 ++++++++++++++
 .../apache/camel/dsl/yaml/PipeLoaderTest.groovy    | 31 ++++++++++++
 .../camel/dsl/yaml/RouteConfigurationTest.groovy   | 59 ++++++++++++++++++++++
 3 files changed, 129 insertions(+)

diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletTest.groovy
index 05b913beeebc..6bb97540ec6e 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletTest.groovy
@@ -21,6 +21,7 @@ import 
org.apache.camel.dsl.yaml.common.YamlDeserializationMode
 import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.dsl.yaml.support.model.MySetBody
 import org.apache.camel.dsl.yaml.support.model.MyUppercaseProcessor
+import org.apache.camel.model.KameletDefinition
 import org.apache.camel.processor.aggregate.UseLatestAggregationStrategy
 import org.apache.camel.spi.Resource
 
@@ -421,4 +422,42 @@ class KameletTest extends YamlTestSupport {
         then:
             MockEndpoint.assertIsSatisfied(context)
     }
+
+    def "kamelet (note property)"() {
+        setup:
+            addTemplate('setPayload') {
+                from('kamelet:source')
+                    .setBody().simple('${body}: {{payload}}')
+            }
+
+            loadRoutesNoValidate '''
+                - from:
+                    uri: "direct:start"
+                    steps:
+                      - kamelet:
+                          name: "setPayload"
+                          description: "calls setPayload template"
+                          note: "a developer note"
+                          parameters:
+                            payload: 1
+                      - to: "mock:kamelet"
+            '''
+
+            withMock('mock:kamelet') {
+                expectedMessageCount 1
+                expectedBodiesReceived 'a: 1'
+            }
+        when:
+            withTemplate {
+                to('direct:start').withBody('a').send()
+            }
+
+        then:
+            MockEndpoint.assertIsSatisfied(context)
+
+            with(context.routeDefinitions[0].outputs[0], KameletDefinition) {
+                description == 'calls setPayload template'
+                note == 'a developer note'
+            }
+    }
 }
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderTest.groovy
index 66af9b152ab6..5087d7c2b0b4 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderTest.groovy
@@ -20,6 +20,7 @@ import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.KameletDefinition
 import org.apache.camel.model.ToDefinition
 import org.apache.camel.model.TransformDataTypeDefinition
+import org.junit.jupiter.api.Assertions
 
 class PipeLoaderTest extends YamlTestSupport {
     @Override
@@ -823,4 +824,34 @@ class PipeLoaderTest extends YamlTestSupport {
         }
     }
 
+    def "Error: Pipe with unsupported ref kind"() {
+        when:
+        var pipe = '''
+                apiVersion: camel.apache.org/v1
+                kind: Pipe
+                metadata:
+                  name: bad-ref-pipe
+                spec:
+                  source:
+                    ref:
+                      kind: Kamelet
+                      apiVersion: camel.apache.org/v1
+                      name: timer-source
+                    properties:
+                      message: "Hello"
+                  sink:
+                    ref:
+                      kind: UnknownKind
+                      apiVersion: unknown/v1
+                      name: bad-sink
+            '''
+        then:
+        try {
+            loadBindings(pipe)
+            Assertions.fail("Should have thrown exception")
+        } catch (e) {
+            assert e.message.contains("Unsupported Pipe ref kind")
+        }
+    }
+
 }
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RouteConfigurationTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RouteConfigurationTest.groovy
index fb8ae9e65a5c..3e237f9024af 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RouteConfigurationTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RouteConfigurationTest.groovy
@@ -26,6 +26,9 @@ import org.junit.jupiter.api.Assertions
 
 import static org.apache.camel.util.PropertiesHelper.asProperties
 
+import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
+
 class RouteConfigurationTest extends YamlTestSupport {
     def "routeConfiguration"() {
         setup:
@@ -401,4 +404,60 @@ class RouteConfigurationTest extends YamlTestSupport {
         MockEndpoint.assertIsSatisfied(context)
     }
 
+    def "routeConfiguration note"() {
+        when:
+        loadRoutesNoValidate """
+                - routeConfiguration:
+                    id: myConfig
+                    description: my route config
+                    note: a developer note
+                    onException:
+                      - onException:
+                          handled:
+                            constant: "true"
+                          exception:
+                            - ${MyException.name}
+                          steps:
+                            - transform:
+                                constant: "Sorry"
+                            - to: "mock:on-exception"
+            """
+        then:
+        context.routeConfigurationDefinitions.size() == 1
+
+        with(context.routeConfigurationDefinitions[0], 
RouteConfigurationDefinition) {
+            id == 'myConfig'
+            description == 'my route config'
+            note == 'a developer note'
+        }
+    }
+
+    def "routeConfiguration has line number"() {
+        when:
+        Resource res = asResource('route-config-line',
+            '''
+                - routeConfiguration:
+                    id: myConfig
+                    onException:
+                      - onException:
+                          handled:
+                            constant: "true"
+                          exception:
+                            - java.lang.Exception
+                          steps:
+                            - to: "mock:on-exception"
+            '''
+        )
+        PluginHelper.getRoutesLoader(context).loadRoutes(res)
+
+        then:
+        context.routeConfigurationDefinitions.size() == 1
+
+        with(context.routeConfigurationDefinitions[0], 
RouteConfigurationDefinition) {
+            id == 'myConfig'
+            lineNumber >= 0
+            location != null
+        }
+    }
+
 }

Reply via email to