Add/Fix workflow/version flow tests 61/57261/1
authortalig <talig@amdocs.com>
Tue, 24 Jul 2018 07:30:55 +0000 (10:30 +0300)
committertalig <talig@amdocs.com>
Tue, 24 Jul 2018 07:30:55 +0000 (10:30 +0300)
Change-Id: I63d432333d5038ff5178742fb3b2347d1b551879
Issue-ID: SDC-1503
Signed-off-by: talig <talig@amdocs.com>
workflow/workflow-bdd/features/Version.feature [moved from workflow/workflow-bdd/features/Version_Create_Update.feature with 51% similarity]
workflow/workflow-bdd/features/VersionState.feature
workflow/workflow-bdd/features/Workflow.feature
workflow/workflow-bdd/features/WorkflowList.feature
workflow/workflow-bdd/resources/json/createVersionWithInputsOutputs.json [new file with mode: 0644]
workflow/workflow-bdd/stepDefinitions/Workflow_Steps.js

 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-
 Feature: Workflow Versions
 
-  Background: Init
+  Background: Init - Create workflow
     Given I want to create a Workflow
 
   Scenario: Create first empty version
-    When I want to create input data
+    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}"
@@ -35,9 +58,8 @@ Feature: Workflow Versions
     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 set property "updatedDesc" to value "workflow version description updated"
-    And I want to update the input property "description" with value of property "updatedDesc"
+    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 that property "description" in the response equals to value of saved property "updatedDesc"
\ No newline at end of file
+    And I want to check property "description" for value "workflow version description updated"
\ No newline at end of file
index c869d14..1bb72ab 100644 (file)
@@ -25,7 +25,7 @@ Feature: Workflow Version 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
+  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
@@ -37,8 +37,19 @@ Feature: Workflow Version 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
+  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
\ No newline at end of file
+    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
index b234fdb..dffcc55 100644 (file)
 
 Feature: Workflow
 
-  Scenario: Create valid
-    When I want to create a 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: Update and Get workflow
+  Scenario: Create
     When I want to create a Workflow
-    Then I want to update the input property "description" with value "workflow desc updated"
-    Then I want to update for path "/workflows/{item.id}" with the input data from the context
+    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}"
-    Then I want to check that property "description" in the response equals to value of saved property "inputData.description"
+    And I want to check property "description" for value "workflow description updated"
index 85261f5..5b6941e 100644 (file)
@@ -12,7 +12,6 @@
 # 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
@@ -39,41 +38,39 @@ Feature: List Workflows
     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 update the input property "baseVersionId" with value of property "item.versionId"
-    And I want to create for path "/workflows/{item.id}/versions" with the input data from the context
-    #And I want to print the context data
+    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"
+    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"
+    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
-    Then I want to check that element in the response list with "id" equals to value of saved property "draftVersionWorkflowId" exists
-    Then I want to check that element in the response list with "id" equals to value of saved property "certifiedVersionWorkflowId" does not exist
-    Then I want to check that element in the response list with "id" equals to value of saved property "draftAndCertifiedVersionWorkflowId" 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" 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"
+    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
-    Then I want to check that element in the response list with "id" equals to value of saved property "draftVersionWorkflowId" does not exist
-    Then I want to check that element in the response list with "id" equals to value of saved property "certifiedVersionWorkflowId" exists
-    Then I want to check that element in the response list with "id" equals to value of saved property "draftAndCertifiedVersionWorkflowId" exists
+    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"
+    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
-    Then I want to check that element in the response list with "id" equals to value of saved property "draftVersionWorkflowId" exists
-    Then I want to check that element in the response list with "id" equals to value of saved property "certifiedVersionWorkflowId" exists
-    Then I want to check that element in the response list with "id" equals to value of saved property "draftAndCertifiedVersionWorkflowId" 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 gibberish version(s) = none
-    When I want to get path "/workflows?versionState=gibberish"
+    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
-    Then I want to check that element in the response list with "id" equals to value of saved property "draftVersionWorkflowId" does not exist
-    Then I want to check that element in the response list with "id" equals to value of saved property "certifiedVersionWorkflowId" does not exist
-    Then 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
+    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
diff --git a/workflow/workflow-bdd/resources/json/createVersionWithInputsOutputs.json b/workflow/workflow-bdd/resources/json/createVersionWithInputsOutputs.json
new file mode 100644 (file)
index 0000000..a9b6c3d
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "description": "first version - with inputs and outputs",
+  "inputs": [
+    {
+      "mandatory": true,
+      "name": "in1",
+      "type": "STRING"
+    }
+  ],
+  "outputs": [
+    {
+      "mandatory": true,
+      "name": "out1",
+      "type": "TIMESTAMP"
+    }
+  ]
+}
\ No newline at end of file
index aeca5eb..abeacab 100644 (file)
@@ -16,7 +16,7 @@
 
 /**
  * @module WORKFLOW
- * @description Creates a new WORKFLOW with a random name and saves the id and versionId on the context item object and the context vlm object<br>
+ * @description Creates a new WORKFLOW with a random name and saves the id and versionId on the context item object<br>
  *     Input data  will be taken from the 'resources/json/createWorkflow.json' file.
  * @step I want to create a Workflow
  **/