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 <cdeppi...@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