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


The following commit(s) were added to refs/heads/main by this push:
     new 60434215 chore(e2e): Add Jira add comment Kamelet tests (#2050)
60434215 is described below

commit 604342153316e72228087d7f8f12d731f5eae737
Author: Christoph Deppisch <cdeppi...@redhat.com>
AuthorDate: Mon May 20 07:02:50 2024 +0200

    chore(e2e): Add Jira add comment Kamelet tests (#2050)
    
    * chore(e2e): Add Jira add comment Kamelet tests
    
    * chore(e2e): Use Apache Camel 4.6.0 in tests
---
 .../test/resources/citrus-application.properties   |   4 +-
 .../resources/jira/jira-add-comment-sink-pipe.yaml |  53 +++++++
 .../resources/jira/jira-add-comment-sink.feature   | 153 +++++++++++++++++++++
 .../src/test/resources/jira/yaks-config.yaml       |   1 +
 4 files changed, 209 insertions(+), 2 deletions(-)

diff --git 
a/tests/camel-kamelets-itest/src/test/resources/citrus-application.properties 
b/tests/camel-kamelets-itest/src/test/resources/citrus-application.properties
index 5f768fab..33462117 100644
--- 
a/tests/camel-kamelets-itest/src/test/resources/citrus-application.properties
+++ 
b/tests/camel-kamelets-itest/src/test/resources/citrus-application.properties
@@ -8,8 +8,8 @@ citrus.type.converter=camel
 yaks.cluster.type=local
 yaks.camelk.max.attempts=10
 
-yaks.jbang.camel.version=4.5.0
-yaks.jbang.kamelets.version=4.6.0-SNAPSHOT
+yaks.jbang.camel.version=4.6.0
+yaks.jbang.kamelets.version=4.7.0-SNAPSHOT
 
 yaks.jbang.kamelets.local.dir=../../../kamelets
 yaks.jbang.camel.dump.integration.output=true
diff --git 
a/tests/camel-kamelets-itest/src/test/resources/jira/jira-add-comment-sink-pipe.yaml
 
b/tests/camel-kamelets-itest/src/test/resources/jira/jira-add-comment-sink-pipe.yaml
new file mode 100644
index 00000000..460d9fcf
--- /dev/null
+++ 
b/tests/camel-kamelets-itest/src/test/resources/jira/jira-add-comment-sink-pipe.yaml
@@ -0,0 +1,53 @@
+# ---------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ---------------------------------------------------------------------------
+
+apiVersion: camel.apache.org/v1
+kind: Pipe
+metadata:
+  name: jira-add-comment-sink-pipe
+spec:
+  source:
+    ref:
+      kind: Kamelet
+      apiVersion: camel.apache.org/v1
+      name: timer-source
+    properties:
+      period: ${timer.source.period}
+      message: '${jira.issue.comment}'
+  steps:
+    - ref:
+        kind: Kamelet
+        apiVersion: camel.apache.org/v1
+        name: insert-header-action
+      properties:
+        name: issueKey
+        value: ${jira.issue.key}
+    - ref:
+        kind: Kamelet
+        apiVersion: camel.apache.org/v1
+        name: log-action
+      properties:
+        showHeaders: true
+  sink:
+    ref:
+      kind: Kamelet
+      apiVersion: camel.apache.org/v1
+      name: jira-add-comment-sink
+    properties:
+      jiraUrl: yaks:resolveURL('jira-service')
+      username: ${jira.username}
+      password: ${jira.password}
diff --git 
a/tests/camel-kamelets-itest/src/test/resources/jira/jira-add-comment-sink.feature
 
b/tests/camel-kamelets-itest/src/test/resources/jira/jira-add-comment-sink.feature
new file mode 100644
index 00000000..e3d09d37
--- /dev/null
+++ 
b/tests/camel-kamelets-itest/src/test/resources/jira/jira-add-comment-sink.feature
@@ -0,0 +1,153 @@
+# ---------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ---------------------------------------------------------------------------
+
+Feature: Jira Kamelet - Sink
+
+  Background:
+    Given variables
+      | timer.source.period | 10000 |
+      | jira.project.key    | CAMEL |
+      | jira.project.id     | 10001 |
+      | jira.issue.id       | 10001 |
+      | jira.issue.key      | CAMEL-10001 |
+      | jira.issue.summary  | New bug, citrus:randomString(10) |
+      | jira.issue.assignee | Superman |
+      | jira.issue.type     | Bug |
+      | jira.issue.description | Sample bug |
+      | jira.issue.comment  | New comment, citrus:randomString(10) |
+      | jira.issue.comment.id | 10001 |
+      | jira.username       | yaks   |
+      | jira.password       | secr3t |
+    Given HTTP server timeout is 15000 ms
+    Given HTTP server "jira-service"
+
+  Scenario: Create Http server
+    Given create Kubernetes service jira-service
+    Given purge endpoint jira-service
+
+  Scenario: Verify Jira events
+    # Create binding
+    Given load Pipe jira-add-comment-sink-pipe.yaml
+    # Verify get issue request
+    Given expect HTTP request header: Authorization="Basic 
citrus:encodeBase64(${jira.username}:${jira.password})"
+    When receive GET /rest/api/latest/issue/${jira.issue.key}
+    Then HTTP response header: Content-Type="application/json"
+    And HTTP response body
+    """
+    {
+        "expand": "schema,names",
+        "id": "${jira.issue.id}",
+        "key": "${jira.issue.key}",
+        "self": 
"yaks:resolveURL('jira-service')/rest/api/latest/issue/${jira.issue.key}",
+        "transitions": 
"yaks:resolveURL('jira-service')/rest/api/latest/issue/${jira.issue.key}/transitions",
+        "names": {},
+        "schema": {},
+        "fields": {
+            "project": {
+                "self": 
"yaks:resolveURL('jira-service')/rest/api/latest/project/${jira.project.id}",
+                "id": "${jira.project.id}",
+                "key": "CAMEL"
+            },
+            "summary": "${jira.issue.summary}",
+            "custom": "${jira.issue.key}",
+            "issuetype": {
+                "self": 
"yaks:resolveURL('jira-service')/rest/api/latest/issuetype/3",
+                "id": "3",
+                "description": "A task that needs to be done.",
+                "iconUrl": 
"yaks:resolveURL('jira-service')/images/icons/task.gif",
+                "name": "Task",
+                "subtask": false
+            },
+            "created": "yaks:currentDate(yyyy-MM-dd'T'HH:mm:ss.SZ)",
+            "updated": "yaks:currentDate(yyyy-MM-dd'T'HH:mm:ss.SZ)",
+            "status": {
+                "self": 
"yaks:resolveURL('jira-service')/rest/api/latest/status/1",
+                "id": 1,
+                "description": "Open task.",
+                "iconUrl": 
"yaks:resolveURL('jira-service')/images/icons/status_1.gif",
+                "name": "Open"
+            }
+        }
+    }
+    """
+    Then send HTTP 200 OK
+    # Verify add comment request
+    Given expect HTTP request header: Authorization="Basic 
citrus:encodeBase64(${jira.username}:${jira.password})"
+    When receive GET /rest/api/latest/serverInfo
+    Then HTTP response body
+    """
+    {
+        "baseUrl": "yaks:resolveURL('jira-service')",
+        "version": "5.0.0",
+        "versionNumbers": [
+            5,
+            0,
+            0
+        ],
+        "buildNumber": 581,
+        "buildDate": "yaks:currentDate(yyyy-MM-dd'T'HH:mm:ss.SZ)",
+        "serverTime": "yaks:currentDate(yyyy-MM-dd'T'HH:mm:ss.SZ)",
+        "scmInfo": "yaks:randomString(40, LOWERCASE)",
+        "buildPartnerName": "YAKS Co.",
+        "serverTitle": "Test Jira Server"
+    }
+    """
+    Then send HTTP 200 OK
+    # Verify add comment request
+    Given expect HTTP request header: Authorization="Basic 
citrus:encodeBase64(${jira.username}:${jira.password})"
+    Then expect HTTP request body
+    """
+    {
+        "body": "${jira.issue.comment}"
+    }
+    """
+    When receive POST /rest/api/latest/issue/${jira.issue.key}/comment
+    Then HTTP response body
+    """
+    {
+        "self": 
"yaks:resolveURL('jira-service')/rest/api/latest/issue/${jira.issue.id}/comment/${jira.issue.comment.id}",
+        "id": "${jira.issue.comment.id}",
+        "author": {
+            "self": 
"yaks:resolveURL('jira-service')/rest/api/latest/user?username=yaks",
+            "name": "yaks",
+            "displayName": "YAKS User",
+            "active": false
+        },
+        "body": "${jira.issue.comment}",
+        "updateAuthor": {
+            "self": 
"yaks:resolveURL('jira-service')/rest/api/latest/user?username=yaks",
+            "name": "yaks",
+            "displayName": "YAKS User",
+            "active": false
+        },
+        "created": "yaks:currentDate(yyyy-MM-dd'T'HH:mm:ss.SZ)",
+        "updated": "yaks:currentDate(yyyy-MM-dd'T'HH:mm:ss.SZ)",
+        "visibility": {
+            "type": "role",
+            "value": "Users"
+        }
+    }
+    """
+    Then send HTTP 200 OK
+    # Verify event
+    And Camel K integration jira-add-comment-sink-pipe should print 
${jira.issue.comment}
+
+  Scenario: Remove resources
+    # Remove Camel K binding
+    Given delete Pipe jira-add-comment-sink-pipe
+    Given delete Kubernetes service jira-service
+    And stop server component jira-service
diff --git 
a/tests/camel-kamelets-itest/src/test/resources/jira/yaks-config.yaml 
b/tests/camel-kamelets-itest/src/test/resources/jira/yaks-config.yaml
index 52cf9ba2..4db76ca6 100644
--- a/tests/camel-kamelets-itest/src/test/resources/jira/yaks-config.yaml
+++ b/tests/camel-kamelets-itest/src/test/resources/jira/yaks-config.yaml
@@ -39,6 +39,7 @@ config:
     resources:
       - jira-source-pipe.yaml
       - jira-add-issue-sink-pipe.yaml
+      - jira-add-comment-sink-pipe.yaml
     cucumber:
       tags:
         - "not @ignored"

Reply via email to