Add output parameter support in Operation screen

Added code to support Output parameter, fixed UTs, Added flow test

Change-Id: I4ff869d120cefd7645a407278caeea6ee695c73b
Issue-ID: SDC-1440
Signed-off-by: mojahidi <mojahidul.islam@amdocs.com>
diff --git a/openecomp-bdd/features/InterfaceOperation/TestInterfaceOperation.feature b/openecomp-bdd/features/InterfaceOperation/TestInterfaceOperation.feature
index dfd754f..fa3647e 100644
--- a/openecomp-bdd/features/InterfaceOperation/TestInterfaceOperation.feature
+++ b/openecomp-bdd/features/InterfaceOperation/TestInterfaceOperation.feature
@@ -93,4 +93,20 @@
 
   #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
+  And I want to check property "lifecycleState" for value "READY_FOR_CERTIFICATION"
+
+  Scenario: Test InterfaceOperation CREATE with output parameters
+  #Create Operations
+  When I want to create an Operation with outputParameter
+  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"
diff --git a/openecomp-bdd/resources/json/operation/createOperation.json b/openecomp-bdd/resources/json/operation/createOperation.json
index 87c12f2..394be36 100644
--- a/openecomp-bdd/resources/json/operation/createOperation.json
+++ b/openecomp-bdd/resources/json/operation/createOperation.json
@@ -10,6 +10,14 @@
           }
         ]
       },
+      "outputParams": {
+        "listToscaDataDefinition": [
+          {
+            "paramName": "op1",
+            "paramId": "68443b9d-9405-458e-811f-b62dd4975fcb.nf_naming"
+          }
+        ]
+      },
       "operationType": "create"
     }
   }
diff --git a/openecomp-bdd/stepDefinitions/InterfaceOperationSteps.js b/openecomp-bdd/stepDefinitions/InterfaceOperationSteps.js
index 4c00deb..14c5610 100644
--- a/openecomp-bdd/stepDefinitions/InterfaceOperationSteps.js
+++ b/openecomp-bdd/stepDefinitions/InterfaceOperationSteps.js
@@ -57,6 +57,23 @@
 });
 
 
+When('I want to create an Operation with outputParameter', 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;
+    inputData.interfaceOperations.create.outputParams.listToscaDataDefinition[0].paramName = util.random();
+    inputData.interfaceOperations.create.outputParams.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';