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