You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2022/12/02 08:08:45 UTC

[camel-kamelets] 13/28: Enhance YAKS tests with AWS S3 data type test

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

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

commit c230f2ad90f180daa3128ad8aa5ac715f36e0e4b
Author: Christoph Deppisch <cd...@redhat.com>
AuthorDate: Mon Nov 21 16:33:00 2022 +0100

    Enhance YAKS tests with AWS S3 data type test
---
 test/aws-s3/README.md                              |  2 +-
 test/aws-s3/aws-s3-data-type.feature               | 48 ++++++++++++++++++++++
 ...ding.feature => aws-s3-knative-binding.feature} | 28 ++++++-------
 ...aws-s3-to-inmem.yaml => aws-s3-to-knative.yaml} | 16 ++++++--
 test/aws-s3/aws-s3-uri-binding.yaml                |  1 -
 test/aws-s3/yaks-config.yaml                       |  9 +++-
 .../{inmem-to-log.yaml => knative-to-log.yaml}     | 17 +++++---
 7 files changed, 93 insertions(+), 28 deletions(-)

diff --git a/test/aws-s3/README.md b/test/aws-s3/README.md
index 6e7d7315..e71f403f 100644
--- a/test/aws-s3/README.md
+++ b/test/aws-s3/README.md
@@ -70,7 +70,7 @@ $ yaks test aws-s3-uri-binding.feature
 To run tests with binding to Knative channel:
 
 ```shell script
-$ yaks test aws-s3-inmem-binding.feature
+$ yaks test aws-s3-knative-binding.feature
 ```
 
 You will be provided with the test log output and the test results.
diff --git a/test/aws-s3/aws-s3-data-type.feature b/test/aws-s3/aws-s3-data-type.feature
new file mode 100644
index 00000000..3ec04bde
--- /dev/null
+++ b/test/aws-s3/aws-s3-data-type.feature
@@ -0,0 +1,48 @@
+Feature: AWS S3 Kamelet - output data type
+
+  Background:
+    Given Knative event consumer timeout is 20000 ms
+    Given Camel K resource polling configuration
+      | maxAttempts          | 200   |
+      | delayBetweenAttempts | 4000  |
+    Given variables
+      | aws.s3.output | cloudevents |
+      | aws.s3.bucketNameOrArn | mybucket |
+      | aws.s3.message | Hello from S3 Kamelet |
+      | aws.s3.key | hello.txt |
+
+  Scenario: Start LocalStack container
+    Given Enable service S3
+    Given start LocalStack container
+    And log 'Started LocalStack container: ${YAKS_TESTCONTAINERS_LOCALSTACK_CONTAINER_NAME}'
+
+  Scenario: Create AWS-S3 client
+    Given New global Camel context
+    Given load to Camel registry amazonS3Client.groovy
+
+  Scenario: Create AWS-S3 Kamelet to Knative binding
+    Given variable loginfo is "Installed features"
+    When load KameletBinding aws-s3-to-knative.yaml
+    And KameletBinding aws-s3-to-knative is available
+    And Camel K integration aws-s3-to-knative is running
+    Then Camel K integration aws-s3-to-knative should print ${loginfo}
+
+  Scenario: Verify Kamelet source
+    Given create Knative event consumer service event-consumer-service
+    Given create Knative trigger event-service-trigger on service event-consumer-service with filter on attributes
+      | type   | org.apache.camel.event |
+    Given Camel exchange message header CamelAwsS3Key="${aws.s3.key}"
+    Given send Camel exchange to("aws2-s3://${aws.s3.bucketNameOrArn}?amazonS3Client=#amazonS3Client") with body: ${aws.s3.message}
+    Then expect Knative event data: ${aws.s3.message}
+    And verify Knative event
+      | type            | org.apache.camel.event |
+      | source          | @ignore@ |
+      | subject         | @ignore@ |
+      | id              | @ignore@ |
+
+  Scenario: Remove Camel K resources
+    Given delete KameletBinding aws-s3-to-knative
+    Given delete Kubernetes service event-consumer-service
+
+  Scenario: Stop container
+    Given stop LocalStack container
diff --git a/test/aws-s3/aws-s3-inmem-binding.feature b/test/aws-s3/aws-s3-knative-binding.feature
similarity index 58%
rename from test/aws-s3/aws-s3-inmem-binding.feature
rename to test/aws-s3/aws-s3-knative-binding.feature
index d67e7798..c143bbee 100644
--- a/test/aws-s3/aws-s3-inmem-binding.feature
+++ b/test/aws-s3/aws-s3-knative-binding.feature
@@ -1,5 +1,5 @@
 @knative
