Add csit case for Individual VNF Package and Content 31/91131/4
authorOlivia.Zhan <zhan.jie1@zte.com.cn>
Wed, 10 Jul 2019 07:27:46 +0000 (15:27 +0800)
committerOlivia.Zhan <zhan.jie1@zte.com.cn>
Wed, 10 Jul 2019 07:58:55 +0000 (15:58 +0800)
Issue-ID: INT-1015
Signed-off-by: Olivia.Zhan <zhan.jie1@zte.com.cn>
Change-Id: I6626ff1937cc8bbfafcc5707e4bc541e1579998a

plans/vfc-nfvo-catalog/sanity-check/testplan.txt
tests/vfc/nfvo-catalog/IndividualVNFPackage.robot [new file with mode: 0644]
tests/vfc/nfvo-catalog/VNFPackageContent.robot [new file with mode: 0644]
tests/vfc/nfvo-catalog/files/vgw.csar [new file with mode: 0644]

index d6656fe..ad6cad5 100644 (file)
@@ -4,3 +4,5 @@ vfc/nfvo-catalog/test.robot
 vfc/nfvo-catalog/Subscriptions.robot
 vfc/nfvo-catalog/IndividualSubscription.robot
 vfc/nfvo-catalog/VNFPackages.robot
+vfc/nfvo-catalog/IndividualVNFPackage.robot
+vfc/nfvo-catalog/VNFPackageContent.robot
diff --git a/tests/vfc/nfvo-catalog/IndividualVNFPackage.robot b/tests/vfc/nfvo-catalog/IndividualVNFPackage.robot
new file mode 100644 (file)
index 0000000..4c35a39
--- /dev/null
@@ -0,0 +1,68 @@
+*** 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 for pre-condition
+    Log    Create new VNF Package Resource for pre-condition
+    ${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 Individual VNF Package
+    Log    GET Individual VNF Package
+    [Documentation]    The objective is to test the retrieval of an individual VNF package 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}/${packageId}
+    Should Be Equal As Strings    200    ${resp.status_code}
+    ${response_json}    json.loads    ${resp.content}
+    Should Be Equal As Strings    ${packageId}    ${response_json['id']}
+       Should Be Equal As Strings    DISABLED    ${response_json['operationalState']}
+
+PUT Individual VNF Package - Method not implemented
+    Log    PUT Individual VNF Package - Method not implemented
+    [Documentation]    The objective is to test that PUT method is not allowed to modify a VNF Package
+    ${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}/${packageId}
+    Should Be Equal As Strings    405    ${resp.status_code}
+
+POST Individual VNF Package - Method not implemented
+    Log    POST Individual VNF Package - Method not implemented
+    [Documentation]    The objective is to test that POST method is not allowed to create new VNF Package
+    ${headers}            Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session        web_session          http://${CATALOG_IP}:${catalog_port}      headers=${headers}
+    ${resp}=              Post Request          web_session     ${vnf_packages_url}/${packageId}
+    Should Be Equal As Strings    405    ${resp.status_code}
+
+DELETE Individual VNF Package
+    Log   DELETE Individual VNF Package
+       [Documentation]    The objective is to test the deletion of an individual 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}
diff --git a/tests/vfc/nfvo-catalog/VNFPackageContent.robot b/tests/vfc/nfvo-catalog/VNFPackageContent.robot
new file mode 100644 (file)
index 0000000..7c794b2
--- /dev/null
@@ -0,0 +1,97 @@
+*** 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
+${request_csar}    ${SCRIPTS}/../tests/vfc/nfvo-catalog/files/vgw.csar
+
+
+#global variables
+${packageId}
+
+*** Test Cases ***
+Create new VNF Package Resource for pre-condition
+    Log    Create new VNF Package Resource for pre-condition
+    ${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}
+
+Upload VNF Package Content
+    Log   Upload VNF Package Content
+    [Documentation]    The objective is to test the upload of a VNF Package Content in Zip format.
+    Create Session    web_session    http://${CATALOG_IP}:${catalog_port}
+    ${headers}    Create Dictionary    Accept=application/json
+    &{fileParts}=    Create Dictionary
+    Create Multi Part   ${fileParts}  file  ${request_csar}
+    Log  ${fileParts}
+    ${resp}=  Put Request  web_session  ${vnf_packages_url}/${packageId}/package_content  files=${fileParts}  headers=${headers}
+    Log  ${resp.status_code}    
+    Should Be Equal As Strings    202    ${resp.status_code}
+    Log    Received 202 Accepted as expected
+  
+GET Individual VNF Package Content
+    Log    GET Individual VNF Package Content
+    [Documentation]    The objective is to test the retrieval of an individual VNF package content
+    ${headers}            Create Dictionary    Content-Type=application/json
+    Create Session        web_session          http://${CATALOG_IP}:${catalog_port}      headers=${headers}
+    ${resp}=              Get Request          web_session     ${vnf_packages_url}/${packageId}/package_content
+    Should Be Equal As Strings    200    ${resp.status_code}
+
+Check Postcondition
+    Log    Check Postcondition
+    ${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}/${packageId}
+    Should Be Equal As Strings    200    ${resp.status_code}
+    ${response_json}    json.loads    ${resp.content}
+    Should Be Equal As Strings    ONBOARDED    ${response_json['onboardingState']}
+       
+POST Individual VNF Package Content - Method not implemented
+    Log    POST Individual VNF Package Content - Method not implemented
+    [Documentation]    The objective is to test that POST method is not allowed to create new VNF Package content
+    ${headers}            Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session        web_session          http://${CATALOG_IP}:${catalog_port}      headers=${headers}
+    ${resp}=              Post Request          web_session     ${vnf_packages_url}/${packageId}/package_content
+    Should Be Equal As Strings    405    ${resp.status_code}
+
+PATCH Individual VNF Package Content - Method not implemented
+    Log    PATCH Individual VNF Package Content - Method not implemented
+    [Documentation]    The objective is to test that PATCH  method is not allowed to update a VNF Package content
+    ${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}/${packageId}/package_content
+    Should Be Equal As Strings    405    ${resp.status_code}
+
+DELETE Individual VNF Package Content - Method not implemented
+    Log    DELETE Individual VNF Package Content - Method not implemented
+    [Documentation]    The objective is to test that DELETE  method is not allowed to delete a VNF Package content
+    ${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}/package_content
+    Should Be Equal As Strings    405    ${resp.status_code}
+
+*** Keywords ***
+Create Multi Part
+    [Arguments]  ${addTo}  ${partName}  ${filePath}  ${contentType}=${None}  ${content}=${None}
+    ${fileData}=  Run Keyword If  '''${content}''' != '''${None}'''  Set Variable  ${content}
+    ...            ELSE  Get Binary File  ${filePath}
+    ${fileDir}  ${fileName}=  Split Path  ${filePath}
+    ${partData}=  Create List  ${fileName}  ${fileData}  ${contentType}
+    Set To Dictionary  ${addTo}  ${partName}=${partData}
\ No newline at end of file
diff --git a/tests/vfc/nfvo-catalog/files/vgw.csar b/tests/vfc/nfvo-catalog/files/vgw.csar
new file mode 100644 (file)
index 0000000..79e0d20
Binary files /dev/null and b/tests/vfc/nfvo-catalog/files/vgw.csar differ