This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch CAMEL-23652-bean-ref-test in repository https://gitbox.apache.org/repos/asf/camel.git
commit b6a1a711bd4c9e9a589b6e0cd9cbf0618cae4250 Author: Claus Ibsen <[email protected]> AuthorDate: Sat May 30 09:07:18 2026 +0200 CAMEL-23652: Add tests for bean EIP ref with local template beans Co-Authored-By: Claude <[email protected]> --- .../apache/camel/dsl/yaml/KameletLoaderTest.groovy | 56 ++++++++++++++++++++++ .../org/apache/camel/dsl/yaml/KameletTest.groovy | 34 +++++++++++++ 2 files changed, 90 insertions(+) diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletLoaderTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletLoaderTest.groovy index b341c62d37f2..b9d4244af0bc 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletLoaderTest.groovy +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/KameletLoaderTest.groovy @@ -451,6 +451,62 @@ class KameletLoaderTest extends YamlTestSupport { } } + def "kamelet with local bean via bean ref"() { + setup: + loadKamelets ''' + apiVersion: camel.apache.org/v1 + kind: Kamelet + metadata: + name: counter-action + labels: + camel.apache.org/kamelet.type: action + spec: + definition: + title: "Counter Action" + properties: + start: + title: Start + description: The starting value for the counter + type: integer + default: 0 + template: + beans: + - name: counter + type: java.util.concurrent.atomic.AtomicInteger + constructors: + "0": "{{start}}" + from: + uri: kamelet:source + steps: + - bean: + ref: "{{counter}}" + method: getAndIncrement + - to: "kamelet:sink" + ''' + + loadRoutes """ + - from: + uri: "direct:start" + steps: + - kamelet: + name: "counter-action" + - to: "mock:result" + """ + + withMock('mock:result') { + expectedBodiesReceived '0' + } + + when: + context.start() + + withTemplate { + to('direct:start').withBody('hello').send() + } + then: + MockEndpoint.assertIsSatisfied(context) + } + def "kamelet with bean constructors"() { when: loadKamelets(''' 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 971be12b5ede..b9ef38fcb29a 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 @@ -291,6 +291,40 @@ class KameletTest extends YamlTestSupport { MockEndpoint.assertIsSatisfied(context) } + def "kamelet (definition with local bean via bean ref)"() { + setup: + loadRoutes ''' + - routeTemplate: + id: "myTemplate" + beans: + - name: "myCounter" + type: java.util.concurrent.atomic.AtomicInteger + from: + uri: "kamelet:source" + steps: + - bean: + ref: "{{myCounter}}" + method: "getAndIncrement" + - from: + uri: "direct:start" + steps: + - to: "kamelet:myTemplate" + - to: "mock:result" + ''' + + withMock('mock:result') { + expectedMessageCount 1 + expectedBodiesReceived '0' + } + when: + withTemplate { + to('direct:start').withBody('hello').send() + } + + then: + MockEndpoint.assertIsSatisfied(context) + } + def "kamelet (definition with default parameters)"() { setup: loadRoutes """
