Add csit case for VNF Packages

Issue-ID: INT-1015
Signed-off-by: Olivia.Zhan <zhan.jie1@zte.com.cn>
Change-Id: Ic7e8718f037d11bf7d1ea806e16519e6cfa99d46
diff --git a/tests/vfc/nfvo-catalog/VNFPackages.robot b/tests/vfc/nfvo-catalog/VNFPackages.robot
new file mode 100644
index 0000000..52e5004
--- /dev/null
+++ b/tests/vfc/nfvo-catalog/VNFPackages.robot
@@ -0,0 +1,74 @@
+*** Settings ***
+Resource    ../../common.robot
+Library     Collections
+Library     RequestsLibrary
+Library     OperatingSystem
+Library     json
+Library     HttpLibrary.HTTP
+
+*** Variables ***
+${catalog_port}            8806
+${vnf_packages_url}         /api/vnfpkgm/v1/vnf_packages
+
+#json files
+${request_json}    ${SCRIPTS}/../tests/vfc/nfvo-catalog/jsons/CreateVnfPkgInfoRequest.json
+
+#global variables
+${packageId}
+
+*** Test Cases ***
+Create new VNF Package Resource
+    Log    Create new VNF Package Resource
+    [Documentation]    The objective is to test the creation of a new VNF Package Resource
+    ${json_value}=     json_from_file      ${request_json}
+    ${json_string}=     string_from_json   ${json_value}
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${CATALOG_IP}:${catalog_port}    headers=${headers}
+    Set Request Body    ${json_string}
+    ${resp}=    Post Request    web_session     ${vnf_packages_url}    ${json_string}
+    Should Be Equal As Strings    201   ${resp.status_code}
+    ${response_json}    json.loads    ${resp.content}
+    Should Be Equal As Strings    CREATED    ${response_json['onboardingState']}
+    ${packageId}=    Convert To String      ${response_json['id']}
+    Set Global Variable     ${packageId}
+
+GET all VNF Packages
+    Log    GET all VNF Packages
+    [Documentation]    The objective is to test the retrieval of all the available VNF packages information
+    ${headers}            Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session        web_session          http://${CATALOG_IP}:${catalog_port}      headers=${headers}
+    ${resp}=              Get Request          web_session     ${vnf_packages_url}
+    Should Be Equal As Strings    200    ${resp.status_code}
+    ${response_json}    json.loads    ${resp.content}
+    Should Be Equal As Strings    ${packageId}    ${response_json[0]['id']}
+
+PUT all VNF Packages - Method not implemented
+    Log    PUT all VNF Packages - Method not implemented
+    [Documentation]    The objective is to test that PUT method is not allowed to modify existing VNF Packages
+    ${headers}            Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session        web_session          http://${CATALOG_IP}:${catalog_port}      headers=${headers}
+    ${resp}=              Put Request          web_session     ${vnf_packages_url}
+    Should Be Equal As Strings    405    ${resp.status_code}
+
+PATCH all VNF Packages - Method not implemented
+    Log    PATCH all VNF Packages - Method not implemented
+    [Documentation]    The objective is to test that PATCH method is not allowed to update existing VNF Packages
+    ${headers}            Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session        web_session          http://${CATALOG_IP}:${catalog_port}      headers=${headers}
+    ${resp}=              Patch Request          web_session     ${vnf_packages_url}
+    Should Be Equal As Strings    405    ${resp.status_code}
+
+DELETE all VNF Packages - Method not implemented
+    Log    DELETE all VNF Packages - Method not implemented
+    [Documentation]    The objective is to test that DELETE method is not allowed to delete existing VNF Packages
+    ${headers}            Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session        web_session          http://${CATALOG_IP}:${catalog_port}      headers=${headers}
+    ${resp}=              Delete Request          web_session     ${vnf_packages_url}
+    Should Be Equal As Strings    405    ${resp.status_code}
+
+DELETE VNF Package
+    Log   DELETE VNF Package
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${CATALOG_IP}:${catalog_port}    headers=${headers}
+    ${resp}=    Delete Request    web_session     ${vnf_packages_url}/${packageId}
+    Should Be Equal As Strings    204    ${resp.status_code}