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

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


The following commit(s) were added to refs/heads/main by this push:
     new 31a3851  yaml-dsl: add tests for kamelet eip and flow mode
31a3851 is described below

commit 31a38516b364b4461b3c3d3717650dc72cea6162
Author: Luca Burgazzoli <[email protected]>
AuthorDate: Wed Jun 9 09:24:41 2021 +0200

    yaml-dsl: add tests for kamelet eip and flow mode
---
 .../apache/camel/dsl/yaml/KameletLoaderTest.groovy | 53 ++++++++++++++++++++++
 .../org/apache/camel/dsl/yaml/KameletTest.groovy   | 36 +++++++++++++++
 2 files changed, 89 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 412bf01..d5fed52 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
@@ -17,6 +17,7 @@
 package org.apache.camel.dsl.yaml
 
 import org.apache.camel.component.mock.MockEndpoint
+import org.apache.camel.dsl.yaml.common.YamlDeserializationMode
 import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.RouteTemplateDefinition
 import org.apache.camel.model.ToDefinition
@@ -257,4 +258,56 @@ class KameletLoaderTest extends YamlTestSupport {
 
             MockEndpoint.assertIsSatisfied(context)
     }
+
+    def "kamelet with filter and flow"() {
+        setup:
+            setFlowMode(YamlDeserializationMode.FLOW)
+
+            loadKamelets '''
+                apiVersion: camel.apache.org/v1alpha1
+                kind: Kamelet
+                metadata:
+                  name: filter-action
+                spec:
+                  definition:
+                    title: "Filter"
+                    description: "Filter based on the body"
+                  flow:
+                    from:
+                      uri: kamelet:source
+                      steps:
+                      - filter:
+                          simple: '${header.process}'
+                      - to: 
+                          uri: "kamelet:sink"    
+            '''
+
+            loadRoutes '''
+                - from:
+                    uri: "direct:start"
+                    steps:
+                      - kamelet:
+                          name: "filter-action"
+                      - to: 
+                          uri: "mock:result"
+            '''
+
+            withMock('mock:result') {
+                expectedBodiesReceived 2, 4
+            }
+
+        when:
+            context.start()
+
+            withTemplate {
+                (1..4).each {
+                    to('direct:start')
+                        .withBody(it)
+                        .withHeader('process',  it % 2 == 0)
+                        .send()
+                }
+            }
+        then:
+            MockEndpoint.assertIsSatisfied(context)
+    }
 }
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 30da3ac..f4bfbb4 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
@@ -178,6 +178,42 @@ class KameletTest extends YamlTestSupport {
             MockEndpoint.assertIsSatisfied(context)
     }
 
+
+    def "kamelet (filter with flow)"() {
+        setup:
+            setFlowMode(YamlDeserializationMode.FLOW)
+
+            addTemplate('simple-filter') {
+                from('kamelet:source')
+                    .filter().simple('${header.foo} == "a"')
+                    .to("kamelet:sink")
+            }
+
+            loadRoutes '''
+                - from:
+                    uri: "direct:route"
+                    steps:
+                      - kamelet: 
+                          name: "simple-filter"
+                      - to: 
+                          uri: "mock:result"
+            '''
+
+            withMock('mock:result') {
+                expectedBodiesReceived '1', '3'
+            }
+
+        when:
+            withTemplate {
+                to('direct:route').withBody('1').withHeader('foo', 'a').send()
+                to('direct:route').withBody('2').withHeader('foo', 'b').send()
+                to('direct:route').withBody('3').withHeader('foo', 'a').send()
+                to('direct:route').withBody('4').withHeader('foo', 'c').send()
+            }
+        then:
+            MockEndpoint.assertIsSatisfied(context)
+    }
+
     def "kamelet (aggregation with flow)"() {
         setup:
             setFlowMode(YamlDeserializationMode.FLOW)

Reply via email to