-Feature: AWS S3 Kamelet - binding to InMemoryChannel
+Feature: AWS S3 Kamelet - binding to Knative
 
   Background:
     Given Kamelet aws-s3-source is available
@@ -17,33 +17,31 @@ Feature: AWS S3 Kamelet - binding to InMemoryChannel
     Given New global Camel context
     Given load to Camel registry amazonS3Client.groovy
 
-  Scenario: Create Knative broker and channel
+  Scenario: Create Knative broker
     Given create Knative broker default
     And Knative broker default is running
-    Given create Knative channel messages
 
   Scenario: Create AWS-S3 Kamelet to InMemoryChannel binding
     Given variable loginfo is "Installed features"
-    Given load KameletBinding aws-s3-to-inmem.yaml
-    Given load KameletBinding inmem-to-log.yaml
-    Then KameletBinding aws-s3-to-inmem should be available
-    And KameletBinding inmem-to-log should be available
-    And Camel K integration aws-s3-to-inmem is running
-    And Camel K integration inmem-to-log is running
-    And Camel K integration aws-s3-to-inmem should print ${loginfo}
-    And Camel K integration inmem-to-log should print ${loginfo}
+    Given load KameletBinding aws-s3-to-knative.yaml
+    Given load KameletBinding knative-to-log.yaml
+    Then KameletBinding aws-s3-to-knative should be available
+    And KameletBinding knative-to-log should be available
+    And Camel K integration aws-s3-to-knative is running
+    And Camel K integration knative-to-log is running
+    And Camel K integration aws-s3-to-knative should print ${loginfo}
+    And Camel K integration knative-to-log should print ${loginfo}
     Then sleep 10000 ms
 
   Scenario: Verify Kamelet source
     Given Camel exchange message header CamelAwsS3Key="${aws.s3.key}"
     Given send Camel exchange to("aws2-s3://${aws.s3.bucketNameOrArn}?amazonS3Client=#amazonS3Client") with body: ${aws.s3.message}
-    Then Camel K integration inmem-to-log should print ${aws.s3.message}
+    Then Camel K integration knative-to-log should print ${aws.s3.message}
 
   Scenario: Remove resources
-    Given delete KameletBinding aws-s3-to-inmem
-    Given delete KameletBinding inmem-to-log
+    Given delete KameletBinding aws-s3-to-knative
+    Given delete KameletBinding knative-to-log
     Given delete Knative broker default
-    Given delete Knative channel messages
 
   Scenario: Stop container
     Given stop LocalStack container
diff --git a/test/aws-s3/aws-s3-to-inmem.yaml b/test/aws-s3/aws-s3-to-knative.yaml
similarity index 83%
rename from test/aws-s3/aws-s3-to-inmem.yaml
rename to test/aws-s3/aws-s3-to-knative.yaml
index ce880028..e99ee20f 100644
--- a/test/aws-s3/aws-s3-to-inmem.yaml
+++ b/test/aws-s3/aws-s3-to-knative.yaml
@@ -18,7 +18,7 @@
 apiVersion: camel.apache.org/v1alpha1
 kind: KameletBinding
 metadata:
-  name: aws-s3-to-inmem
+  name: aws-s3-to-knative
 spec:
   source:
     ref:
