aboutsummaryrefslogtreecommitdiffstats
path: root/workflow-bdd/features
diff options
context:
space:
mode:
Diffstat (limited to 'workflow-bdd/features')
-rw-r--r--workflow-bdd/features/Version.feature65
-rw-r--r--workflow-bdd/features/VersionState.feature55
-rw-r--r--workflow-bdd/features/Workflow.feature31
-rw-r--r--workflow-bdd/features/WorkflowList.feature76
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