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