diff --git a/.github/workflows/yaks-tests.yaml b/.github/workflows/yaks-tests.yaml index 754f566b4..da874b9d1 100644 --- a/.github/workflows/yaks-tests.yaml +++ b/.github/workflows/yaks-tests.yaml @@ -102,6 +102,7 @@ jobs: yaks run test/mail-sink $YAKS_RUN_OPTIONS yaks run test/timer-source $YAKS_RUN_OPTIONS yaks run test/earthquake-source $YAKS_RUN_OPTIONS + yaks run test/rest-openapi-sink $YAKS_RUN_OPTIONS - name: YAKS Report if: failure() run: | diff --git a/kamelets/rest-openapi-sink.kamelet.yaml b/kamelets/rest-openapi-sink.kamelet.yaml new file mode 100644 index 000000000..35ee46e06 --- /dev/null +++ b/kamelets/rest-openapi-sink.kamelet.yaml @@ -0,0 +1,57 @@ +# --------------------------------------------------------------------------- +# 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/v1alpha1 +kind: Kamelet +metadata: + name: rest-openapi-sink + annotations: + camel.apache.org/kamelet.support.level: "Preview" + camel.apache.org/catalog.version: "main-SNAPSHOT" + camel.apache.org/kamelet.icon: "data:image/png;base64,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" + camel.apache.org/provider: "Apache Software Foundation" + camel.apache.org/kamelet.group: "HTTP" + labels: + camel.apache.org/kamelet.type: sink +spec: + definition: + title: REST OpenAPI Sink + description: Load OpenAPI specification from URI and call an operation on the HTTP service. The request is generated respecting the rules given in the OpenAPI specification (e.g. path parameters, Content-Type). + required: + - specification + - operation + type: object + properties: + specification: + title: Specification URI + description: URI to the OpenApi specification file + type: string + example: "https://api.example.com/openapi.json" + pattern: "^(http|https|file|classpath)://.*" + operation: + title: Operation ID + description: The operation to call + type: string + dependencies: + - "camel:rest-openapi" + - "camel:http" + - "camel:kamelet" + - "camel:core" + template: + from: + uri: kamelet:source + steps: + - to: "rest-openapi:{{specification}}#{{operation}}" diff --git a/library/camel-kamelets/src/main/resources/kamelets/rest-openapi-sink.kamelet.yaml b/library/camel-kamelets/src/main/resources/kamelets/rest-openapi-sink.kamelet.yaml new file mode 100644 index 000000000..35ee46e06 --- /dev/null +++ b/library/camel-kamelets/src/main/resources/kamelets/rest-openapi-sink.kamelet.yaml @@ -0,0 +1,57 @@ +# --------------------------------------------------------------------------- +# 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/v1alpha1 +kind: Kamelet +metadata: + name: rest-openapi-sink + annotations: + camel.apache.org/kamelet.support.level: "Preview" + camel.apache.org/catalog.version: "main-SNAPSHOT" + camel.apache.org/kamelet.icon: "data:image/png;base64,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" + camel.apache.org/provider: "Apache Software Foundation" + camel.apache.org/kamelet.group: "HTTP" + labels: + camel.apache.org/kamelet.type: sink +spec: + definition: + title: REST OpenAPI Sink + description: Load OpenAPI specification from URI and call an operation on the HTTP service. The request is generated respecting the rules given in the OpenAPI specification (e.g. path parameters, Content-Type). + required: + - specification + - operation + type: object + properties: + specification: + title: Specification URI + description: URI to the OpenApi specification file + type: string + example: "https://api.example.com/openapi.json" + pattern: "^(http|https|file|classpath)://.*" + operation: + title: Operation ID + description: The operation to call + type: string + dependencies: + - "camel:rest-openapi" + - "camel:http" + - "camel:kamelet" + - "camel:core" + template: + from: + uri: kamelet:source + steps: + - to: "rest-openapi:{{specification}}#{{operation}}" diff --git a/test/aws-ddb-sink/aws-ddb-sink-deleteItem.feature b/test/aws-ddb-sink/aws-ddb-sink-deleteItem.feature index 48f0a8197..2237c07d6 100644 --- a/test/aws-ddb-sink/aws-ddb-sink-deleteItem.feature +++ b/test/aws-ddb-sink/aws-ddb-sink-deleteItem.feature @@ -1,3 +1,20 @@ +# --------------------------------------------------------------------------- +# 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: AWS DDB Sink - DeleteItem Background: diff --git a/test/aws-ddb-sink/aws-ddb-sink-putItem.feature b/test/aws-ddb-sink/aws-ddb-sink-putItem.feature index d01d5ce7c..04eb4debe 100644 --- a/test/aws-ddb-sink/aws-ddb-sink-putItem.feature +++ b/test/aws-ddb-sink/aws-ddb-sink-putItem.feature @@ -1,3 +1,20 @@ +# --------------------------------------------------------------------------- +# 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: AWS DDB Sink - PutItem Background: diff --git a/test/aws-ddb-sink/aws-ddb-sink-updateItem.feature b/test/aws-ddb-sink/aws-ddb-sink-updateItem.feature index 87fe078ed..2fe9d482e 100644 --- a/test/aws-ddb-sink/aws-ddb-sink-updateItem.feature +++ b/test/aws-ddb-sink/aws-ddb-sink-updateItem.feature @@ -1,3 +1,20 @@ +# --------------------------------------------------------------------------- +# 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: AWS DDB Sink - UpdateItem Background: diff --git a/test/earthquake-source/earthquake-source.feature b/test/earthquake-source/earthquake-source.feature index 20e481fb2..4ab050621 100644 --- a/test/earthquake-source/earthquake-source.feature +++ b/test/earthquake-source/earthquake-source.feature @@ -1,3 +1,20 @@ +# --------------------------------------------------------------------------- +# 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: Kamelet earthquake-source Background: diff --git a/test/insert-field-action/insert-field-action-binding.yaml b/test/insert-field-action/insert-field-action-binding.yaml index 68712cc3e..86267340d 100644 --- a/test/insert-field-action/insert-field-action-binding.yaml +++ b/test/insert-field-action/insert-field-action-binding.yaml @@ -1,3 +1,20 @@ +# --------------------------------------------------------------------------- +# 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/v1alpha1 kind: KameletBinding metadata: diff --git a/test/insert-field-action/insert-field-action.feature b/test/insert-field-action/insert-field-action.feature index 33f050df2..b882fcdcb 100644 --- a/test/insert-field-action/insert-field-action.feature +++ b/test/insert-field-action/insert-field-action.feature @@ -1,3 +1,20 @@ +# --------------------------------------------------------------------------- +# 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: Insert field Kamelet action Background: diff --git a/test/mail-sink/mail-server.groovy b/test/mail-sink/mail-server.groovy index d1d2c4f0e..b09b90c3c 100644 --- a/test/mail-sink/mail-server.groovy +++ b/test/mail-sink/mail-server.groovy @@ -1,3 +1,20 @@ +/* + * 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. + */ + System.properties['citrus.mail.marshaller.type'] = "JSON" mail() diff --git a/test/mail-sink/mail-sink.feature b/test/mail-sink/mail-sink.feature index 13a3f6df6..0de2f362b 100644 --- a/test/mail-sink/mail-sink.feature +++ b/test/mail-sink/mail-sink.feature @@ -1,3 +1,20 @@ +# --------------------------------------------------------------------------- +# 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: Mail Sink Background: diff --git a/test/mail-sink/timer-to-mail.yaml b/test/mail-sink/timer-to-mail.yaml index feaa24feb..561c72d05 100644 --- a/test/mail-sink/timer-to-mail.yaml +++ b/test/mail-sink/timer-to-mail.yaml @@ -1,3 +1,20 @@ +# --------------------------------------------------------------------------- +# 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/v1alpha1 kind: KameletBinding metadata: diff --git a/test/rest-openapi-sink/openapi.json b/test/rest-openapi-sink/openapi.json new file mode 100644 index 000000000..cae57a76b --- /dev/null +++ b/test/rest-openapi-sink/openapi.json @@ -0,0 +1,289 @@ +{ + "openapi": "3.0.2", + "info": { + "title": "Swagger Petstore", + "version": "1.0.1", + "description": "This is a sample server Petstore server.", + "license": { + "name": "Apache 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "servers": [ + { + "url": "http://test-service/petstore" + } + ], + "paths": { + "/pet": { + "put": { + "requestBody": { + "description": "Pet object that needs to be added to the store", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Pet" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/Pet" + } + } + }, + "required": true + }, + "tags": [ + "pet" + ], + "responses": { + "204": { + "description": "No content" + }, + "400": { + "description": "Invalid ID supplied" + }, + "404": { + "description": "Pet not found" + }, + "405": { + "description": "Validation exception" + } + }, + "operationId": "updatePet", + "summary": "Update an existing pet", + "description": "" + }, + "post": { + "requestBody": { + "description": "Pet object that needs to be added to the store", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Pet" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Pet" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/Pet" + } + } + }, + "required": true + }, + "tags": [ + "pet" + ], + "responses": { + "201": { + "description": "Created" + }, + "405": { + "description": "Invalid input" + } + }, + "operationId": "addPet", + "summary": "Add a new pet to the store", + "description": "" + } + }, + "/pet/{petId}": { + "get": { + "tags": [ + "pet" + ], + "parameters": [ + { + "name": "petId", + "description": "ID of pet to return", + "schema": { + "format": "int64", + "type": "integer" + }, + "in": "path", + "required": true + }, + { + "name": "verbose", + "description": "Output details", + "schema": { + "type": "boolean" + }, + "in": "query", + "required": false + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Pet" + } + }, + "application/xml": { + "schema": { + "$ref": "#/components/schemas/Pet" + } + } + }, + "description": "successful operation" + }, + "400": { + "description": "Invalid ID supplied" + }, + "404": { + "description": "Pet not found" + } + }, + "operationId": "getPetById", + "summary": "Find pet by ID", + "description": "Returns a single pet" + }, + "delete": { + "tags": [ + "pet" + ], + "parameters": [ + { + "name": "petId", + "description": "Pet id to delete", + "schema": { + "format": "int64", + "type": "integer" + }, + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "description": "No content" + }, + "400": { + "description": "Invalid ID supplied" + }, + "404": { + "description": "Pet not found" + } + }, + "operationId": "deletePet", + "summary": "Deletes a pet", + "description": "" + } + } + }, + "components": { + "schemas": { + "Category": { + "type": "object", + "properties": { + "id": { + "format": "int64", + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "xml": { + "name": "Category" + } + }, + "Tag": { + "type": "object", + "properties": { + "id": { + "format": "int64", + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "xml": { + "name": "Tag" + } + }, + "Pet": { + "required": [ + "category", + "name", + "status" + ], + "type": "object", + "properties": { + "id": { + "format": "int64", + "type": "integer" + }, + "category": { + "$ref": "#/components/schemas/Category" + }, + "name": { + "type": "string", + "example": "doggie" + }, + "photoUrls": { + "type": "array", + "items": { + "type": "string" + }, + "xml": { + "name": "photoUrl", + "wrapped": true + } + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + }, + "xml": { + "name": "tag", + "wrapped": true + } + }, + "status": { + "description": "pet status in the store", + "enum": [ + "available", + "pending", + "sold" + ], + "type": "string" + } + }, + "xml": { + "name": "Pet" + } + }, + "ApiResponse": { + "type": "object", + "properties": { + "code": { + "format": "int32", + "type": "integer" + }, + "type": { + "type": "string" + }, + "message": { + "type": "string" + } + } + } + } + }, + "tags": [ + { + "name": "pet", + "description": "Everything about your Pets" + } + ] +} diff --git a/test/rest-openapi-sink/pet.json b/test/rest-openapi-sink/pet.json new file mode 100644 index 000000000..1e9db0910 --- /dev/null +++ b/test/rest-openapi-sink/pet.json @@ -0,0 +1 @@ +{ "id": ${petId}, "name": "fluffy", "category": {"id": ${petId}, "name": "dog"}, "photoUrls": [ "petstore/v3/photos/${petId}" ], "tags": [{"id": ${petId}, "name": "generated"}], "status": "available"} diff --git a/test/rest-openapi-sink/rest-openapi-sink-binding.yaml b/test/rest-openapi-sink/rest-openapi-sink-binding.yaml new file mode 100644 index 000000000..c0c778a49 --- /dev/null +++ b/test/rest-openapi-sink/rest-openapi-sink-binding.yaml @@ -0,0 +1,46 @@ +# --------------------------------------------------------------------------- +# 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/v1alpha1 +kind: KameletBinding +metadata: + name: rest-openapi-sink-binding +spec: + source: + ref: + kind: Kamelet + apiVersion: camel.apache.org/v1alpha1 + name: timer-source + properties: + period: 60000 + message: '${pet}' + steps: + - ref: + kind: Kamelet + apiVersion: camel.apache.org/v1alpha1 + name: insert-header-action + properties: + name: petId + value: ${petId} + sink: + ref: + kind: Kamelet + apiVersion: camel.apache.org/v1alpha1 + name: rest-openapi-sink + properties: + specification: http://test-service.${YAKS_NAMESPACE}/petstore/openapi.json + operation: ${operation} diff --git a/test/rest-openapi-sink/rest-openapi-sink.feature b/test/rest-openapi-sink/rest-openapi-sink.feature new file mode 100644 index 000000000..396f23d55 --- /dev/null +++ b/test/rest-openapi-sink/rest-openapi-sink.feature @@ -0,0 +1,69 @@ +# --------------------------------------------------------------------------- +# 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: REST OpenAPI Kamelet sink + + Background: + Given HTTP server timeout is 60000 ms + Given HTTP server "test-service" + Given variable petId is "1000" + Given load variable pet.json + + Scenario: Create Http server + Given create Kubernetes service test-service + + Scenario: Create Kamelet binding for addPet + Given Camel K resource polling configuration + | maxAttempts | 200 | + | delayBetweenAttempts | 2000 | + Given variable operation is "addPet" + When load KameletBinding rest-openapi-sink-binding.yaml + Then Camel K integration rest-openapi-sink-binding should be running + + Scenario: Provide OpenAPI specification to Camel K integration + When receive GET /petstore/openapi.json + Then HTTP request header Content-Type is "application/json" + Then HTTP response body: citrus:readFile(classpath:openapi.json) + Then send HTTP 200 OK + + Scenario: Verify proper addPet request message sent + Given expect HTTP request body: citrus:readFile(classpath:openapi.json) + And HTTP request header Content-Type is "application/json" + When receive POST /petstore/pet + And send HTTP 201 CREATED + + Scenario: Remove resources + Given delete KameletBinding rest-openapi-sink-binding + + Scenario: Create Kamelet binding for deletePet + Given variable operation is "deletePet" + When load KameletBinding rest-openapi-sink-binding.yaml + Then Camel K integration rest-openapi-sink-binding should be running + + Scenario: Provide OpenAPI specification to Camel K integration + When receive GET /petstore/openapi.json + Then HTTP request header Content-Type is "application/json" + Then HTTP response body: citrus:readFile(classpath:openapi.json) + Then send HTTP 200 OK + + Scenario: Verify proper deletePet request message sent + When receive DELETE /petstore/pet/${petId} + And send HTTP 204 NO_CONTENT + + Scenario: Remove resources + Given delete KameletBinding rest-openapi-sink-binding + And delete Kubernetes service test-service diff --git a/test/rest-openapi-sink/yaks-config.yaml b/test/rest-openapi-sink/yaks-config.yaml new file mode 100644 index 000000000..9e2b89a80 --- /dev/null +++ b/test/rest-openapi-sink/yaks-config.yaml @@ -0,0 +1,35 @@ +# --------------------------------------------------------------------------- +# 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. +# --------------------------------------------------------------------------- + +config: + namespace: + temporary: false + runtime: + env: + - name: YAKS_CAMELK_AUTO_REMOVE_RESOURCES + value: false + - name: YAKS_KUBERNETES_AUTO_REMOVE_RESOURCES + value: false + resources: + - pet.json + - openapi.json + - rest-openapi-sink-binding.yaml + dump: + enabled: true + failedOnly: true + includes: + - app=camel-k diff --git a/test/timer-source/timer-source.feature b/test/timer-source/timer-source.feature index c976ff75d..6fa1e670c 100644 --- a/test/timer-source/timer-source.feature +++ b/test/timer-source/timer-source.feature @@ -1,3 +1,20 @@ +# --------------------------------------------------------------------------- +# 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: Timer Source Kamelet Background: