From 0e0090389628c7d225967ca40ccd06894eb3ffeb Mon Sep 17 00:00:00 2001 From: Gerard Hickey Date: Tue, 5 Mar 2019 15:45:31 +0000 Subject: [PATCH] New testcases to test xml validation Change-Id: If1147eb8e7536d452092e9b716582dfb2a22e752 Signed-off-by: Gerard Hickey Issue-ID: INT-863 --- .../pmmapper/assets/meas_result.xml | 24 +++++++++ .../pmmapper/assets/no_managed_element.xml | 27 ++++++++++ .../pmmapper/assets/no_measdata.xml | 11 ++++ .../pmmapper/assets/valid_metadata.json | 12 +++++ tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot | 63 +++++++++++++++++++++- 5 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 tests/dcaegen2-pmmapper/pmmapper/assets/meas_result.xml create mode 100644 tests/dcaegen2-pmmapper/pmmapper/assets/no_managed_element.xml create mode 100644 tests/dcaegen2-pmmapper/pmmapper/assets/no_measdata.xml create mode 100644 tests/dcaegen2-pmmapper/pmmapper/assets/valid_metadata.json diff --git a/tests/dcaegen2-pmmapper/pmmapper/assets/meas_result.xml b/tests/dcaegen2-pmmapper/pmmapper/assets/meas_result.xml new file mode 100644 index 00000000..269fdf1d --- /dev/null +++ b/tests/dcaegen2-pmmapper/pmmapper/assets/meas_result.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + a b c + + 76 27 98 + false + + + + + + + diff --git a/tests/dcaegen2-pmmapper/pmmapper/assets/no_managed_element.xml b/tests/dcaegen2-pmmapper/pmmapper/assets/no_managed_element.xml new file mode 100644 index 00000000..23e5c215 --- /dev/null +++ b/tests/dcaegen2-pmmapper/pmmapper/assets/no_managed_element.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + a + b + c + + 86 + 67 + 14 + false + + + + + + + \ No newline at end of file diff --git a/tests/dcaegen2-pmmapper/pmmapper/assets/no_measdata.xml b/tests/dcaegen2-pmmapper/pmmapper/assets/no_measdata.xml new file mode 100644 index 00000000..855b2e91 --- /dev/null +++ b/tests/dcaegen2-pmmapper/pmmapper/assets/no_measdata.xml @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/tests/dcaegen2-pmmapper/pmmapper/assets/valid_metadata.json b/tests/dcaegen2-pmmapper/pmmapper/assets/valid_metadata.json new file mode 100644 index 00000000..3a2340f2 --- /dev/null +++ b/tests/dcaegen2-pmmapper/pmmapper/assets/valid_metadata.json @@ -0,0 +1,12 @@ +{ + "productName": "NrRadio", + "vendorName": "Ericsson", + "lastEpochMicrosec": "1538478000000", + "sourceName": "oteNB5309", + "startEpochMicrosec": "1538478900000", + "timeZoneOffset": "UTC+05.00", + "location": "ftpes://192.168.0.101:22/ftp/rop/A20161224.1045-1100.bin.gz", + "compression": "gzip", + "fileFormatType": "org.3GPP.32.435#measCollec", + "fileFormatVersion": "V9" + } \ No newline at end of file diff --git a/tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot b/tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot index 71344632..363c95c1 100644 --- a/tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot +++ b/tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot @@ -14,6 +14,12 @@ ${CLI_EXEC_CLI_CONFIG} { head -n 5 | tail -1;} < /tmp/pmmapper ${CLI_EXEC_CLI_SUBS} curl -k https://${DR_PROV_IP}:8443/internal/prov ${PMMAPPER_BASE_URL} http://${PMMAPPER_IP}:8081 ${DELIVERY_ENDPOINT} /delivery +${HEALTHCHECK_ENDPOINT} /healthcheck +${NO_MANAGED_ELEMENT_PATH} %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/no_managed_element.xml +${NO_MEASDATA_PATH} %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/no_measdata.xml +${MEASD_RESULT_PATH} %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/meas_result.xml +${VALID_METADATA_PATH} %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/valid_metadata.json +${CLI_EXEC_CLI_PM_LOG} docker exec pmmapper /bin/sh -c "tail -5 /var/log/ONAP/dcaegen2/services/pm-mapper/pm-mapper_output.log" *** Test Cases *** @@ -33,6 +39,14 @@ Verify 3GPP PM Mapper Subscribes to Data Router Should Be Equal As Strings ${cli_cmd_output.rc} 0 Should Contain ${cli_cmd_output.stdout} 3gpppmmapper +Verify Health Check returns 200 when a REST GET request to healthcheck url + [Tags] PM_MAPPER_03 + [Documentation] Verify Health Check returns 200 when a REST GET request to healthcheck url + [Timeout] 1 minute + ${resp}= Get Request mapper_session ${HEALTHCHECK_ENDPOINT} + Should Be Equal As Strings ${resp.status_code} 200 + + Verify 3GPP PM Mapper responds appropriately when no metadata is provided [Tags] PM_MAPPER_10 [Documentation] Verify 3GPP PM Mapper responds 400 with the message "Missing Metadata." when no metadata is provided @@ -51,10 +65,57 @@ Verify 3GPP PM Mapper responds appropriately when invalid metadata is provided Should Be Equal As Strings ${resp.status_code} 400 Should Be Equal As Strings ${resp.content} Malformed Metadata. + +Verify that PM Mapper throws Event failed validation against schema error when no managed element content is provided + [Tags] PM_MAPPER_12 + [Documentation] Verify 3gpp pm mapper responds with an error when no managed element content is provided + [Timeout] 1 minute + ${no_managed_element_content}= Get File ${NO_MANAGED_ELEMENT_PATH} + ${valid_metatdata} Get File ${VALID_METADATA_PATH} + ${headers}= Create Dictionary X-ONAP-RequestID=2 Content-Type=application/xml X-DMAAP-DR-PUBLISH-ID=2 X-DMAAP-DR-META=${valid_metatdata.replace("\n","")} + ${resp}= Put Request mapper_session ${DELIVERY_ENDPOINT}/filename data=${no_managed_element_content} headers=${headers} + Should Be Equal As Strings ${resp.status_code} 200 + ${cli_cmd_output}= Run Process ${CLI_EXEC_CLI_PM_LOG} shell=yes + Log ${cli_cmd_output.stdout} + Should Be Equal As Strings ${cli_cmd_output.rc} 0 + Should Contain ${cli_cmd_output.stdout} XML validation failed + + +Verify that PM Mapper logs successful when a file that contains no measdata is provided + [Tags] PM_MAPPER_13 + [Documentation] Verify that PM Mapper logs successful when a file that contains no measdata is provided + [Timeout] 1 minute + ${valid_no_measdata_content}= Get File ${NO_MEASDATA_PATH} + ${valid_metatdata} Get File ${VALID_METADATA_PATH} + ${headers}= Create Dictionary X-ONAP-RequestID=3 Content-Type=application/xml X-DMAAP-DR-PUBLISH-ID=3 X-DMAAP-DR-META=${valid_metatdata.replace("\n","")} + ${resp}= Put Request mapper_session ${DELIVERY_ENDPOINT}/filename data=${valid_no_measdata_content} headers=${headers} + Should Be Equal As Strings ${resp.status_code} 200 + ${cli_cmd_output}= Run Process ${CLI_EXEC_CLI_PM_LOG} shell=yes + Log ${cli_cmd_output.stdout} + Should Be Equal As Strings ${cli_cmd_output.rc} 0 + Should Contain ${cli_cmd_output.stdout} XML validation successful + + +Verify that PM Mapper logs successful when a file that contains measdata is provided + [Tags] PM_MAPPER_14 + [Documentation] Verify that PM Mapper logs successful when a file that contains measdata is provided + [Timeout] 1 minute + ${valid_meas_result_content}= Get File ${MEASD_RESULT_PATH} + ${valid_metatdata} Get File ${VALID_METADATA_PATH} + ${headers}= Create Dictionary X-ONAP-RequestID=4 Content-Type=application/xml X-DMAAP-DR-PUBLISH-ID=4 X-DMAAP-DR-META=${valid_metatdata.replace("\n","")} + ${resp}= Put Request mapper_session ${DELIVERY_ENDPOINT}/filename data=${valid_meas_result_content} headers=${headers} + Should Be Equal As Strings ${resp.status_code} 200 + ${cli_cmd_output}= Run Process ${CLI_EXEC_CLI_PM_LOG} shell=yes + Log ${cli_cmd_output.stdout} + Should Be Equal As Strings ${cli_cmd_output.rc} 0 + Should Contain ${cli_cmd_output.stdout} XML validation successful + + + *** Keywords *** PostCall [Arguments] ${url} ${data} ${headers}= Create Dictionary Accept=application/json Content-Type=application/json ${resp}= Evaluate requests.post('${url}',data='${data}', headers=${headers},verify=False) requests - [Return] ${resp} \ No newline at end of file + [Return] ${resp} -- 2.16.6