diff options
Diffstat (limited to 'workflow-bdd/features')
-rw-r--r-- | workflow-bdd/features/Version.feature | 65 | ||||
-rw-r--r-- | workflow-bdd/features/VersionState.feature | 55 | ||||
-rw-r--r-- | workflow-bdd/features/Workflow.feature | 31 | ||||
-rw-r--r-- | workflow-bdd/features/WorkflowList.feature | 76 |
4 files changed, 227 insertions, 0 deletions
diff --git a/workflow-bdd/features/Version.feature b/workflow-bdd/features/Version.feature new file mode 100644 index 00000000..e43971cb --- /dev/null +++ b/workflow-bdd/features/Version.feature @@ -0,0 +1,65 @@ +# Copyright © 2018 European Support Limited +# +# Licensed 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: Workflow Versions + + Background: Init - Create workflow + Given I want to create a Workflow + + Scenario: Create first empty version + When I want to update the input property "description" with value "first empty version" + And I want to create for path "/workflows/{item.id}/versions" with the input data from the context + And I want to copy to property "item.versionId" from response data path "id" + + Then I want to get path "/workflows/{item.id}/versions/{item.versionId}" + And I want to check that property "id" in the response equals to value of saved property "item.versionId" + And I want to get path "/workflows/{item.id}/versions" + And I want to check that element in the response list with "id" equals to value of saved property "item.versionId" exists + + Scenario: Create first version with inputs/outputs + When I want to set the input data to file "resources/json/createVersionWithInputsOutputs.json" + And I want to create for path "/workflows/{item.id}/versions" with the input data from the context + And I want to copy to property "item.versionId" from response data path "id" + + Then I want to check property "inputs[0].name" for value "in1" + And I want to check property "outputs[0].name" for value "out1" + + Scenario: Create second version + And I want to update the input property "description" with value "first empty version" + And I want to create for path "/workflows/{item.id}/versions" with the input data from the context + And I want to copy to property "item.firstVersionId" from response data path "id" + And I want to update the input property "name" with value "CERTIFIED" + And I want to create for path "/workflows/{item.id}/versions/{item.firstVersionId}/state" with the input data from the context + + When I want to create input data + And I want to update the input property "description" with value "second empty version" + And I want to create for path "/workflows/{item.id}/versions?baseVersionId={item.firstVersionId}" with the input data from the context + And I want to copy to property "item.versionId" from response data path "id" + + Then I want to get path "/workflows/{item.id}/versions/{item.versionId}" + And I want to check that property "id" in the response equals to value of saved property "item.versionId" + And I want to get path "/workflows/{item.id}/versions" + And I want to check that element in the response list with "id" equals to value of saved property "item.versionId" exists + + Scenario: Update version + And I want to create input data + And I want to update the input property "description" with value "workflow version description" + And I want to create for path "/workflows/{item.id}/versions" with the input data from the context + And I want to copy to property "item.versionId" from response data path "id" + + When I want to update the input property "description" with value "workflow version description updated" + And I want to update for path "/workflows/{item.id}/versions/{item.versionId}" with the input data from the context + + Then I want to get path "/workflows/{item.id}/versions/{item.versionId}" + And I want to check property "description" for value "workflow version description updated"
\ No newline at end of file diff --git a/workflow-bdd/features/VersionState.feature b/workflow-bdd/features/VersionState.feature new file mode 100644 index 00000000..1bb72ab8 --- /dev/null +++ b/workflow-bdd/features/VersionState.feature @@ -0,0 +1,55 @@ +# Copyright © 2018 European Support Limited +# +# Licensed 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: Workflow Version State + + Background: Create workflow and first version + Given I want to create a Workflow + And I want to update the input property "description" with value "workflow version description" + And I want to create for path "/workflows/{item.id}/versions" with the input data from the context + And I want to copy to property "item.versionId" from response data path "id" + + Scenario: Get state after creation + When I want to get path "/workflows/{item.id}/versions/{item.versionId}/state" + Then I want to check property "name" for value "DRAFT" + And I want to check property "nextStates[0]" for value "CERTIFIED" + + Scenario: Update state to current state - invalid + Then I want the following to fail with response status code 422 + When I want to update the input property "name" with value "DRAFT" + And I want to create for path "/workflows/{item.id}/versions/{item.versionId}/state" with the input data from the context + + Scenario: Update state - DRAFT to CERTIFIED + When I want to update the input property "name" with value "CERTIFIED" + And I want to create for path "/workflows/{item.id}/versions/{item.versionId}/state" with the input data from the context + Then I want to get path "/workflows/{item.id}/versions/{item.versionId}/state" + And I want to check property "name" for value "CERTIFIED" + And I want to check property "nextStates" to have length 0 + + Scenario: Update state when CERTIFIED - invalid + When I want to update the input property "name" with value "CERTIFIED" + And I want to create for path "/workflows/{item.id}/versions/{item.versionId}/state" with the input data from the context + When I want the following to fail with response status code 422 + Then I want to create for path "/workflows/{item.id}/versions/{item.versionId}/state" with the input data from the context + + Scenario: Update when CERTIFIED - invalid + When I want to update the input property "name" with value "CERTIFIED" + And I want to create for path "/workflows/{item.id}/versions/{item.versionId}/state" with the input data from the context + And I want to update the input property "description" with value "workflow version description updated" + Then I want the following to fail with response status code 422 + When I want to update for path "/workflows/{item.id}/versions/{item.versionId}" with the input data from the context + + Scenario: Create second version based on non CERTIFIED one - invalid + Then I want the following to fail with response status code 403 + When I want to create for path "/workflows/{item.id}/versions?baseVersionId={item.versionId}" with the input data from the context
\ No newline at end of file diff --git a/workflow-bdd/features/Workflow.feature b/workflow-bdd/features/Workflow.feature new file mode 100644 index 00000000..dffcc55d --- /dev/null +++ b/workflow-bdd/features/Workflow.feature @@ -0,0 +1,31 @@ +# Copyright © 2018 European Support Limited +# +# Licensed 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: Workflow + + Scenario: Create invalid - without name + Given I want to create input data + When I want the following to fail with response status code 400 + Then I want to create for path "/workflows" with the input data from the context + + Scenario: Create + When I want to create a Workflow + Then I want to check property "description" for value "Workflow Description" + + Scenario: Update and Get + Given I want to create a Workflow + And I want to update the input property "description" with value "workflow description updated" + When I want to update for path "/workflows/{item.id}" with the input data from the context + Then I want to get path "/workflows/{item.id}" + And I want to check property "description" for value "workflow description updated" diff --git a/workflow-bdd/features/WorkflowList.feature b/workflow-bdd/features/WorkflowList.feature new file mode 100644 index 00000000..5b6941ec --- /dev/null +++ b/workflow-bdd/features/WorkflowList.feature @@ -0,0 +1,76 @@ +# Copyright © 2018 European Support Limited +# +# Licensed 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: List Workflows + + Background: Init - create various workflows in order to test list filter + Given I want to create a Workflow + And I want to copy to property "noVersionsWorkflowId" from response data path "id" + + Given I want to create a Workflow + And I want to copy to property "draftVersionWorkflowId" from response data path "id" + And I want to update the input property "description" with value "first version" + And I want to create for path "/workflows/{item.id}/versions" with the input data from the context + + Given I want to create a Workflow + And I want to copy to property "certifiedVersionWorkflowId" from response data path "id" + And I want to update the input property "description" with value "first version" + And I want to create for path "/workflows/{item.id}/versions" with the input data from the context + And I want to update the input property "name" with value "CERTIFIED" + And I want to create for path "/workflows/{item.id}/versions/{responseData.id}/state" with the input data from the context + + Given I want to create a Workflow + And I want to copy to property "draftAndCertifiedVersionWorkflowId" from response data path "id" + And I want to update the input property "description" with value "first version" + And I want to create for path "/workflows/{item.id}/versions" with the input data from the context + And I want to copy to property "item.versionId" from response data path "id" + And I want to update the input property "name" with value "CERTIFIED" + And I want to create for path "/workflows/{item.id}/versions/{item.versionId}/state" with the input data from the context + And I want to update the input property "description" with value "second version" + And I want to create for path "/workflows/{item.id}/versions?baseVersionId={item.versionId}" with the input data from the context + + Scenario: List all + When I want to get path "/workflows?size=2000" + Then I want to check that element in the response list with "id" equals to value of saved property "noVersionsWorkflowId" exists + And I want to check that element in the response list with "id" equals to value of saved property "draftVersionWorkflowId" exists + And I want to check that element in the response list with "id" equals to value of saved property "certifiedVersionWorkflowId" exists + And I want to check that element in the response list with "id" equals to value of saved property "draftAndCertifiedVersionWorkflowId" exists + + Scenario: List ones with DRAFT version(s) + When I want to get path "/workflows?versionState=DRAFT&size=2000" + Then I want to check that element in the response list with "id" equals to value of saved property "noVersionsWorkflowId" does not exist + And I want to check that element in the response list with "id" equals to value of saved property "draftVersionWorkflowId" exists + And I want to check that element in the response list with "id" equals to value of saved property "certifiedVersionWorkflowId" does not exist + And I want to check that element in the response list with "id" equals to value of saved property "draftAndCertifiedVersionWorkflowId" exists + + Scenario: List ones with CERTIFIED version(s) + When I want to get path "/workflows?versionState=CERTIFIED&size=2000" + Then I want to check that element in the response list with "id" equals to value of saved property "noVersionsWorkflowId" does not exist + And I want to check that element in the response list with "id" equals to value of saved property "draftVersionWorkflowId" does not exist + And I want to check that element in the response list with "id" equals to value of saved property "certifiedVersionWorkflowId" exists + And I want to check that element in the response list with "id" equals to value of saved property "draftAndCertifiedVersionWorkflowId" exists + + Scenario: List ones with DRAFT/CERTIFIED version(s) + When I want to get path "/workflows?versionState=DRAFT,CERTIFIED&size=2000" + Then I want to check that element in the response list with "id" equals to value of saved property "noVersionsWorkflowId" does not exist + And I want to check that element in the response list with "id" equals to value of saved property "draftVersionWorkflowId" exists + And I want to check that element in the response list with "id" equals to value of saved property "certifiedVersionWorkflowId" exists + And I want to check that element in the response list with "id" equals to value of saved property "draftAndCertifiedVersionWorkflowId" exists + + Scenario: List ones with gibberish version(s) = none + When I want to get path "/workflows?versionState=gibberish&size=2000" + Then I want to check that element in the response list with "id" equals to value of saved property "noVersionsWorkflowId" does not exist + And I want to check that element in the response list with "id" equals to value of saved property "draftVersionWorkflowId" does not exist + And I want to check that element in the response list with "id" equals to value of saved property "certifiedVersionWorkflowId" does not exist + And I want to check that element in the response list with "id" equals to value of saved property "draftAndCertifiedVersionWorkflowId" does not exist
\ No newline at end of file |