Add csit case for NSD Content 03/91403/1
authorOlivia.Zhan <zhan.jie1@zte.com.cn>
Sat, 13 Jul 2019 05:52:28 +0000 (13:52 +0800)
committerOlivia.Zhan <zhan.jie1@zte.com.cn>
Sat, 13 Jul 2019 05:52:28 +0000 (13:52 +0800)
Issue-ID: INT-1015
Signed-off-by: Olivia.Zhan <zhan.jie1@zte.com.cn>
Change-Id: Ie57a58719632ff4be134cde6bea6de277e8cde6e

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

index 49b8e6c..56c96d3 100644 (file)
@@ -7,6 +7,7 @@ vfc/nfvo-catalog/VNFPackages.robot
 vfc/nfvo-catalog/IndividualVNFPackage.robot
 vfc/nfvo-catalog/VNFPackageContent.robot
 vfc/nfvo-catalog/PNFDescriptors.robot
+vfc/nfvo-catalog/IndividualPnfDescriptor.robot
 vfc/nfvo-catalog/NSDescriptors.robot
 vfc/nfvo-catalog/IndividualNSDescriptor.robot
-vfc/nfvo-catalog/IndividualPnfDescriptor.robot
+vfc/nfvo-catalog/NSDContent.robot
diff --git a/tests/vfc/nfvo-catalog/NSDContent.robot b/tests/vfc/nfvo-catalog/NSDContent.robot
new file mode 100644 (file)
index 0000000..cea69b1
--- /dev/null
@@ -0,0 +1,106 @@
+*** 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
+${ns_descriptors_url}         /api/nsd/v1/ns_descriptors
+
+#json files
+${request_json}    ${SCRIPTS}/../tests/vfc/nfvo-catalog/jsons/CreateNsdInfoRequest.json
+${request_csar}    ${SCRIPTS}/../tests/vfc/nfvo-catalog/files/ns_vgw.csar
+
+#global variables
+${nsdId}
+
+*** Test Cases ***
+Create new Network Service Descriptor Resource for pre-condition
+    Log    Create new Network Service Descriptor 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     ${ns_descriptors_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['nsdOnboardingState']}
+    ${nsdId}=    Convert To String      ${response_json['id']}
+    Set Global Variable     ${nsdId}
+
+Check Precondition
+    Log    Check Precondition
+    ${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    ONBOARDED    ${response_json[0]['onboardingState']}
+
+Upload NSD Content as Zip file
+    Log   Upload NSD Content as Zip file
+    [Documentation]    The objective is to test the upload of an NSD 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  ${ns_descriptors_url}/${nsdId}/nsd_content  files=${fileParts}  headers=${headers}
+    Log  ${resp.status_code}    
+    Should Be Equal As Strings    204    ${resp.status_code}
+    Log    Received 204 Accepted as expected
+  
+GET NSD Content
+    Log    GET NSD Content
+    [Documentation]    The objective is to test the retrieval of the NSD Content
+    ${headers}            Create Dictionary    Content-Type=application/json
+    Create Session        web_session          http://${CATALOG_IP}:${catalog_port}      headers=${headers}
+    ${resp}=              Get Request          web_session     ${ns_descriptors_url}/${nsdId}/nsd_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     ${ns_descriptors_url}/${nsdId}
+    Should Be Equal As Strings    200    ${resp.status_code}
+    ${response_json}    json.loads    ${resp.content}
+    Should Be Equal As Strings    ONBOARDED    ${response_json['nsdOnboardingState']}
+       
+POST NSD Content - Method not implemented
+    Log    POST NSD Content - Method not implemented
+    [Documentation]    The objective is to test that POST method is not allowed to create new Network Service Descriptor 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     ${ns_descriptors_url}/${nsdId}/nsd_content
+    Should Be Equal As Strings    405    ${resp.status_code}
+
+PATCH NSD Content - Method not implemented
+    Log    PATCH NSD Content - Method not implemented
+    [Documentation]    The objective is to test that PATCH  method is not allowed to update a Network Service Descriptor 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     ${ns_descriptors_url}/${nsdId}/nsd_content
+    Should Be Equal As Strings    405    ${resp.status_code}
+
+DELETE NSD Content - Method not implemented
+    Log    DELETE NSD Content - Method not implemented
+    [Documentation]    The objective is to test that DELETE  method is not allowed to delete a Network Service Descriptor 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     ${ns_descriptors_url}/${nsdId}/nsd_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/ns_vgw.csar b/tests/vfc/nfvo-catalog/files/ns_vgw.csar
new file mode 100644 (file)
index 0000000..0eb32e7
Binary files /dev/null and b/tests/vfc/nfvo-catalog/files/ns_vgw.csar differ
index 79e0d20..927812a 100644 (file)
Binary files a/tests/vfc/nfvo-catalog/files/vgw.csar and b/tests/vfc/nfvo-catalog/files/vgw.csar differ