Add some test cases for VF-C to CSIT

Issue-ID: VFC-1534
Change-Id: Ie98a32cfadbde57bf35d3de52e5d222a251aaebe
Signed-off-by: zhaoliping123 <zhaoliping@chinamobile.com>
diff --git a/tests/vfc/nfvo-lcm/jsoninput/create_ns_instance.json b/tests/vfc/nfvo-lcm/jsoninput/create_ns_instance.json
new file mode 100644
index 0000000..bed82d9
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/create_ns_instance.json
@@ -0,0 +1,5 @@
+{
+  "nsdId": "23",
+  "nsName": "ns23",
+  "nsDescription": "ns23 desc"
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/create_pnf.json b/tests/vfc/nfvo-lcm/jsoninput/create_pnf.json
new file mode 100644
index 0000000..282e0af
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/create_pnf.json
@@ -0,0 +1,8 @@
+{
+  "pnfId": "123",
+  "pnfName": "pnf1",
+  "pnfdId": "456",
+  "pnfdInfoId": "011234",
+  "pnfProfileId": "456788",
+  "cpInfo": "cp info"
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/create_sfc.json b/tests/vfc/nfvo-lcm/jsoninput/create_sfc.json
new file mode 100644
index 0000000..e7fe017
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/create_sfc.json
@@ -0,0 +1,6 @@
+{
+  "fpindex": "123",
+  "nsInstanceId": "123",
+  "context": "create sfc",
+  "sdnControllerId": "123"
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/create_subscription.json b/tests/vfc/nfvo-lcm/jsoninput/create_subscription.json
new file mode 100644
index 0000000..553d38c
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/create_subscription.json
@@ -0,0 +1,54 @@
+{
+  "callbackUri": "/api/nslcm/v1/subscriptions",
+  "filter": {
+    "nsInstanceSubscriptionFilter": {
+      "nsdIds": [
+        "3fa85f64-5717-4562-b3fc-2c963f66afa6"
+      ],
+      "vnfdIds": [
+        "3fa85f64-5717-4562-b3fc-2c963f66afa6"
+      ],
+      "pnfdIds": [
+        "3fa85f64-5717-4562-b3fc-2c963f66afa6"
+      ],
+      "nsInstanceIds": [
+        "3fa85f64-5717-4562-b3fc-2c963f66afa6"
+      ],
+      "nsInstanceNames": [
+        "ns1"
+      ]
+    },
+    "notificationTypes": [
+      "NsLcmOperationOccurrenceNotification"
+    ],
+    "operationTypes": [
+      "INSTANTIATE"
+    ],
+    "operationStates": [
+      "STARTING"
+    ],
+    "nsComponentTypes": [
+      "VNF"
+    ],
+    "lcmOpNameImpactingNsComponent": [
+      "VNF_INSTANTIATE"
+    ],
+    "lcmOpOccStatusImpactingNsComponent": [
+      "START"
+    ]
+  },
+  "authentication": {
+    "authType": [
+      "BASIC"
+    ],
+    "paramsBasic": {
+      "userName": "test",
+      "password": "test"
+    },
+    "paramsOauth2ClientCredentials": {
+      "clientId": "123",
+      "clientPassword": "test",
+      "tokenEndpoint": "test"
+    }
+  }
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/create_vl.json b/tests/vfc/nfvo-lcm/jsoninput/create_vl.json
new file mode 100644
index 0000000..6db4cce
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/create_vl.json
@@ -0,0 +1,6 @@
+{
+  "vlIndex": "23456",
+  "nsInstanceId": "234",
+  "context": "create a new vl",
+  "additionalParamForNs": "vl1"
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/create_vnf.json b/tests/vfc/nfvo-lcm/jsoninput/create_vnf.json
new file mode 100644
index 0000000..68fadcc
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/create_vnf.json
@@ -0,0 +1,5 @@
+{
+  "vnfIndex": "vnf123",
+  "nsInstanceId": "123",
+  "additionalParamForVnf": "addInfo"
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/heal_ns.json b/tests/vfc/nfvo-lcm/jsoninput/heal_ns.json
new file mode 100644
index 0000000..f3f669a
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/heal_ns.json
@@ -0,0 +1,22 @@
+{
+  "healVnfData": {
+    "vnfInstanceId": "123",
+    "cause": "new",
+    "additionalParams": {
+      "action": "add",
+      "actionvminfo": {
+        "vmid": "123",
+        "vduid": "1",
+        "vmname": "wm123"
+      }
+    }
+  },
+  "healNsData": {
+    "degreeHealing": "HEAL_RESTORE",
+    "actionsHealing": [
+      "One action"
+    ],
+    "healScript": "script of NS heal",
+    "additionalParamsforNs": "Addition params of NS heal"
+  }
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/heal_ns_instance.json b/tests/vfc/nfvo-lcm/jsoninput/heal_ns_instance.json
new file mode 100644
index 0000000..d15d737
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/heal_ns_instance.json
@@ -0,0 +1,42 @@
+{
+  "healVnfData": [
+    {
+      "vnfInstanceId": "vnf123",
+      "cause": "string",
+      "additionalParams": {
+        "additionalProp1": {
+          "action": "action1",
+          "actionvminfo": {
+            "vmid": "vm123",
+            "vduid": "vdu123",
+            "vmname": "vmname1"
+          }
+        },
+        "additionalProp2": {
+          "action": "action2",
+          "actionvminfo": {
+            "vmid": "vm456",
+            "vduid": "vdu456",
+            "vmname": "vmname456"
+          }
+        },
+        "additionalProp3": {
+          "action": "action3",
+          "actionvminfo": {
+            "vmid": "vm789",
+            "vduid": "vdu789",
+            "vmname": "vmname789"
+          }
+        }
+      }
+    }
+  ],
+  "healNsData": {
+    "degreeHealing": "HEAL_RESTORE",
+    "actionsHealing": [
+      "action for healing"
+    ],
+    "healScript": "script2",
+    "additionalParamsforNs": "additional info"
+  }
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/instantiate_ns.json b/tests/vfc/nfvo-lcm/jsoninput/instantiate_ns.json
new file mode 100644
index 0000000..01ed396
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/instantiate_ns.json
@@ -0,0 +1,51 @@
+{
+  "locationConstraints": [
+    {
+      "vnfProfileId": "123",
+      "locationConstraints": {
+        "vimId": "vim123"
+      }
+    }
+  ],
+  "additionalParamForNs": {
+    "additionalProp1": "Prop1",
+    "additionalProp2": "Prop2",
+    "additionalProp3": "Prop3"
+  },
+  "addpnfData": [
+    {
+      "pnfId": "123",
+      "pnfName": "pdf123",
+      "pnfdId": "123",
+      "pnfProfileId": "123",
+      "cpData": [
+        {
+          "cpInstanceId": "123",
+          "cpdId": "123",
+          "cpProtocolData": [
+            {
+              "layerProtocol": "IP_OVER_ETHERNET",
+              "ipOverEthernet": {
+                "macAddress": "7C-76-35-4C-31-78",
+                "ipAddresses": [
+                  {
+                    "type": "IPV4",
+                    "fixedAddresses": [
+                      "192.168.43.10"
+                    ],
+                    "numDynamicAddresses": 0,
+                    "addressRange": {
+                      "minAddress": "192.168.253.0",
+                      "maxAddress": "192.168.253.255"
+                    },
+                    "subnetId": "255.255.255.0"
+                  }
+                ]
+              }
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/instantiate_ns_instance.json b/tests/vfc/nfvo-lcm/jsoninput/instantiate_ns_instance.json
new file mode 100644
index 0000000..75a1945
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/instantiate_ns_instance.json
@@ -0,0 +1,127 @@
+{
+  "nsFlavourId": "nsFlavour123",
+  "sapData": [
+    {
+      "sapdId": "23",
+      "sapName": "sap123",
+      "description": "sap desc",
+      "sapProtocolData": [
+        {
+          "layerProtocol": "IP_OVER_ETHERNET",
+          "ipOverEthernet": {
+            "macAddress": "7C-76-35-4C-31-78",
+            "ipAddresses": [
+              {
+                "type": "IPV4",
+                "fixedAddresses": [
+                  "192.168.43.12"
+                ],
+                "numDynamicAddresses": 0,
+                "addressRange": {
+                  "minAddress": "192.168.253.0",
+                  "maxAddress": "192.168.253.255"
+                },
+                "subnetId": "255.255.255.0"
+              }
+            ]
+          }
+        }
+      ]
+    }
+  ],
+  "addpnfData": [
+    {
+      "pnfId": "pnf123",
+      "pnfName": "pnfName123",
+      "pnfdId": "pnfd123",
+      "pnfProfileId": "pnfPro123",
+      "cpData": [
+        {
+          "cpInstanceI16": {
+            "IdentifierInPnf": {}
+          },
+          "cpdId": {
+            "IdentifierInNsd": {}
+          },
+          "cpProtocolData": [
+            {
+              "layerProtocol": "IP_OVER_ETHERNET",
+              "ipOverEthernet": {
+                "macAddress": "7C-76-35-4C-31-78",
+                "ipAddresses": [
+                  {
+                    "type": "IPV4",
+                    "fixedAddresses": [
+                      "192.168.43.15"
+                    ],
+                    "numDynamicAddresses": 0,
+                    "addressRange": {
+                      "minAddress": "192.168.43.0",
+                      "maxAddress": "192.168.43.255"
+                    },
+                    "subnetId": "255.255.255.0"
+                  }
+                ]
+              }
+            }
+          ]
+        }
+      ]
+    }
+  ],
+  "vnfInstanceData": [
+    {
+      "vnfInstanceId": "vnf123",
+      "vnfProfileId": "vnfPro123"
+    }
+  ],
+  "nestedNsInstanceId": [
+    "nested123"
+  ],
+  "localizationLanguage": [
+    {
+      "vnfProfileId": "string",
+      "locationConstraints": {
+        "countryCode": "460",
+        "civicAddressElement": [
+          {
+            "caType": "type1",
+            "caValue": "123"
+          }
+        ]
+      }
+    }
+  ],
+  "additionalParamForNs": {
+    "additionalProp1": "nsProp1",
+    "additionalProp2": "nsProp2",
+    "additionalProp3": "nsProp3"
+  },
+  "additionalParamsForVnf": [
+    {
+      "vnfProfileId": "vnfPro456",
+      "additionalParams": {
+        "additionalProp1": "vnfProp1",
+        "additionalProp2": "vnfProp2",
+        "additionalProp3": "vnfProp3"
+      }
+    }
+  ],
+  "startTime": "2019-10-08T01:45:26.226Z",
+  "nsInstantiationLevelId": "345678",
+  "additionalAffinityOrAntiAffiniityRule": [
+    {
+      "vnfdId": [
+        "123"
+      ],
+      "vnfProfileId": [
+        "456"
+      ],
+      "vnfInstanceId": [
+        "789"
+      ],
+      "affinityOrAntiAffiinty": "AFFINITY",
+      "scope": "NFVI_POP"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/postdeal_ns.json b/tests/vfc/nfvo-lcm/jsoninput/postdeal_ns.json
new file mode 100644
index 0000000..c518885
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/postdeal_ns.json
@@ -0,0 +1,3 @@
+{
+  "status": "ongoing"
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/scale_ns.json b/tests/vfc/nfvo-lcm/jsoninput/scale_ns.json
new file mode 100644
index 0000000..e7f729d
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/scale_ns.json
@@ -0,0 +1,14 @@
+{
+  "scaleType": "ns",
+  "scaleNsData": [
+    {
+      "scaleNsByStepsData": [
+        {
+          "aspectId": "123",
+          "numberOfSteps": "3",
+          "scalingDirection": "north"
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/scale_ns_instance.json b/tests/vfc/nfvo-lcm/jsoninput/scale_ns_instance.json
new file mode 100644
index 0000000..73d27f6
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/scale_ns_instance.json
@@ -0,0 +1,59 @@
+{
+  "scaleType": "ns_instance",
+  "scaleNsData": [
+    {
+      "vnfInstanceToBeAdded": [
+        {
+          "vnfInstanceId": "vnf456",
+          "vnfProfileId": "vnfPro456"
+        }
+      ],
+      "vnfInstanceToBeRemoved": [
+        ""
+      ],
+      "scaleNsByStepsData": {
+        "scalingDirection": "SCALE_IN",
+        "aspectId": "123",
+        "numberOfSteps": "2"
+      },
+      "scaleNsToLevelData": {
+        "nsInstantiationLevel": "1",
+        "nsScaleInfo": [
+          {
+            "nsScalingAspectId": "2",
+            "nsScaleLevelId": "3"
+          }
+        ]
+      },
+      "additionalParamsForNs": {
+        "additionalProp1": "nsProp11",
+        "additionalProp2": "nsProp12",
+        "additionalProp3": "nsProp13"
+      },
+      "additionalParamsForVnf": [
+        {
+          "vnfProfileId": "string",
+          "additionalParams": {
+            "additionalProp1": "vnfProp11",
+            "additionalProp2": "vnfProp12",
+            "additionalProp3": "vnfProp13"
+          }
+        }
+      ],
+      "locationConstraints": [
+        {
+          "vnfProfileId": "vnfPro789",
+          "locationConstraints": {
+            "countryCode": "460",
+            "civicAddressElement": [
+              {
+                "caType": "type2",
+                "caValue": "789"
+              }
+            ]
+          }
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/terminate_ns.json b/tests/vfc/nfvo-lcm/jsoninput/terminate_ns.json
new file mode 100644
index 0000000..9ae8b32
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/terminate_ns.json
@@ -0,0 +1,4 @@
+{
+  "terminationType": "ns",
+  "gracefulTerminationTimeout": "1602668855"
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/terminate_ns_instance.json b/tests/vfc/nfvo-lcm/jsoninput/terminate_ns_instance.json
new file mode 100644
index 0000000..d03830a
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/terminate_ns_instance.json
@@ -0,0 +1,3 @@
+{
+  "terminationTime": "1602668880"
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/terminate_vnf.json b/tests/vfc/nfvo-lcm/jsoninput/terminate_vnf.json
new file mode 100644
index 0000000..9884b6a
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/terminate_vnf.json
@@ -0,0 +1,4 @@
+{
+  "terminationType": "vnf",
+  "gracefulTerminationTimeout": "3600"
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/update_job_ns.json b/tests/vfc/nfvo-lcm/jsoninput/update_job_ns.json
new file mode 100644
index 0000000..3682bcf
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/update_job_ns.json
@@ -0,0 +1,5 @@
+{
+  "progress": "updating",
+  "desc": "update job des",
+  "errcode": "405"
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/update_ns.json b/tests/vfc/nfvo-lcm/jsoninput/update_ns.json
new file mode 100644
index 0000000..2722b3a
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/update_ns.json
@@ -0,0 +1,12 @@
+{
+  "updateType": "ADD_VNF",
+  "addVnfInstance": [
+    {
+      "vnfInstanceId": "456",
+      "vnfProfileId": "456"
+    }
+  ],
+  "updateTime": {
+    "DateTime": {}
+  }
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/jsoninput/update_ns_instance.json b/tests/vfc/nfvo-lcm/jsoninput/update_ns_instance.json
new file mode 100644
index 0000000..2722b3a
--- /dev/null
+++ b/tests/vfc/nfvo-lcm/jsoninput/update_ns_instance.json
@@ -0,0 +1,12 @@
+{
+  "updateType": "ADD_VNF",
+  "addVnfInstance": [
+    {
+      "vnfInstanceId": "456",
+      "vnfProfileId": "456"
+    }
+  ],
+  "updateTime": {
+    "DateTime": {}
+  }
+}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-lcm/test.robot b/tests/vfc/nfvo-lcm/test.robot
index 83040ad..452392f 100644
--- a/tests/vfc/nfvo-lcm/test.robot
+++ b/tests/vfc/nfvo-lcm/test.robot
@@ -14,12 +14,47 @@
 ${get_ns_url}          /api/nslcm/v1/ns
 ${get_subscriptions_url}          /api/nslcm/v1/subscriptions
 ${healthcheck_url}     /api/nslcm/v1/health_check
+${get_job_url}     /api/nslcm/v1/jobs
+${vnfs_url}     /api/nslcm/v1/ns/vnfs
+${terminate_vnfs_url}     /api/nslcm/v1/ns/terminatevnf
+${vls_url}     /api/nslcm/v1/ns/vls
+${sfcs_url}     /api/nslcm/v1/ns/sfcs
+${pnfs_url}     /api/nslcm/v1/pnfs
+
+${ns_instances_url}    /api/nslcm/v1/ns_instances
 
 #json files
 ${create_ns_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/create_ns.json
+${heal_ns_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/heal_ns.json
+${instantiate_ns_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/instantiate_ns.json
+${postdeal_ns_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/postdeal_ns.json
+${scale_ns_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/scale_ns.json
+${update_ns_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/update_ns.json
+${terminate_ns_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/terminate_ns.json
+${update_job_ns_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/update_job_ns.json
+${create_vnf_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/create_vnf.json
+${terminate_vnf_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/terminate_vnf.json
+${create_vl_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/create_vl.json
+${create_sfcs_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/create_sfc.json
+${create_subscriptions_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/create_subscription.json
+${create_pnfs_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/create_pnf.json
+
+${create_ns_instance_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/create_ns_instance.json
+${heal_ns_instance_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/heal_ns_instance.json
+${instantiate_ns_instance_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/instantiate_ns_instance.json
+${postdeal_ns_instance_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/postdeal_ns_instance.json
+${scale_ns_instance_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/scale_ns_instance.json
+${update_ns_instance_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/update_ns_instance.json
+${terminate_ns_instance_json}    ${SCRIPTS}/../tests/vfc/nfvo-lcm/jsoninput/terminate_ns_instance.json
 
 #global variables
 ${nsInstId}
+${jobInstId}
+${vnfInstId}
+${vlInstId}
+${sfcInstId}
+${pnfId}
+${nsInstanceId}
 
 *** Test Cases ***
 NslcmSwaggerTest
@@ -58,7 +93,201 @@
     ${nsInstId}=    Convert To String      ${response_json['nsInstanceId']}
     Set Global Variable     ${nsInstId}
 
-DeleteNS Test
+CreateSfcTest
+    [Documentation]    Create sfc function test
+    ${json_value}=     json_from_file      ${create_sfcs_json}
+    Set To Dictionary    ${json_value}    nsInstanceId=${nsInstId}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${sfcs_url}    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+    ${response_json}    json.loads    ${resp.content}
+    ${sfcInstId}=    Convert To String      ${response_json['sfcInstId']}
+    Set Global Variable     ${sfcInstId}
+
+QuerySfcTest
+    [Documentation]    Query sfc function test
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    ${resp}=  Get Request    web_session    ${sfcs_url}/${sfcInstId}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+DeleteSfcTest
+    [Documentation]    Delete sfc function test
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    ${resp}=    Delete Request    web_session     ${sfcs_url}/${sfcInstId}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+CreateVnfTest
+    [Documentation]    Create vnf function test
+    ${json_value}=     json_from_file      ${create_vnf_json}
+    Set To Dictionary    ${json_value}    nsInstanceId=${nsInstId}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${vnfs_url}    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+    ${response_json}    json.loads    ${resp.content}
+    ${vnfInstId}=    Convert To String      ${response_json['vnfInstId']}
+    Set Global Variable     ${vnfInstId}
+
+QueryVnfTest
+    [Documentation]    Query vnf function test
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    ${resp}=  Get Request    web_session    ${vnfs_url}/${vnfInstId}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+TerminateVnfTest
+    [Documentation]    Terminate vnf function test
+    ${json_value}=     json_from_file      ${terminate_vnf_json}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${terminate_vnfs_url}    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+CreateVlTest
+    [Documentation]    Create vl function test
+    ${json_value}=     json_from_file      ${create_vl_json}
+	Set To Dictionary    ${json_value}    nsInstanceId=${nsInstId}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${vls_url}    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+    ${response_json}    json.loads    ${resp.content}
+    ${vlInstId}=    Convert To String      ${response_json['vlId']}
+    Set Global Variable     ${vlInstId}
+
+QueryVlTest
+    [Documentation]    Query vl function test
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    ${resp}=  Get Request    web_session    ${vls_url}/${vlInstId}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+DeleteVlTest
+    [Documentation]    Delete vl function test
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    ${resp}=    Delete Request    web_session     ${vls_url}/${vlInstId}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+InstantiateNSTest
+    [Documentation]    Instantiate Ns function test
+    ${json_value}=     json_from_file      ${instantiate_ns_json}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${create_ns_url}/${nsInstId}/instantiate    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+QueryNSTest
+    [Documentation]    Query Ns function test
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    ${resp}=  Get Request    web_session    ${get_ns_url}/${nsInstId}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+ScaleNSTest
+    [Documentation]    Scale Ns function test
+    ${json_value}=     json_from_file      ${scale_ns_json}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${create_ns_url}/${nsInstId}/scale    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+HealNSTest
+    [Documentation]    Heal Ns function test
+    ${json_value}=     json_from_file      ${heal_ns_json}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${create_ns_url}/${nsInstId}/heal    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+    ${response_json}    json.loads    ${resp.content}
+    ${jobInstId}=    Convert To String      ${response_json['jobId']}
+    Set Global Variable     ${jobInstId}
+
+UpdateJobTest
+    [Documentation]    Update Ns Job function test
+    ${json_value}=     json_from_file      ${update_job_ns_json}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${get_job_url}/${jobInstId}    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+    ${response_json}    json.loads    ${resp.content}
+
+GetJobTest
+    [Documentation]    Query Ns Job function test
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    ${resp}=  Get Request    web_session    ${get_job_url}/${jobInstId}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+PostdealNSTest
+    [Documentation]    Postdeal Ns function test
+    ${json_value}=     json_from_file      ${postdeal_ns_json}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${create_ns_url}/${nsInstId}/postdeal    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+UpdateNSTest
+    [Documentation]    Scale Ns function test
+    ${json_value}=     json_from_file      ${update_ns_json}
+    ${json_string}=     string_from_json   ${json_value}
+    Log    ${json_string}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${create_ns_url}/${nsInstId}/update    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+TerminateNSTest
+    [Documentation]    Terminate Ns function test
+    ${json_value}=     json_from_file      ${terminate_ns_json}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${create_ns_url}/${nsInstId}/terminate    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+DeleteNSTest
     [Documentation]    Delete NS function test
     ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
     Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
@@ -85,10 +314,153 @@
     ${responese_code}=     Convert To String      ${resp.status_code}
     List Should Contain Value    ${return_ok_list}   ${responese_code}
 
+CreatePnfsTest
+    [Documentation]    Create pnf function test
+    ${json_value}=     json_from_file      ${create_pnfs_json}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${pnfs_url}    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+    ${response_json}    json.loads    ${resp.content}
+    ${pnfId}=    Convert To String      ${response_json['pnfId']}
+    Set Global Variable     ${pnfId}
+
+QueryAllPnfsTest
+    [Documentation]    Query all pnfs function test
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    ${resp}=  Get Request    web_session    ${pnfs_url}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+QueryPnfsTest
+    [Documentation]    Query pnf function test
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    ${resp}=  Get Request    web_session    ${pnfs_url}/${pnfId}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+DeletePnfTest
+    [Documentation]    Delete pnf function test
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    ${resp}=    Delete Request    web_session     ${pnfs_url}/${pnfId}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+CreateNSInstanceTest
+    [Documentation]    Create NS Instance function test
+    ${json_value}=     json_from_file      ${create_ns_instance_json}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${ns_instances_url}    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+    ${response_json}    json.loads    ${resp.content}
+    ${nsInstanceId}=    Convert To String      ${response_json['id']}
+    Set Global Variable     ${nsInstanceId}
+
+QueryNSInstancesTest
+    [Documentation]    Query Ns Instances function test
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    ${resp}=  Get Request    web_session    ${ns_instances_url}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+QueryNSIntanceTest
+    [Documentation]    Query One Ns Instance function test
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    ${resp}=  Get Request    web_session    ${ns_instances_url}/${nsInstanceId}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+InstantiateNSInstanceTest
+    [Documentation]    Instantiate Ns function test
+    ${json_value}=     json_from_file      ${instantiate_ns_instance_json}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${ns_instances_url}/${nsInstanceId}/instantiate    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+ScaleNSInstanceTest
+    [Documentation]    Scale Ns Instance function test
+    ${json_value}=     json_from_file      ${scale_ns_instance_json}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${ns_instances_url}/${nsInstanceId}/scale    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+HealNSInstanceTest
+    [Documentation]    Heal Ns Instance function test
+    ${json_value}=     json_from_file      ${heal_ns_instance_json}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${ns_instances_url}/${nsInstanceId}/heal    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+UpdateNSInstanceTest
+    [Documentation]    Scale Ns Instance function test
+    ${json_value}=     json_from_file      ${update_ns_instance_json}
+    ${json_string}=     string_from_json   ${json_value}
+    Log    ${json_string}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${ns_instances_url}/${nsInstId}/update    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+TerminateNSInstanceTest
+    [Documentation]    Terminate Ns Instance function test
+    ${json_value}=     json_from_file      ${terminate_ns_instance_json}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${ns_instances_url}/${nsInstanceId}/terminate    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+DeleteNSInstanceTest
+    [Documentation]    Delete NS Instance function test
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    ${resp}=    Delete Request    web_session     ${ns_instances_url}/${nsInstanceId}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
+LcmCreateSubscriptionsTest
+    [Documentation]    Postdeal Ns function test
+    ${json_value}=     json_from_file      ${create_subscriptions_json}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${get_subscriptions_url}    ${json_string}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+
 LcmGetSubscriptionsTest
     [Documentation]    get subscriptions for nslcm by MSB
     ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
     Create Session    web_session    http://${MSB_IAG_IP}:80    headers=${headers}
     ${resp}=  Get Request    web_session    ${get_subscriptions_url}
     ${responese_code}=     Convert To String      ${resp.status_code}
-    List Should Contain Value    ${return_ok_list}   ${responese_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
\ No newline at end of file