@@ -28,12 +28,20 @@ spec:
     properties:
       bucketNameOrArn: ${aws.s3.bucketNameOrArn}
       overrideEndpoint: true
+      outputFormat: ${aws.s3.output}
       uriEndpointOverride: ${YAKS_TESTCONTAINERS_LOCALSTACK_S3_URL}
       accessKey: ${YAKS_TESTCONTAINERS_LOCALSTACK_ACCESS_KEY}
       secretKey: ${YAKS_TESTCONTAINERS_LOCALSTACK_SECRET_KEY}
       region: ${YAKS_TESTCONTAINERS_LOCALSTACK_REGION}
+  steps:
+    - ref:
+        kind: Kamelet
+        apiVersion: camel.apache.org/v1alpha1
+        name: log-sink
+      properties:
+        showHeaders: true
   sink:
     ref:
-      kind: InMemoryChannel
-      apiVersion: messaging.knative.dev/v1
-      name: messages
+      kind: Broker
+      apiVersion: eventing.knative.dev/v1
+      name: default
diff --git a/test/aws-s3/aws-s3-uri-binding.yaml b/test/aws-s3/aws-s3-uri-binding.yaml
index e21d54f4..b3612219 100644
--- a/test/aws-s3/aws-s3-uri-binding.yaml
+++ b/test/aws-s3/aws-s3-uri-binding.yaml
@@ -28,7 +28,6 @@ spec:
     properties:
       bucketNameOrArn: ${aws.s3.bucketNameOrArn}
       overrideEndpoint: true
-      outputFormat: cloudevents
       uriEndpointOverride: ${YAKS_TESTCONTAINERS_LOCALSTACK_S3_URL}
       accessKey: ${YAKS_TESTCONTAINERS_LOCALSTACK_ACCESS_KEY}
       secretKey: ${YAKS_TESTCONTAINERS_LOCALSTACK_SECRET_KEY}
diff --git a/test/aws-s3/yaks-config.yaml b/test/aws-s3/yaks-config.yaml
index f36d136c..0d70ba75 100644
--- a/test/aws-s3/yaks-config.yaml
+++ b/test/aws-s3/yaks-config.yaml
@@ -42,12 +42,17 @@ config:
       - aws-s3-to-log-uri-based.groovy
       - aws-s3-to-log-secret-based.groovy
       - aws-s3-uri-binding.yaml
-      - aws-s3-to-inmem.yaml
-      - ../utils/inmem-to-log.yaml
+      - aws-s3-to-knative.yaml
+      - ../utils/knative-to-log.yaml
     cucumber:
       tags:
         - "not @ignored"
     settings:
+      loggers:
+        - name: Logger.Message_IN
+          level: DEBUG
+        - name: Logger.Message_OUT
+          level: DEBUG
       dependencies:
         - groupId: com.amazonaws
           artifactId: aws-java-sdk-kinesis
diff --git a/test/utils/inmem-to-log.yaml b/test/utils/knative-to-log.yaml
similarity index 78%
rename from test/utils/inmem-to-log.yaml
rename to test/utils/knative-to-log.yaml
index 8b5dc51e..c03e6de2 100644
--- a/test/utils/inmem-to-log.yaml
+++ b/test/utils/knative-to-log.yaml
@@ -18,12 +18,19 @@
 apiVersion: camel.apache.org/v1alpha1
 kind: KameletBinding
 metadata:
-  name: inmem-to-log
+  name: knative-to-log
 spec:
   source:
     ref:
-      kind: InMemoryChannel
-      apiVersion: messaging.knative.dev/v1
-      name: messages
+      kind: Broker
+      apiVersion: eventing.knative.dev/v1
+      name: default
+    properties:
+      type: org.apache.camel.event
   sink:
-    uri: log:info
+    ref:
+      kind: Kamelet
+      apiVersion: camel.apache.org/v1alpha1
+      name: log-sink
+    properties:
+      showHeaders: true