diff options
author | mojahidi <mojahidul.islam@amdocs.com> | 2018-09-07 11:07:49 +0530 |
---|---|---|
committer | Vitaly Emporopulo <Vitaliy.Emporopulo@amdocs.com> | 2018-09-13 11:56:39 +0000 |
commit | 5082ac877cab66770e1cce651e49d634c77e8057 (patch) | |
tree | d2c5f2648556c37e8bc3b5157ac27d4dadefc8f0 | |
parent | 79ba4fbed10cabac5c32ba91e57fa55253005c37 (diff) |
Interface operation support for service - BDD
Added flow test for Interface operation support for service
Change-Id: I0f4ed8fbc6c124b63ff167cbeaf0921c544b5b79
Issue-ID: SDC-1739
Signed-off-by: mojahidi <mojahidul.islam@amdocs.com>
-rw-r--r-- | openecomp-bdd/features/InterfaceOperation/TestResourceInterfaceOperation.feature (renamed from openecomp-bdd/features/InterfaceOperation/TestInterfaceOperation.feature) | 34 | ||||
-rw-r--r-- | openecomp-bdd/features/InterfaceOperation/TestServiceInterfaceOperation.feature | 37 | ||||
-rw-r--r-- | openecomp-bdd/resources/json/operation/createOperation.json | 22 | ||||
-rw-r--r-- | openecomp-bdd/resources/json/operation/createOperationWithInputOutput.json | 29 | ||||
-rw-r--r-- | openecomp-bdd/resources/json/operation/createService.json | 102 | ||||
-rw-r--r-- | openecomp-bdd/resources/json/operation/createVF.json (renamed from openecomp-bdd/resources/json/operation/createVF_From_Catalog.json) | 33 | ||||
-rw-r--r-- | openecomp-bdd/resources/json/operation/updateOperation.json | 17 | ||||
-rw-r--r-- | openecomp-bdd/stepDefinitions/InterfaceOperationSteps.js | 103 |
8 files changed, 296 insertions, 81 deletions
diff --git a/openecomp-bdd/features/InterfaceOperation/TestInterfaceOperation.feature b/openecomp-bdd/features/InterfaceOperation/TestResourceInterfaceOperation.feature index dfd754f74e..9f3cd5490f 100644 --- a/openecomp-bdd/features/InterfaceOperation/TestInterfaceOperation.feature +++ b/openecomp-bdd/features/InterfaceOperation/TestResourceInterfaceOperation.feature @@ -11,6 +11,8 @@ Feature: Interface Operation Feature Then I want to check property "uniqueId" exists And I want to create an Operation Then I want to check property "uniqueId" exists + When I want to create an Operation with input output + Then I want to check property "uniqueId" exists #List All Operations When I want to list Operations @@ -26,12 +28,12 @@ Feature: Interface Operation Feature When I want to delete an Operation #Checkin - When I want to checkin this VF + When I want to checkin this component Then I want to check property "lifecycleState" for value "NOT_CERTIFIED_CHECKIN" - #Submit - Then I want to submit this VF - And I want to check property "lifecycleState" for value "READY_FOR_CERTIFICATION" + #Certify + Then I want to certify this component + And I want to check property "lifecycleState" for value "CERTIFIED" Scenario: Test InterfaceOperation CREATE #Create Operations @@ -46,12 +48,12 @@ Feature: Interface Operation Feature When I want to list Operations #Checkin - When I want to checkin this VF + When I want to checkin this component Then I want to check property "lifecycleState" for value "NOT_CERTIFIED_CHECKIN" -#Submit - Then I want to submit this VF - And I want to check property "lifecycleState" for value "READY_FOR_CERTIFICATION" +#Certify + Then I want to certify this component + And I want to check property "lifecycleState" for value "CERTIFIED" Scenario: Test InterfaceOperation UPDATE @@ -67,12 +69,12 @@ Feature: Interface Operation Feature Then I want to check property "uniqueId" exists #Checkin - When I want to checkin this VF + When I want to checkin this component Then I want to check property "lifecycleState" for value "NOT_CERTIFIED_CHECKIN" - #Submit - Then I want to submit this VF - And I want to check property "lifecycleState" for value "READY_FOR_CERTIFICATION" + #Certify + Then I want to certify this component + And I want to check property "lifecycleState" for value "CERTIFIED" Scenario: Test InterfaceOperation DELETE @@ -88,9 +90,9 @@ Feature: Interface Operation Feature When I want to delete an Operation #Checkin - When I want to checkin this VF + When I want to checkin this component Then I want to check property "lifecycleState" for value "NOT_CERTIFIED_CHECKIN" - #Submit - Then I want to submit this VF - And I want to check property "lifecycleState" for value "READY_FOR_CERTIFICATION"
\ No newline at end of file + #certify + Then I want to certify this component + And I want to check property "lifecycleState" for value "CERTIFIED"
\ No newline at end of file diff --git a/openecomp-bdd/features/InterfaceOperation/TestServiceInterfaceOperation.feature b/openecomp-bdd/features/InterfaceOperation/TestServiceInterfaceOperation.feature new file mode 100644 index 0000000000..1ad2377e1b --- /dev/null +++ b/openecomp-bdd/features/InterfaceOperation/TestServiceInterfaceOperation.feature @@ -0,0 +1,37 @@ +Feature: Interface Operation Feature + + Background: Init + Given I want to create a Service + + Scenario: Test InterfaceOperation CRUD + #Create Operations + When I want to create an Operation + Then I want to check property "uniqueId" exists + And I want to create an Operation + Then I want to check property "uniqueId" exists + And I want to create an Operation + Then I want to check property "uniqueId" exists + When I want to create an Operation with input output + Then I want to check property "uniqueId" exists + + #List All Operations + When I want to list Operations + + #Get Operation By OperationId + When I want to get an Operation by Id + Then I want to check property "uniqueId" exists + + #Update Operation + When I want to update an Operation + Then I want to check property "uniqueId" exists + + #Delete Operation + When I want to delete an Operation + + #Checkin + When I want to checkin this component + Then I want to check property "lifecycleState" for value "NOT_CERTIFIED_CHECKIN" + + #Submit + Then I want to submit this component + And I want to check property "lifecycleState" for value "READY_FOR_CERTIFICATION" diff --git a/openecomp-bdd/resources/json/operation/createOperation.json b/openecomp-bdd/resources/json/operation/createOperation.json index 5d494402e5..10c34ba8f2 100644 --- a/openecomp-bdd/resources/json/operation/createOperation.json +++ b/openecomp-bdd/resources/json/operation/createOperation.json @@ -1,30 +1,14 @@ { "interfaceOperations": { - "create": { + "operation": { "description": "abcd description", "inputParams": { - "listToscaDataDefinition": [ - { - "paramName": "sd", - "paramId": "67c72959-0a05-4436-9339-534aa44c9fd0.nf_naming" - }, - { - "paramName": "sdf", - "paramId": "67c72959-0a05-4436-9339-534aa44c9fd0.nf_naming_code" - } - ] }, "outputParams": { - "listToscaDataDefinition": [ - { - "paramName": "op1", - "paramId": "68443b9d-9405-458e-811f-b62dd4975fcb.nf_naming" - } - ] }, "operationType": "create", - "workflowId" : "w_id1", - "workflowVersionId" : "w_version_id11" + "workflowId" : null, + "workflowVersionId" : null } } }
\ No newline at end of file diff --git a/openecomp-bdd/resources/json/operation/createOperationWithInputOutput.json b/openecomp-bdd/resources/json/operation/createOperationWithInputOutput.json new file mode 100644 index 0000000000..013d615999 --- /dev/null +++ b/openecomp-bdd/resources/json/operation/createOperationWithInputOutput.json @@ -0,0 +1,29 @@ +{ + "interfaceOperations": { + "operation": { + "description": "abcd description", + "inputParams": { + "listToscaDataDefinition": [ + { + "name": "inp1", + "type": "string", + "property": "97477d27-8fe2-45a1-83cb-83368ef2a402.nf_naming_code", + "mandatory": true + } + ] + }, + "outputParams": { + "listToscaDataDefinition": [ + { + "name": "op", + "mandatory": true, + "type": "String" + } + ] + }, + "operationType": "create", + "workflowId" : null, + "workflowVersionId" : null + } + } +}
\ No newline at end of file diff --git a/openecomp-bdd/resources/json/operation/createService.json b/openecomp-bdd/resources/json/operation/createService.json new file mode 100644 index 0000000000..e7afe2aa21 --- /dev/null +++ b/openecomp-bdd/resources/json/operation/createService.json @@ -0,0 +1,102 @@ +{ + "artifacts": { + + }, + "toscaArtifacts": { + + }, + "contactId": "cs0008", + "categories": [ + { + "name": "Network L4+", + "normalizedName": "network l4+", + "uniqueId": "serviceNewCategory.network l4+", + "icons": [ + "network_l_4" + ], + "subcategories": null, + "version": null, + "ownerId": null, + "empty": false, + "type": null + } + ], + "description": "service1 for bdd", + "icon": "defaulticon", + "componentInstancesProperties": { + + }, + "componentInstancesAttributes": { + + }, + "name": "service1", + "tags": [ + "service1" + ], + "capabilities": { + + }, + "requirements": { + + }, + "deploymentArtifacts": { + + }, + "componentType": "SERVICE", + "projectCode": "010203", + "componentInstances": [ + + ], + "properties": [ + + ], + + "inputs": [ + { + "uniqueId": "03eeb10e-cf2a-41b8-9d8e-d2dbd094f9d4.test1_dasddas", + "type": "scalar-unit.size", + "required": false, + "definition": false, + "schema": { + "properties": { + + }, + "property": { + "type": "", + "required": false, + "definition": true, + "password": false, + "hidden": false, + "immutable": false, + "getInputProperty": false, + "empty": false + }, + "empty": false + }, + "password": false, + "name": "test1_dasddas", + "hidden": false, + "immutable": false, + "instanceUniqueId": "03eeb10e-cf2a-41b8-9d8e-d2dbd094f9d4", + "propertyId": "03eeb10e-cf2a-41b8-9d8e-d2dbd094f9d4.dasddas", + "parentUniqueId": "cs0008", + "schemaType": "", + "getInputProperty": false, + "ownerId": "cs0008", + "empty": false + } + ], + + "attributes": [ + + ], + "forwardingPaths": { + + }, + "ecompGeneratedNaming": true, + "serviceApiArtifacts": { + + }, + "instantiationType": "A-la-carte", + "environmentContext": "General_Revenue-Bearing" +}
\ No newline at end of file diff --git a/openecomp-bdd/resources/json/operation/createVF_From_Catalog.json b/openecomp-bdd/resources/json/operation/createVF.json index 7dcafc63c1..6fe9688caa 100644 --- a/openecomp-bdd/resources/json/operation/createVF_From_Catalog.json +++ b/openecomp-bdd/resources/json/operation/createVF.json @@ -56,7 +56,38 @@ "componentInstances": [ ], - "inputs": [ ], + "inputs": [{ + "uniqueId": "abcdef", + "type": "org.openecomp.datatypes.Naming", + "required": false, + "definition": false, + "defaultValue": null, + "description": null, + "schema": null, + "password": false, + "name": "abcdef", + "value": null, + "label": null, + "hidden": false, + "immutable": false, + "inputPath": null, + "status": null, + "inputId": null, + "instanceUniqueId": null, + "propertyId": null, + "annotations": null, + "parentUniqueId": "abcd", + "getInputValues": null, + "constraints": null, + "inputs": null, + "properties": null, + "getInputProperty": false, + "schemaType": null, + "schemaProperty": null, + "version": null, + "ownerId": null, + "empty": false + } ], "properties": [ ], diff --git a/openecomp-bdd/resources/json/operation/updateOperation.json b/openecomp-bdd/resources/json/operation/updateOperation.json index b74262f9f4..698d38c612 100644 --- a/openecomp-bdd/resources/json/operation/updateOperation.json +++ b/openecomp-bdd/resources/json/operation/updateOperation.json @@ -1,12 +1,23 @@ { "interfaceOperations": { - "create": { + "operation": { "description": "create operation_Updated", "inputParams": { "listToscaDataDefinition": [ { - "paramName": "inp1", - "paramId": "REPLACE FROM CONTEXT" + "name": "inp1", + "type": "string", + "property": "97477d27-8fe2-45a1-83cb-83368ef2a402.nf_naming_code", + "mandatory": true + } + ] + }, + "outputParams": { + "listToscaDataDefinition": [ + { + "name": "op", + "mandatory": true, + "type": "String" } ] }, diff --git a/openecomp-bdd/stepDefinitions/InterfaceOperationSteps.js b/openecomp-bdd/stepDefinitions/InterfaceOperationSteps.js index 1bfd4c30a6..f4a81d6110 100644 --- a/openecomp-bdd/stepDefinitions/InterfaceOperationSteps.js +++ b/openecomp-bdd/stepDefinitions/InterfaceOperationSteps.js @@ -19,15 +19,28 @@ const util = require('./Utils.js'); When('I want to create a VF', function() { - let inputData = util.getJSONFromFile('resources/json/operation/createVF_From_Catalog.json'); + let inputData = util.getJSONFromFile('resources/json/operation/createVF.json'); inputData.name = util.random(); inputData.tags[0] = util.random(); - let path = '/catalog/resources'; + var type = "resources"; + let path = '/catalog/' + type; return util.request(this.context, 'POST', path, inputData, false, 'vf').then(result => { - this.context.item = {uniqueId : result.data.uniqueId, id : result.data.inputs[0].uniqueId, name : result.data.inputs[0].name}; - this.context.vf = {uniqueId : result.data.uniqueId, id : result.data.inputs[0].uniqueId, name : result.data.inputs[0].name}; + this.context.component = {uniqueId : result.data.uniqueId, type : type, id : result.data.inputs[0].uniqueId}; +}); +}); + +When('I want to create a Service', function() { + let inputData = util.getJSONFromFile('resources/json/operation/createService.json'); + + inputData.name = util.random(); + inputData.tags[0] = util.random(); + + var type = "services"; + let path = '/catalog/' + type; + return util.request(this.context, 'POST', path, inputData, false, 'vf').then(result => { + this.context.component = {uniqueId : result.data.uniqueId, type : type, id : result.data.inputs[0].uniqueId}; }); }); @@ -41,82 +54,88 @@ function makeType() { return text; } -When('I want to create an Operation', function() { - let inputData = util.getJSONFromFile('resources/json/operation/createOperation.json'); - let path = '/catalog/resources/' + this.context.vf.uniqueId +'/interfaceOperations'; - - inputData.interfaceOperations.create.operationType = makeType(); - inputData.interfaceOperations.create.description = makeType(); - inputData.interfaceOperations.create.inputParams.listToscaDataDefinition[0].paramName = util.random(); - inputData.interfaceOperations.create.inputParams.listToscaDataDefinition[0].paramId = this.context.vf.id; - inputData.interfaceOperations.create.outputParams.listToscaDataDefinition[0].paramName = util.random(); - inputData.interfaceOperations.create.outputParams.listToscaDataDefinition[0].paramId = this.context.vf.id; - inputData.interfaceOperations.create.workflowId = makeType(); - inputData.interfaceOperations.create.workflowVersionId = makeType(); +When('I want to create an Operation with input output', function() { + let path = '/catalog/' + this.context.component.type + '/' + this.context.component.uniqueId + '/interfaceOperations'; + let inputData = util.getJSONFromFile('resources/json/operation/createOperationWithInputOutput.json'); + + inputData.interfaceOperations.operation.inputParams.listToscaDataDefinition[0].name = util.random(); + inputData.interfaceOperations.operation.inputParams.listToscaDataDefinition[0].property = this.context.component.id; + inputData.interfaceOperations.operation.outputParams.listToscaDataDefinition[0].name = util.random(); + inputData.interfaceOperations.operation.operationType = makeType(); + inputData.interfaceOperations.operation.description = makeType(); return util.request(this.context, 'POST', path, inputData, false, 'vf').then(result => { - this.context.item = {uniqueId : result.data.uniqueId, operationType : result.data.operationType}; this.context.operation = {uniqueId : result.data.uniqueId, operationType : result.data.operationType}; }); }); +When('I want to create an Operation', function() { + let path = '/catalog/' + this.context.component.type + '/' + this.context.component.uniqueId + '/interfaceOperations'; + let inputData = util.getJSONFromFile('resources/json/operation/createOperation.json'); + inputData.interfaceOperations.operation.operationType = makeType(); + inputData.interfaceOperations.operation.description = makeType(); -When('I want to list Operations', function () { - let path = '/catalog/resources/' + this.context.vf.uniqueId + '/filteredDataByParams?include=interfaces'; - return util.request(this.context, 'GET', path, null, false, 'vf').then((result)=> { + return util.request(this.context, 'POST', path, inputData, false, 'vf').then(result => { + this.context.operation = {uniqueId : result.data.uniqueId, operationType : result.data.operationType}; }); }); +When('I want to list Operations', function () { + let path = '/catalog/'+ this.context.component.type + '/' + this.context.component.uniqueId + '/filteredDataByParams?include=interfaces'; + return util.request(this.context, 'GET', path, null, false, 'vf').then((result)=> { + }); +}); + When('I want to get an Operation by Id', function () { - let path = '/catalog/resources/' + this.context.vf.uniqueId + '/interfaceOperations/' + this.context.operation.uniqueId; + let path = '/catalog/'+ this.context.component.type + '/' + this.context.component.uniqueId + '/interfaceOperations/' + this.context.operation.uniqueId; return util.request(this.context, 'GET', path, null, false, 'vf').then((result)=> { - this.context.item ={uniqueId : result.data.uniqueId, operationType: result.data.operationType}; - this.context.operation = {uniqueId : result.data.uniqueId, operationType : result.data.operationType}; + this.context.operation = {uniqueId : result.data.uniqueId, operationType : result.data.operationType}; }); }); - When('I want to update an Operation', function () { let inputData = util.getJSONFromFile('resources/json/operation/updateOperation.json'); - let path = '/catalog/resources/' + this.context.vf.uniqueId + '/interfaceOperations/'; - inputData.interfaceOperations.create.uniqueId = this.context.operation.uniqueId; - inputData.interfaceOperations.create.operationType = this.context.operation.operationType; - inputData.interfaceOperations.create.inputParams.listToscaDataDefinition[0].paramName = util.random(); - inputData.interfaceOperations.create.inputParams.listToscaDataDefinition[0].paramId = this.context.vf.id; + let path = '/catalog/'+ this.context.component.type + '/'+ this.context.component.uniqueId +'/interfaceOperations'; + inputData.interfaceOperations.operation.uniqueId = this.context.operation.uniqueId; + inputData.interfaceOperations.operation.operationType = this.context.operation.operationType; + inputData.interfaceOperations.operation.inputParams.listToscaDataDefinition[0].name = util.random(); + inputData.interfaceOperations.operation.inputParams.listToscaDataDefinition[0].property = this.context.component.id; + inputData.interfaceOperations.operation.outputParams.listToscaDataDefinition[0].name = util.random(); return util.request(this.context, 'PUT', path, inputData, false, 'vf').then((result)=> { - this.context.item ={uniqueId : result.data.uniqueId, operationType: result.data.operationType}; - this.context.operation = {uniqueId : result.data.uniqueId, operationType : result.data.operationType}; + this.context.operation = {uniqueId : result.data.uniqueId, operationType : result.data.operationType}; }); }); When('I want to delete an Operation', function() { - let path = '/catalog/resources/' + this.context.vf.uniqueId + '/interfaceOperations/' + this.context.operation.uniqueId; + let path = '/catalog/'+ this.context.component.type + '/'+ this.context.component.uniqueId +'/interfaceOperations/' + this.context.operation.uniqueId; return util.request(this.context, 'DELETE', path, null, false, 'vf'); }); -When('I want to checkin this VF', function () { - let path = '/catalog/resources/' + this.context.vf.uniqueId + '/lifecycleState/CHECKIN' ; +When('I want to checkin this component', function () { + let path = '/catalog/'+ this.context.component.type + '/' + this.context.component.uniqueId + '/lifecycleState/CHECKIN' ; let inputData = {userRemarks: 'checkin'}; return util.request(this.context, 'POST', path, inputData, false, 'vf').then((result)=> { - this.context.item ={uniqueId : result.data.uniqueId}; - this.context.vf = {uniqueId : result.data.uniqueId}; + this.context.component = {uniqueId : result.data.uniqueId, type : this.context.component.type}; }); }); -Then('I want to submit this VF', function () { - let path = '/catalog/resources/' + this.context.vf.uniqueId + '/lifecycleState/certificationRequest' ; +Then('I want to submit this component', function () { + let path = '/catalog/'+ this.context.component.type + '/' + this.context.component.uniqueId + '/lifecycleState/certificationRequest' ; let inputData = {userRemarks: 'submit'}; return util.request(this.context, 'POST', path, inputData, false, 'vf').then((result)=> { - this.context.item ={uniqueId : result.data.uniqueId}; this.context.vf = {uniqueId : result.data.uniqueId}; }); }); - - - +Then('I want to certify this component', function () { + let path = '/catalog/'+ this.context.component.type +'/' + this.context.component.uniqueId + '/lifecycleState/certify' ; + let inputData = {userRemarks: 'certify'}; + return util.request(this.context, 'POST', path, inputData, false, 'vf').then((result)=> { + this.context.component = {uniqueId : result.data.uniqueId}; +}); +});
\ No newline at end of file |