From 65204c69a3eee5e8eeeccf9b1ed9503cdce63db5 Mon Sep 17 00:00:00 2001 From: mojahidi Date: Wed, 25 Apr 2018 18:39:53 +0530 Subject: Flow test for IntefaceOperation Added flow tests for IntefaceOperation Change-Id: Ic2f35dc20f997cef583a0fffc94cef16a3742bea Issue-ID: SDC-1060 Signed-off-by: mojahidi --- .../TestInterfaceOperation.feature | 96 +++++++++++++++++ .../resources/json/operation/createOperation.json | 16 +++ .../json/operation/createVF_From_Catalog.json | 70 ++++++++++++ .../resources/json/operation/updateOperation.json | 17 +++ .../stepDefinitions/InterfaceOperationSteps.js | 118 +++++++++++++++++++++ 5 files changed, 317 insertions(+) create mode 100644 openecomp-bdd/features/InterfaceOperation/TestInterfaceOperation.feature create mode 100644 openecomp-bdd/resources/json/operation/createOperation.json create mode 100644 openecomp-bdd/resources/json/operation/createVF_From_Catalog.json create mode 100644 openecomp-bdd/resources/json/operation/updateOperation.json create mode 100644 openecomp-bdd/stepDefinitions/InterfaceOperationSteps.js diff --git a/openecomp-bdd/features/InterfaceOperation/TestInterfaceOperation.feature b/openecomp-bdd/features/InterfaceOperation/TestInterfaceOperation.feature new file mode 100644 index 0000000000..dfd754f74e --- /dev/null +++ b/openecomp-bdd/features/InterfaceOperation/TestInterfaceOperation.feature @@ -0,0 +1,96 @@ +Feature: Interface Operation Feature + + Background: Init + Given I want to create a VF + + 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 + + #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 VF + 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" + + Scenario: Test InterfaceOperation CREATE + #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 + + #List All Operations + When I want to list Operations + +#Checkin + When I want to checkin this VF + 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" + + + Scenario: Test InterfaceOperation UPDATE + #Create Operation + When I want to create an Operation + Then I want to check property "uniqueId" exists + + #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 + + #Checkin + When I want to checkin this VF + 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" + + + Scenario: Test InterfaceOperation DELETE + #Create Operation + When I want to create an Operation + Then I want to check property "uniqueId" exists + + #Get Operation By OperationId + When I want to get an Operation by Id + Then I want to check property "uniqueId" exists + + #Delete Operation + When I want to delete an Operation + + #Checkin + When I want to checkin this VF + 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 diff --git a/openecomp-bdd/resources/json/operation/createOperation.json b/openecomp-bdd/resources/json/operation/createOperation.json new file mode 100644 index 0000000000..87c12f265f --- /dev/null +++ b/openecomp-bdd/resources/json/operation/createOperation.json @@ -0,0 +1,16 @@ +{ + "interfaceOperations": { + "create": { + "description": "create operation", + "inputParams": { + "listToscaDataDefinition": [ + { + "paramName": "inp1", + "paramId": "68443b9d-9405-458e-811f-b62dd4975fcb.nf_naming" + } + ] + }, + "operationType": "create" + } + } +} \ 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_From_Catalog.json new file mode 100644 index 0000000000..7dcafc63c1 --- /dev/null +++ b/openecomp-bdd/resources/json/operation/createVF_From_Catalog.json @@ -0,0 +1,70 @@ +{ + "artifacts": { + + }, + "toscaArtifacts": { + + }, + "contactId": "cs0008", + "categories": [ + { + "name": "Allotted Resource", + "normalizedName": "allotted resource", + "uniqueId": "resourceNewCategory.allotted resource", + "icons": null, + "subcategories": [ + { + "name": "Tunnel XConnect", + "normalizedName": "tunnel xconnect", + "uniqueId": "resourceNewCategory.allotted resource.tunnel xconnect", + "icons": [ + "tunnel_x_connect" + ], + "groupings": null, + "ownerId": null, + "empty": false + } + ], + "ownerId": null, + "empty": false + } + ], + "description": "sd", + "icon": "defaulticon", + "componentInstancesProperties": { + + }, + "componentInstancesAttributes": { + + }, + "name": "REPLACE", + "tags": [ + "REPLACE" + ], + "capabilities": { + + }, + "requirements": { + + }, + "deploymentArtifacts": { + + }, + "componentType": "RESOURCE", + "vendorName": "vendor", + "vendorRelease": "vendor release", + "componentInstances": [ + + ], + "inputs": [ ], + "properties": [ + + ], + "attributes": [ + + ], + "groups": [ + + ], + "resourceType": "VF" +} \ No newline at end of file diff --git a/openecomp-bdd/resources/json/operation/updateOperation.json b/openecomp-bdd/resources/json/operation/updateOperation.json new file mode 100644 index 0000000000..b74262f9f4 --- /dev/null +++ b/openecomp-bdd/resources/json/operation/updateOperation.json @@ -0,0 +1,17 @@ +{ + "interfaceOperations": { + "create": { + "description": "create operation_Updated", + "inputParams": { + "listToscaDataDefinition": [ + { + "paramName": "inp1", + "paramId": "REPLACE FROM CONTEXT" + } + ] + }, + "operationType": "create", + "uniqueId": "REPLACE FROM CONTEXT" + } + } +} \ No newline at end of file diff --git a/openecomp-bdd/stepDefinitions/InterfaceOperationSteps.js b/openecomp-bdd/stepDefinitions/InterfaceOperationSteps.js new file mode 100644 index 0000000000..4c00debc38 --- /dev/null +++ b/openecomp-bdd/stepDefinitions/InterfaceOperationSteps.js @@ -0,0 +1,118 @@ +/* + * Copyright © 2016-2017 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. + */ +const {Then, When} = require('cucumber'); +const assert = require('assert'); +const util = require('./Utils.js'); + + +When('I want to create a VF', function() { + let inputData = util.getJSONFromFile('resources/json/operation/createVF_From_Catalog.json'); + + inputData.name = util.random(); + inputData.tags[0] = util.random(); + + let path = '/catalog/resources'; + 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}; +}); +}); + +function makeType() { + var text = ""; + var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + + for (var i = 0; i < 5; i++) + text += possible.charAt(Math.floor(Math.random() * possible.length)); + + return text; +} + +When('I want to create an Operation', function() { + let inputData = util.getJSONFromFile('resources/json/operation/createOperation.json'); + //let path = '/catalog/resources/f3dc81bb-85e9-4dfd-bd1b-37f5dc5e5534/interfaceOperations'; + let path = '/catalog/resources/' + this.context.vf.uniqueId +'/interfaceOperations'; + + inputData.interfaceOperations.create.operationType = makeType(); + inputData.interfaceOperations.create.inputParams.listToscaDataDefinition[0].paramName = util.random(); + inputData.interfaceOperations.create.inputParams.listToscaDataDefinition[0].paramId = this.context.vf.id; + + 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 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)=> { +}); +}); + + +When('I want to get an Operation by Id', function () { + let path = '/catalog/resources/' + this.context.vf.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}; +}); +}); + + +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; + 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}; +}); +}); + + +When('I want to delete an Operation', function() { + let path = '/catalog/resources/' + this.context.vf.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' ; + 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}; +}); +}); + + +Then('I want to submit this VF', function () { + let path = '/catalog/resources/' + this.context.vf.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}; +}); +}); + + + + -- cgit 1.2.3-korg