Add CSIT tests for VES event-listener endpoint 06/99206/3
authorAleksandra Maciaga <aleksandra.maciaga@nokia.com>
Tue, 19 Nov 2019 12:13:08 +0000 (13:13 +0100)
committerAleksandra Maciaga <aleksandra.maciaga@nokia.com>
Mon, 16 Dec 2019 11:56:07 +0000 (12:56 +0100)
Issue-ID: DCAEGEN2-1981
Change-Id: I6f71ec8a23dd0835540869dcac445834ebee2342
Signed-off-by: Aleksandra Maciaga <aleksandra.maciaga@nokia.com>
tests/dcaegen2/testcases/assets/certs/outdated.crt [new file with mode: 0644]
tests/dcaegen2/testcases/assets/certs/outdated.key [new file with mode: 0644]
tests/dcaegen2/testcases/assets/json_events/ves7_batch_valid.json [new file with mode: 0644]
tests/dcaegen2/testcases/dcae_ves.robot
tests/dcaegen2/testcases/resources/dcae_keywords.robot
tests/dcaegen2/testcases/resources/dcae_properties.robot

diff --git a/tests/dcaegen2/testcases/assets/certs/outdated.crt b/tests/dcaegen2/testcases/assets/certs/outdated.crt
new file mode 100644 (file)
index 0000000..8768cff
--- /dev/null
@@ -0,0 +1,24 @@
+-----BEGIN CERTIFICATE-----
+MIIEGDCCAgACFFgwd9DMpQEwVkrCkzJPGRq6xW3EMA0GCSqGSIb3DQEBCwUAMEUx
+CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
+cm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMTkxMTE4MTIyMzIyWhcNMTkxMTE5MTIy
+MzIyWjBMMQswCQYDVQQGEwJQTDELMAkGA1UECAwCRGwxEDAOBgNVBAcMB1dyb2Ns
+YXcxDjAMBgNVBAoMBU5va2lhMQ4wDAYDVQQLDAVOb2tpYTCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBALIx4HC0SskTvE5dzcfHcrjsvBvKJeum7NkVvpk2
+4hxhcynfmhM6wJ0VJV0x6B4mHe0ja4tJZdY5IyfRMV/5Q79hiiLmwg6hgjXX7MKn
+7JnFCX1iMj+zXlQzCLgXVpB6ruBAMImiBjGn2MlTIHKthsNGX6Qf+hDmJqEfoRuI
+jp7SwI4BvN084ijIpNWARdxAsAQ1qJjrCLhvJ9Ob8btCqclAzv3ZPAcOD6DjORx5
+JxIMMJ6bXfHgmsECy4dbGBMnieKF1O8NNdoypVCE+NuqckSmE2JQiHIkRHZ5Bul4
+ihk+wSR2WxiNOOuMN7bp+0Yan44ritMB06wpFdp4jGMvyTsCAwEAATANBgkqhkiG
+9w0BAQsFAAOCAgEAYQEi9+o6+nlMvXJlal62QPoBPOQqFKWTBd5X0Wv+L0K/5yAO
+S2Sv0woQyDLydjsglNLEJB3VJuPQsoRZDGqv9aThJ0j+/BzylbkxwcReMs7P+rl2
+DIeqjdvsato3ZB0Rtp28jBDI7HrvBfmGQQFUaeBRI7eybe3AXqy8INozkdAGeeIr
+FxMmrZ0z7eQj5T8CE/ebmsbdIDRPmI672V8Tojd6nQSZFAG9/9q6f/iK45Mx6Qls
+Qqfl+bdL3ey0aNsUR6yWNa2DBA15HW9GvUQuMxeGDNQn0bxib0KsKgxfbX4vLYVF
+RgC/c1td9LJoSMl3tURoZwRfAHFX82jDxAExtlTMvZMleMlP3O/YRB0SNieFeidE
+O3OzuCHBvEpQEcDdUMxc4XfCnV1nE6QHLsBwz3Zwt4ZnL6dS8iBE0p3NN5qHVWF7
+Vxb59ZYPCrTQbgTsKlfHyX8aB2Nk0rCgDFBbov7gVevOHjIWqmDyFhrNEJEmXO+3
+MM8UrImojbr4kn89VsujMP62jMqyXifuejGzkoHf6tBuTENiNxwmPwiX+ZD5etVE
+kh8c7aoRZi6zv+vMUu6U1RpYUEPGMTGZKBsuk+2IABhfD5UcneGR3kX2Vtb34EZE
+8i29bJY7CmzNBUlkbubqv8axklF2hxiN7w8oRLj+tH8jnVMMP47KuHaNx+8=
+-----END CERTIFICATE-----
diff --git a/tests/dcaegen2/testcases/assets/certs/outdated.key b/tests/dcaegen2/testcases/assets/certs/outdated.key
new file mode 100644 (file)
index 0000000..860b30f
--- /dev/null
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEAsjHgcLRKyRO8Tl3Nx8dyuOy8G8ol66bs2RW+mTbiHGFzKd+a
+EzrAnRUlXTHoHiYd7SNri0ll1jkjJ9ExX/lDv2GKIubCDqGCNdfswqfsmcUJfWIy
+P7NeVDMIuBdWkHqu4EAwiaIGMafYyVMgcq2Gw0ZfpB/6EOYmoR+hG4iOntLAjgG8
+3TziKMik1YBF3ECwBDWomOsIuG8n05vxu0KpyUDO/dk8Bw4PoOM5HHknEgwwnptd
+8eCawQLLh1sYEyeJ4oXU7w012jKlUIT426pyRKYTYlCIciREdnkG6XiKGT7BJHZb
+GI0464w3tun7RhqfjiuK0wHTrCkV2niMYy/JOwIDAQABAoIBAQCSYqLsM1AUa2AQ
+SMMZ0WEPRXsqoSARvKlplJFlME8D3ZJL3eKm1WcSJCLzsmHrEokXHDfmzr8YAww8
+U3/qRc0/1RMzpLnaZxeev+lB581YbSNkm1yINAPTy7Dn+lQkkIREuLam+jF4bViL
+2vwW+TJyDMfY/mPhqhAl4OPqyH3RPhSmC23zkPsqFU2ZXJQB/7CcDP9OtXN9OLM5
+/hjDTW0/+0/xLjzBDJbrzUSsBCD03/vis+mvZJ/pN31ZK+/zXz62yzGqN++bnoSA
+mlAUL6QrkVER9dKoLwUoNncbbsmeYnNSvJqmPNgdm0BSDKVzP1u0lvX93nSsRG0c
+vrHXb56xAoGBAOk5WwOfRtqUfkbGdJoX5R+PzRq9WGb6ZAquD8ST3rOtoQhPBQDI
+Cx26UbhJyH2xKhME8ZI0rjW0llI/erJbiLK9v668HzfqgoFZIly3t7nwmstFvoo9
+1CUo9TPsppGKQLo1iJV6iJIH14kPlOtSwIbGd9ixzqp1rBCIvwEi+Fq3AoGBAMOY
+x9ZlHmy2kmXTRjojf0zNPkkBsd8KatvH9AgYoUnulQBqdfCiTJTB+4JRyZ7sE6su
+mbtKP3SM9FJTGg0bNCDO2fwjkqia5WyssI9sVITwoPw5o11mR7WEXtfM1UtgLJbo
+xEN/TaFLoltW+kNaS0GzsJBzZvp8mbcmoFbx9hGdAoGAGVHjwqnpHFPgvbhP8mbD
+tkB7aPrDfTKT5+Drz1CqbeFcyTUi+um84zZWJubDwHmacsQnodLcUvJPG5DOtkxf
+s+ALzmGYFg78qiROKbi8VpB7jbP9sq5xuLMQo9l+X/CdhFnJgUjzSL9XNAcgCMhM
+JJWpbzomkLUDwCvIaMwuIFMCgYEAwv81exAkXM1G9izC/oMVDkQvrCj8YxfHoISf
+TNMBOOuZsGhyXAvxvPwG+cz/7Gf+09IJgSZsTI2ZpdkjR52vQmX1++Ca/Wwu/UDM
+ZK/jMwWR+OKdcyfcpaHpy8pxekvPKEO2JnRruDnnCpiTt0H1dPLnO5tRNrexp13i
+y8s9PiECgYEAzCk/b/62WIpEb7BPO19I7XR8xAT36QINiTJrOHqrh6iexD9T63Zf
+0OuNsnLna2uvPRsSKnoU8a0/frEKIu45LBrUh1XqKjgRP1PMktAI6KGwRvPXTzGT
+WVgznP2uU6wCyvd6obRfcX79egDeZrGfJ0xnuesaIEeYM+5CFgxqmHo=
+-----END RSA PRIVATE KEY-----
diff --git a/tests/dcaegen2/testcases/assets/json_events/ves7_batch_valid.json b/tests/dcaegen2/testcases/assets/json_events/ves7_batch_valid.json
new file mode 100644 (file)
index 0000000..1db81ee
--- /dev/null
@@ -0,0 +1,67 @@
+
+{
+   "eventList": [
+      {
+         "commonEventHeader": {
+            "version": "4.0.1",
+            "vesEventListenerVersion": "7.0.1",
+            "domain": "fault",
+            "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
+            "eventId": "fault0000250",
+            "sequence": 1,
+            "priority": "High",
+            "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
+            "reportingEntityName": "ibcx0001vm002oam0011234",
+            "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014",
+            "sourceName": "scfx0001vm002cap001",
+            "nfVendorName": "Ericsson",
+            "nfNamingCode": "scfx",
+            "nfcNamingCode": "ssc",
+            "startEpochMicrosec": 1413378172000000,
+            "lastEpochMicrosec": 1413378172000000,
+            "timeZoneOffset": "UTC-05:30"
+         },
+         "faultFields": {
+            "faultFieldsVersion": "4.0",
+            "alarmCondition": "PilotNumberPoolExhaustion",
+            "eventSourceType": "other",
+            "specificProblem": "Calls cannot complete - pilot numbers are unavailable",
+            "eventSeverity": "CRITICAL",
+            "vfStatus": "Active",
+            "alarmAdditionalInformation": {
+                "PilotNumberPoolSize": "1000"
+            }
+         }
+      },
+      {
+         "commonEventHeader": {
+            "version": "4.0.1",
+            "vesEventListenerVersion": "7.0.1",
+            "domain": "fault",
+            "eventName": " Fault_Vscf:Acs-Ericcson_RecordingServerUnreachable",
+            "eventId": "fault0000251",
+            "sequence": 0,
+            "priority": "High",
+            "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
+            "reportingEntityName": "ibcx0001vm002oam0011234",
+            "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014",
+            "sourceName": "scfx0001vm002cap001",
+            "nfVendorName": "Ericsson",
+            "nfNamingCode": "scfx",
+            "nfcNamingCode": "ssc",
+            "startEpochMicrosec": 1413378172000010,
+            "lastEpochMicrosec": 1413378172000010,
+            "timeZoneOffset": "UTC-05:30"
+         },
+         "faultFields": {
+            "faultFieldsVersion": "4.0",
+            "alarmCondition": "RecordingServerUnreachable",
+            "eventSourceType": "other",
+            "specificProblem": "Recording server unreachable",
+            "eventSeverity": "CRITICAL",
+            "vfStatus": "Active"
+         }
+      }
+   ]
+}
+
index c035423..f9a97b0 100644 (file)
 *** Settings ***
-Documentation    Testing DCAE VES Listener with various event feeds from VoLTE, vDNS, vFW and cCPE use scenarios
-Library     RequestsLibrary
+Documentation     Run healthchecks for DCAE VES
+...               Testing /eventListener/v7 and /eventListener/v7/eventBatch endpoints for DCEA VES v7.
+...               Testing /eventListener/v5 and /eventListener/v5/eventBatch for DCEA VES v5 with various event feeds from VoLTE, vFW and PNF
+Library           RequestsLibrary
 Library           OperatingSystem
 Library           Collections
 Library           DcaeLibrary
-Resource          resources/dcae_keywords.robot
-Resource          ../../common.robot
-Resource          resources/dcae_properties.robot
-Test Setup        Cleanup VES Events
+Resource          ./resources/dcae_keywords.robot
+Test Teardown     Cleanup VES Events
 Suite Setup       Run keywords  VES Collector Suite Setup DMaaP  Create sessions  Create header
-Suite Teardown    VES Collector Suite Shutdown DMaaP    
-
-*** Variables ***
-${VESC_URL_HTTPS}                        https://%{VESC_IP}:8443
-${VESC_URL}                              http://%{VESC_IP}:8080
-${VES_ANY_EVENT_PATH}                    /eventListener/v5
-${VES_BATCH_EVENT_PATH}                 /eventListener/v5/eventBatch
-${VES_THROTTLE_STATE_EVENT_PATH}         /eventListener/v5/clientThrottlingState
-${VES_ENDPOINT}                          /eventListener/v7
-${VES_VALID_JSON_V7}                     %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves7_valid.json
-${VES_INVALID_JSON_V7}                   %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves7_invalid.json
-${EVENT_DATA_FILE}                       %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_single_fault_event.json
-${EVENT_MEASURE_FILE}                    %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_vfirewall_measurement.json
-${EVENT_DATA_FILE_BAD}                   %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_single_fault_event_bad.json
-${EVENT_BATCH_DATA_FILE}                 %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_fault_eventlist_batch.json
-${EVENT_THROTTLING_STATE_DATA_FILE}      %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_fault_provide_throttle_state.json
-${EVENT_PNF_REGISTRATION}                %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_pnf_registration_event.json
-
-#DCAE Health Check
-${CONFIG_BINDING_URL}                    http://localhost:8443
-${CB_HEALTHCHECK_PATH}                   /healthcheck
-${CB_SERVICE_COMPONENT_PATH}             /service_component/
-${VES_Service_Name1}                     dcae-controller-ves-collector
-${VES_Service_Name2}                     ves-collector-not-exist
+Suite Teardown    VES Collector Suite Shutdown DMaaP
 
 *** Test Cases ***
 
-#No authorization tests
+#No authentication tests
 
 VES Collector HTTP Health Check
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Ves Collector Health Check
-    ${uuid}=    Generate UUID
-    ${headers}=  Create Dictionary     Accept=*/*     X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
-    ${resp}=   Get Request     ${suite_dcae_vesc_url_session}  /healthcheck        headers=${headers}
-    Should Be Equal As Strings         ${resp.status_code}     200
+    [Documentation]   Run healthcheck
+    Run Healthcheck
 
 Publish Single VES VNF Measurement Event API V7
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect 202 Response
-    ${evtdata}=   Get Data From File   ${VES_VALID_JSON_V7}
-    ${resp}=  Publish Event To VES Collector No Auth    ${VES_ENDPOINT}  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings         ${resp.status_code}     202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    ab305d54-85b4-a31b-7db2-fb6b9e546015
-    Should Be Equal As Strings    ${ret}    true
-
+    [Documentation]   Post single event with valid data to /eventListener/v7 endpoint and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${http_session}  ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  202  ab305d54-85b4-a31b-7db2-fb6b9e546015
 
 Publish Single VES VNF Measurement Event with wrong JSON
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect 400 Response
-    ${evtdata}=   Get Data From File   ${VES_INVALID_JSON_V7}
-    ${resp}=  Publish Event To VES Collector No Auth  ${VES_ENDPOINT}  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings         ${resp.status_code}     400
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
+    [Documentation]   Post single event with invalid data to /eventListener/v7 endpoint and expect 400 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${http_session}  ${VES_EVENTLISTENER_V7}  ${VES_INVALID_JSON_V7}  400
 
 Publish Single VES VNF Measurement Event with No Auth over HTTPS
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect ConnectionError
-    ${evtdata}=   Get Data From File   ${VES_VALID_JSON_V7}
-    ${err_msg}=  Run Keyword And Expect Error  ConnectionError:*   Publish Event To VES Collector   ${VES_ENDPOINT}  ${evtdata}
-    Should Contain  ${err_msg}  Errno 111
-    Log  Recieved error message ${err_msg}
+    [Documentation]   Post single event over HTTPS with authentication disabled and expect ConnectionError
+    @{err_content}  Create List  Errno 111
+    Send Request And Expect Error  Publish Event To VES Collector  ${https_basic_auth_session}  ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  ConnectionError:*  @{err_content}
 
 Publish Single VES VoLTE Fault Event
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect 202 Response
-    ${evtdata}=   Get Data From File   ${EVENT_DATA_FILE}
-    ${resp}=  Publish Event To VES Collector No Auth    ${VES_ANY_EVENT_PATH}  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings         ${resp.status_code}     202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    ab305d54-85b4-a31b-7db2-fb6b9e546015
-    Should Be Equal As Strings    ${ret}    true
+    [Documentation]   Post single event with valid data to /eventListener/v5 endpoint and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${http_session}  ${VES_ANY_EVENT_PATH}  ${EVENT_DATA_FILE}  202  ab305d54-85b4-a31b-7db2-fb6b9e546015
 
 Publish Single VES VNF Measurement Event API V5
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect 202 Response
-    ${evtdata}=   Get Data From File   ${EVENT_MEASURE_FILE}
-    ${resp}=  Publish Event To VES Collector No Auth    ${VES_ANY_EVENT_PATH}  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings         ${resp.status_code}     202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    0b2b5790-3673-480a-a4bd-5a00b88e5af6
-    Should Be Equal As Strings    ${ret}    true
+    [Documentation]   Post single measurement event with valid data to /eventListener/v5 endpoint and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${http_session}  ${VES_ANY_EVENT_PATH}  ${EVENT_MEASURE_FILE}  202  0b2b5790-3673-480a-a4bd-5a00b88e5af6
 
 Publish VES VoLTE Fault Batch Events
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post batched events and expect 202 Response
-    ${evtdata}=   Get Data From File   ${EVENT_BATCH_DATA_FILE}
-    ${resp}=  Publish Event To VES Collector No Auth    ${VES_BATCH_EVENT_PATH}  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings         ${resp.status_code}     202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    ab305d54-85b4-a31b-7db2-fb6b9e546025
-    Should Be Equal As Strings    ${ret}    true
-
+    [Documentation]   Post single event with valid data to /eventListener/v5/eventBatch endpoint and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${http_session}  ${VES_BATCH_EVENT_PATH}  ${EVENT_BATCH_DATA_FILE}  202  ab305d54-85b4-a31b-7db2-fb6b9e546025
 
 Publish VES Event With Invalid Method
     [Tags]    DCAE-VESC-R1
-    [Documentation]    Use invalid Put instead of Post method to expect 405 response
-    ${evtdata}=   Get Data From File   ${EVENT_DATA_FILE}
+    [Documentation]    Use invalid Put instead of Post method to expect 405 Response Status Code
     Log   Send HTTP Request with invalid method Put instead of Post
-    ${resp}=  Publish Event To VES Collector With Put Method No Auth  ${VES_ANY_EVENT_PATH}  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings         ${resp.status_code}     405
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
+    Send Request And Validate Response  Publish Event To VES Collector With Put Method  ${http_session}  ${VES_ANY_EVENT_PATH}  ${EVENT_DATA_FILE}  405
 
 Publish VES Event With Invalid URL Path
     [Tags]    DCAE-VESC-R1
-    [Documentation]    Use invalid url path to expect 404 response
-    ${evtdata}=   Get Data From File   ${EVENT_DATA_FILE}
+    [Documentation]   Post single event to invalid url path and expect 404 Response  Status Code
     Log   Send HTTP Request with invalid /listener/v5/ instead of /eventListener/v5 path
-    ${resp}=  Publish Event To VES Collector No Auth    /listener/v5/  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings         ${resp.status_code}     404
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
+    Send Request And Validate Response  Publish Event To VES Collector  ${http_session}  /listener/v5/  ${EVENT_DATA_FILE}  404
 
 Publish PNF Registration Event
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post PNF registration event and expect 200 Response
-    ${evtdata}=   Get Data From File   ${EVENT_PNF_REGISTRATION}
-    ${resp}=  Publish Event To VES Collector No Auth    ${VES_ANY_EVENT_PATH}  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings         ${resp.status_code}     202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    QTFCOC540002E-reg
-    Should Be Equal As Strings    ${ret}    true
-
+    [Documentation]   Post PNF registration event and expect 200 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${http_session}  ${VES_ANY_EVENT_PATH}  ${EVENT_PNF_REGISTRATION}  202  QTFCOC540002E-reg
 
 # Auth by certificate and basic auth username / password
 
@@ -155,130 +74,110 @@ Enable VESC HTTPS with certBasicAuth
     [Tags]    DCAE-VESC-R1
     [Documentation]  Enable VESC Https and Authentication and Run Health Check
     Enable VESC with certBasicAuth
+    Run Healthcheck
+
+Healthcheck with Outdated Cert
+    [Tags]    DCAE-VESC-R1
+    [Documentation]  Run healthcheck with outdated cert
     ${uuid}=    Generate UUID
     ${headers}=  Create Dictionary     Accept=*/*     X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
-    ${resp}=   Get Request     ${suite_dcae_vesc_url_session}  /healthcheck        headers=${headers}
-    Should Be Equal As Strings         ${resp.status_code}     200
-
+    ${err_msg}=  Run Keyword And Expect Error  SSLError:*  Get Request         ${https_outdated_cert_session}  /healthcheck  headers=${headers}
+    Should Contain  ${err_msg}  bad handshake
+    Should Contain  ${err_msg}  certificate unknown
+    Log  Recieved error message ${err_msg}
 
 Publish Single VES Fault Event Over HTTPS
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect 202 Response
-    ${evtdata}=   Get Data From File   ${EVENT_DATA_FILE}
+    [Documentation]   Post single event with valid data to /eventListener/v5 endpoint over HTTPS and expect 202 Response Status Code
     Log  Login User=${VESC_HTTPS_USER}, Pd=${VESC_HTTPS_PD}
-    ${resp}=  Publish Event To VES Collector    ${VES_ANY_EVENT_PATH}  ${evtdata}
-    Log    Receive HTTPS Status code ${resp.status_code}
-    Should Be Equal As Strings         ${resp.status_code}     202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    ab305d54-85b4-a31b-7db2-fb6b9e546015
-    Should Be Equal As Strings    ${ret}    true
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_basic_auth_session}  ${VES_ANY_EVENT_PATH}  ${EVENT_DATA_FILE}  202  ab305d54-85b4-a31b-7db2-fb6b9e546015
 
 Publish Single VES Measurement Event Over HTTPS
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect 202 Response
-    ${evtdata}=   Get Data From File   ${EVENT_MEASURE_FILE}
-    ${resp}=  Publish Event To VES Collector  ${VES_ANY_EVENT_PATH}  ${evtdata}
-    Log    Receive HTTPS Status code ${resp.status_code}
-    Should Be Equal As Strings         ${resp.status_code}     202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    0b2b5790-3673-480a-a4bd-5a00b88e5af6
-    Should Be Equal As Strings    ${ret}    true
+    [Documentation]   Post single measurement event with valid data to /eventListener/v5 endpoint over HTTPS and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_basic_auth_session}  ${VES_ANY_EVENT_PATH}  ${EVENT_MEASURE_FILE}  202  0b2b5790-3673-480a-a4bd-5a00b88e5af6
 
 Publish VES Fault Batch Events Over HTTPS
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post batched events and expect 202 Response
-    ${evtdata}=   Get Data From File   ${EVENT_BATCH_DATA_FILE}
-    ${resp}=  Publish Event To VES Collector  ${VES_BATCH_EVENT_PATH}  ${evtdata}
-    Should Be Equal As Strings         ${resp.status_code}     202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    ab305d54-85b4-a31b-7db2-fb6b9e546025
-    Should Be Equal As Strings    ${ret}    true
-
+    [Documentation]   Post single event with valid data to /eventListener/v5/eventBatch endpoint over HTTPS and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_basic_auth_session}  ${VES_BATCH_EVENT_PATH}  ${EVENT_BATCH_DATA_FILE}  202  ab305d54-85b4-a31b-7db2-fb6b9e546025
 
 Publish VES Event With Invalid URL Path HTTPS
     [Tags]    DCAE-VESC-R1
-    [Documentation]    Use invalid url path to expect 404 response
-    ${evtdata}=   Get Data From File   ${EVENT_DATA_FILE}
+    [Documentation]    Post single event to invalid url path over HTTPS and expect 404 response Status Code
     Log   Send HTTP Request with invalid /eventlistener/v5/ instead of /eventListener/v5 path
-    ${resp}=  Publish Event To VES Collector  /eventlistener/v5  ${evtdata}
-    Log    Receive HTTPS Status code ${resp.status_code}
-    Should Be Equal As Strings         ${resp.status_code}     404
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_basic_auth_session}  /eventlistener/v5  ${EVENT_DATA_FILE}  404
 
 Publish Single VES VNF Measurement Event over HTTP
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event over HTTP and expect 400 Response
-    ${evtdata}=   Get Data From File   ${VES_VALID_JSON_V7}
-    ${resp}=  Publish Event To VES Collector No Auth    ${VES_ENDPOINT}  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings         ${resp.status_code}     400
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-
+    [Documentation]   Post single event over HTTP with authentication enabled and expect 400 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${http_session}  ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  400
 
 Publish Single VES VNF Measurement Event with certBasicAuth over HTTPS
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect 202 Response
-    ${evtdata}=   Get Data From File   ${VES_VALID_JSON_V7}
-    ${resp}=  Publish Event To VES Collector   ${VES_ENDPOINT}  ${evtdata}
-    Log    Receive HTTPS Status code ${resp.status_code}
-    Should Be Equal As Strings         ${resp.status_code}     202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    ab305d54-85b4-a31b-7db2-fb6b9e546015
-    Should Be Equal As Strings    ${ret}    true
+    [Documentation]   Post single event with valid data and valid username/password to /eventListener/v7 endpoint over HTTPS and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_basic_auth_session}  ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  202  ab305d54-85b4-a31b-7db2-fb6b9e546015
 
 Publish Single VES VNF Measurement Event over HTTPS with wrong JSON
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect 400 Response
-    ${evtdata}=   Get Data From File   ${VES_INVALID_JSON_V7}
-    ${resp}=  Publish Event To VES Collector   ${VES_ENDPOINT}  ${evtdata}
-    Log    Receive HTTPS Status code ${resp.status_code}
-    Should Be Equal As Strings         ${resp.status_code}     400
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
+    [Documentation]   Post single event with invalid data and valid username/password to /eventListener/v7 endpoint over HTTPS and expect 400 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_basic_auth_session}  ${VES_EVENTLISTENER_V7}  ${VES_INVALID_JSON_V7}  400
 
 Publish Single VES VNF Measurement Event With Wrong Auth
     [Tags]  DCAE-VESC-R1
-    [Documentation]  Post single event and expect 401 response
-    ${evtdata}=  Get Data From File  ${VES_VALID_JSON_V7}
-    ${resp}=  Publish Event To VES Collector With Wrong Auth   ${VES_ENDPOINT}  ${evtdata}
-    Log    Receive HTTPS Status code ${resp.status_code}
-    Should Be Equal As Strings  ${resp.status_code}  401
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
+    [Documentation]  Post single event with valid data and invalid username/password to /eventListener/v7 endpoint over HTTPS and expect 401 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_wrong_auth_session}  ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  401
 
 Publish Single VES VNF Measurement Event With Cert
     [Tags]  DCAE-VESC-R1
-    [Documentation]  Post single event and expect 202 response
-    ${evtdata}=  Get Data From File  ${VES_VALID_JSON_V7}
-    ${resp}=  Publish Event To VES Collector With Cert  ${VES_ENDPOINT}  ${evtdata}
-    Log    Receive HTTPS Status code ${resp.status_code}
-    Should Be Equal As Strings         ${resp.status_code}     202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    ab305d54-85b4-a31b-7db2-fb6b9e546015
-    Should Be Equal As Strings    ${ret}    true
+    [Documentation]  Post single event with valid data and valid certificate to /eventListener/v7 endpoint over HTTPS and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_valid_cert_session}  ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  202  ab305d54-85b4-a31b-7db2-fb6b9e546015
 
 Publish Single VES VNF Measurement Event With Wrong Cert
     [Tags]  DCAE-VESC-R1
-    [Documentation]  Post single event and expect SSLError with bad handshake
-    ${evtdata}=  Get Data From File  ${VES_VALID_JSON_V7}
-    ${err_msg}=  Run Keyword And Expect Error  SSLError:*  Publish Event To VES Collector With Wrong Cert  ${VES_ENDPOINT}  ${evtdata}
-    Should Contain  ${err_msg}  bad handshake
-    Should Contain  ${err_msg}  certificate unknown
-    Log  Recieved error message ${err_msg}
+    [Documentation]  Post single event with valid data and invalid certificate to /eventListener/v7 endpoint over HTTPS and expect SSLError with bad handshake
+    @{err_content}  Create List  bad handshake  certificate unknown
+    Send Request And Expect Error  Publish Event To VES Collector  ${https_invalid_cert_session}  ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  SSLError:*  @{err_content}
+
+Publish Single VES VNF Measurement Event With Outdated Cert
+    [Tags]  DCAE-VESC-R1
+    [Documentation]  Post single event with valid data and outdated certificate to /eventListener/v7 endpoint over HTTPS and expect SSLError with bad handshake
+    @{err_content}  Create List  bad handshake  certificate unknown
+    Send Request And Expect Error  Publish Event To VES Collector  ${https_outdated_cert_session}  ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  SSLError:*  @{err_content}
 
 Publish Single VES VNF Measurement Event Without Auth And Cert
     [Tags]  DCAE-VESC-R1
-    [Documentation]  Post single event and expect 401 response
-    ${evtdata}=  Get Data From File  ${VES_VALID_JSON_V7}
-    ${resp}=  Publish Event To VES Collector Without Auth And Cert  ${VES_ENDPOINT}  ${evtdata}
-    Log    Receive HTTPS Status code ${resp.status_code}
-    Should Be Equal As Strings  ${resp.status_code}  401
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
+    [Documentation]  Post single event with valid data and without certificate or username/password to /eventListener/v7 endpoint over HTTPS and expect 401 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_no_cert_no_auth_session}   ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  401
+
+Publish V7 Batch Event with certBasicAuth over HTTPS
+    [Tags]    DCAE-VESC-R1
+    [Documentation]   Post single event with valid data and valid username/password to /eventListener/v7/eventBatch endpoint over HTTPS and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_basic_auth_session}  ${VES_BATCH_EVENT_ENDPOINT_V7}  ${VES_VALID_BATCH_JSON_V7}  202  Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion
+
+Publish V7 Batch Event With Wrong Auth
+    [Tags]  DCAE-VESC-R1
+    [Documentation]  Post single event with valid data and invalid username/password to /eventListener/v7/eventBatch endpoint over HTTPS and expect 401 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector   ${https_wrong_auth_session}  ${VES_BATCH_EVENT_ENDPOINT_V7}  ${VES_VALID_BATCH_JSON_V7}  401
+
+Publish V7 Batch Event With Cert
+    [Tags]  DCAE-VESC-R1
+    [Documentation]  Post single event with valid data and valid certificate to /eventListener/v7/eventBatch endpoint over HTTPS and expect 202 Response
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_valid_cert_session}  ${VES_BATCH_EVENT_ENDPOINT_V7}  ${VES_VALID_BATCH_JSON_V7}  202  Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion
+
+Publish V7 Batch With Wrong Cert
+    [Tags]  DCAE-VESC-R1
+    [Documentation]  Post single event with valid data and invalid certificate to /eventListener/v7/eventBatch endpoint over HTTPS and expect SSLError with bad handshake
+    @{err_content}  Create List  bad handshake  certificate unknown
+    Send Request And Expect Error  Publish Event To VES Collector   ${https_invalid_cert_session}  ${VES_BATCH_EVENT_ENDPOINT_V7}  ${VES_VALID_BATCH_JSON_V7}  SSLError:*  @{err_content}
+
+Publish V7 Batch Event With Outdated Cert
+    [Tags]  DCAE-VESC-R1
+    [Documentation]  Post single event with valid data and outdated certificate to /eventListener/v7/eventBatch endpoint over HTTPS and expect SSLError with bad handshake
+    @{err_content}  Create List  bad handshake  certificate unknown
+    Send Request And Expect Error  Publish Event To VES Collector   ${https_outdated_cert_session}  ${VES_BATCH_EVENT_ENDPOINT_V7}  ${VES_VALID_BATCH_JSON_V7}  SSLError:*  @{err_content}
+
+Publish V7 Batch Event Without Auth And Cert
+    [Tags]  DCAE-VESC-R1
+    [Documentation]  Post single event with valid data and without certificate or username/password to /eventListener/v7/eventBatch endpoint over HTTPS and expect 401 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_no_cert_no_auth_session}   ${VES_BATCH_EVENT_ENDPOINT_V7}  ${VES_VALID_BATCH_JSON_V7}  401
index c4cdbb9..16a8a8a 100644 (file)
@@ -5,31 +5,31 @@ Library                 DcaeLibrary
 Library           OperatingSystem
 Library           Collections
 Variables         ../resources/DcaeVariables.py
+Resource          ../../../common.robot
 Resource          ../resources/dcae_properties.robot
 
-*** Variables ***
-${DCAE_HEALTH_CHECK_BODY}    %{WORKSPACE}/tests/dcae/testcases/assets/json_events/dcae_healthcheck.json
-
-
 *** Keywords ***
 Create sessions
     [Documentation]  Create all required sessions
-    Create Session    dcae_vesc_url    ${VESC_URL}
-    Set Suite Variable    ${suite_dcae_vesc_url_session}    dcae_vesc_url
     ${auth}=  Create List  ${VESC_HTTPS_USER}   ${VESC_HTTPS_PD}
-    Create Session    dcae_vesc_url_https    ${VESC_URL_HTTPS}  auth=${auth}  disable_warnings=1
-    Set Suite Variable    ${suite_dcae_vesc_url_https_session}    dcae_vesc_url_https
     ${wrong_auth}=  Create List  ${VESC_HTTPS_WRONG_USER}  ${VESC_HTTPS_WRONG_PD}
-    Create Session  dcae_vesc_url_https_wrong_auth  ${VESC_URL_HTTPS}  auth=${wrong_auth}  disable_warnings=1
-    Set Suite Variable  ${suite_dcae_vesc_url_https_wrong_auth_session}  dcae_vesc_url_https_wrong_auth
     ${certs}=  Create List  ${VESC_ROOTCA_CERT}  ${VESC_ROOTCA_KEY}
-    Create Client Cert Session  dcae_vesc_url_https_cert  ${VESC_URL_HTTPS}  client_certs=${certs}  disable_warnings=1
-    Set Suite Variable  ${suite_dcae_vesc_url_https_cert_session}  dcae_vesc_url_https_cert
     ${wrong_certs}=  Create List  ${VESC_WRONG_CERT}  ${VESC_WRONG_KEY}
+    ${outdated_certs}=  Create List  ${VESC_OUTDATED_CERT}  ${VESC_OUTDATED_KEY}
+    Create Session    dcae_vesc_url    ${VESC_URL}
+    Set Suite Variable    ${http_session}    dcae_vesc_url
+    Create Session    dcae_vesc_url_https    ${VESC_URL_HTTPS}  auth=${auth}  disable_warnings=1
+    Set Suite Variable    ${https_basic_auth_session}    dcae_vesc_url_https
+    Create Session  dcae_vesc_url_https_wrong_auth  ${VESC_URL_HTTPS}  auth=${wrong_auth}  disable_warnings=1
+    Set Suite Variable  ${https_wrong_auth_session}  dcae_vesc_url_https_wrong_auth
+    Create Client Cert Session  dcae_vesc_url_https_cert  ${VESC_URL_HTTPS}  client_certs=${certs}  disable_warnings=1
+    Set Suite Variable  ${https_valid_cert_session}  dcae_vesc_url_https_cert
     Create Client Cert Session  dcae_vesc_url_https_wrong_cert  ${VESC_URL_HTTPS}  client_certs=${wrong_certs}  disable_warnings=1  verify=${False}
-    Set Suite Variable  ${suite_dcae_vesc_url_https_wrong_cert_session}  dcae_vesc_url_https_wrong_cert
+    Set Suite Variable  ${https_invalid_cert_session}  dcae_vesc_url_https_wrong_cert
+    Create Client Cert Session  dcae_vesc_url_https_outdated_cert  ${VESC_URL_HTTPS}  client_certs=${outdated_certs}  disable_warnings=1  verify=${False}
+    Set Suite Variable  ${https_outdated_cert_session}  dcae_vesc_url_https_outdated_cert
     Create Session  dcae_vesc_url_https_wo_auth  ${VESC_URL_HTTPS}  disable_warnings=1
-    Set Suite Variable  ${suite_dcae_vesc_url_https_wo_auth_session}  dcae_vesc_url_https_wo_auth
+    Set Suite Variable  ${https_no_cert_no_auth_session}  dcae_vesc_url_https_wo_auth
 
 Create header
     ${headers}=    Create Dictionary    Content-Type=application/json
@@ -37,7 +37,6 @@ Create header
 
 Get DCAE Nodes
     [Documentation]    Get DCAE Nodes from Consul Catalog
-    #Log    Creating session   ${GLOBAL_DCAE_CONSUL_URL}
     ${session}=    Create Session      dcae    ${GLOBAL_DCAE_CONSUL_URL}
     ${uuid}=    Generate UUID
     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json  X-Consul-Token=abcd1234  X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
@@ -64,7 +63,6 @@ DCAE Node Health Check
     ${len}=  Get Length  ${StatusList}
     Should Not Be Equal As Integers   ${len}   0
     DCAE Check Health Status    ${NodeName}   ${StatusList[0]}    Serf Health Status
-    #Run Keyword if  ${len} > 1  DCAE Check Health Status  ${NodeName}  ${StatusList[1]}  Serf Health Status
 
 DCAE Check Health Status
     [Arguments]    ${NodeName}    ${ItemStatus}   ${CheckType}
@@ -128,50 +126,47 @@ Get DCAE Service Component Status
     ${resp}=   Get Request     dcae-service-component  ${urlpath}
     [Return]    ${resp}
 
-Publish Event To VES Collector No Auth
-    [Documentation]    Send an event to VES Collector
-    [Arguments]     ${evtpath}   ${evtdata}
-    ${resp}=   Post Request    ${suite_dcae_vesc_url_session}  ${evtpath}     data=${evtdata}   headers=${suite_headers}
-    [Return]   ${resp}
-
 Publish Event To VES Collector
     [Documentation]    Send an event to VES Collector
-    [Arguments]     ${evtpath}   ${evtdata}
-    ${resp}=   Post Request    ${suite_dcae_vesc_url_https_session}    ${evtpath}     data=${evtdata}   headers=${suite_headers}
+    [Arguments]     ${session}  ${evtpath}   ${evtdata}
+    ${resp}=   Post Request    ${session}      ${evtpath}     data=${evtdata}   headers=${suite_headers}
     [Return]   ${resp}
 
 Publish Event To VES Collector With Put Method
     [Documentation]    Send an event to VES Collector
-    [Arguments]     ${evtpath}   ${evtdata}
-    ${resp}=   Put Request     ${suite_dcae_vesc_url_https_session}    ${evtpath}     data=${evtdata}   headers=${suite_headers}
+    [Arguments]     ${session}  ${evtpath}   ${evtdata}
+    ${resp}=   Put Request     ${session}      ${evtpath}     data=${evtdata}   headers=${suite_headers}
     [Return]   ${resp}
 
-Publish Event To VES Collector With Put Method No Auth
-    [Documentation]    Send an event to VES Collector
-    [Arguments]     ${evtpath}   ${evtdata}
-    ${resp}=   Put Request     ${suite_dcae_vesc_url_session}  ${evtpath}     data=${evtdata}   headers=${suite_headers}
-    [Return]   ${resp}
-
-Publish Event To VES Collector With Wrong Auth
-    [Documentation]   Send an event to VES Collector by session with wrong auth
-    [Arguments]   ${evtpath}  ${evtdata}
-    ${resp}=  Post Request  ${suite_dcae_vesc_url_https_wrong_auth_session}  ${evtpath}  data=${evtdata}  headers=${suite_headers}
-    [Return]   ${resp}
-
-Publish Event To VES Collector With Cert
-    [Documentation]   Send an event to VES Collector by session with certs
-    [Arguments]   ${evtpath}  ${evtdata}
-    ${resp}=  Post Request  ${suite_dcae_vesc_url_https_cert_session}  ${evtpath}  data=${evtdata}  headers=${suite_headers}
-    [Return]   ${resp}
-
-Publish Event To VES Collector With Wrong Cert
-    [Documentation]   Send an event to VES Collector by session with wrong certs
-    [Arguments]   ${evtpath}  ${evtdata}
-    ${resp}=  Post Request  ${suite_dcae_vesc_url_https_wrong_cert_session}  ${evtpath}  data=${evtdata}  headers=${suite_headers}
-    [Return]   ${resp}
-
-Publish Event To VES Collector Without Auth And Cert
-    [Documentation]   Send an event to VES Collector by session without Auth and Cert
-    [Arguments]   ${evtpath}  ${evtdata}
-    ${resp}=  Post Request  ${suite_dcae_vesc_url_https_wo_auth_session}  ${evtpath}  data=${evtdata}  headers=${suite_headers}
-    [Return]   ${resp}
+Send Request And Validate Response
+    [Documentation]  Post singel event to passed url with passed data and validate received response
+    [Arguments]  ${keyword}  ${session}  ${evtpath}  ${evtjson}  ${resp_code}  ${msg_code}=None
+    ${evtdata}=  Get Data From File  ${evtjson}
+    ${resp}=  Run Keyword  ${keyword}  ${session}  ${evtpath}  ${evtdata}
+    Log    Receive HTTPS Status code ${resp.status_code}
+    Should Be Equal As Strings         ${resp.status_code}     ${resp_code}
+    ${isEmpty}=   Is Json Empty    ${resp}
+    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
+    Run Keyword If  '${msg_code}' != 'None'  Check Whether Message Received  ${msg_code}
+
+Check Whether Message Received
+    [Documentation]  Validare if message has been received
+    [Arguments]  ${msg_code}
+    ${ret}=  DMaaP Message Receive  ${msg_code}
+    Should Be Equal As Strings    ${ret}    true
+
+Send Request And Expect Error
+    [Documentation]  Post singel event to passed url with passed data and expect error
+    [Arguments]  ${keyword}  ${session}  ${evtpath}  ${evtjson}  ${error_type}  @{error_content}
+    ${evtdata}=  Get Data From File  ${evtjson}
+    ${err_msg}=  Run Keyword And Expect Error  ${error_type}  ${keyword}  ${session}  ${evtpath}  ${evtdata}
+    :FOR    ${content}    IN    @{error_content}
+    \    Should Contain   ${err_msg}  ${content}
+    Log  Recieved error message ${err_msg}
+
+Run Healthcheck
+    [Documentation]  Run Healthcheck
+    ${uuid}=    Generate UUID
+    ${headers}=  Create Dictionary     Accept=*/*     X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
+    ${resp}=   Get Request     ${http_session}         /healthcheck        headers=${headers}
+    Should Be Equal As Strings         ${resp.status_code}     200
index 7505fab..de5519e 100644 (file)
@@ -4,17 +4,44 @@ Documentation        store all properties that can change or are used in multipl
 ...                   make sure you prepend them with GLOBAL so that other files can easily see it is from this file.
 
 *** Variables ***
-${GLOBAL_APPLICATION_ID}           robot-dcaegen2
-${GLOBAL_DCAE_CONSUL_URL}          http://135.205.228.129:8500
-${GLOBAL_DCAE_CONSUL_URL1}         http://135.205.228.170:8500
-${GLOBAL_DCAE_VES_URL}             http://localhost:8443/eventlistener/v5
-${GLOBAL_DCAE_USERNAME}            console
-${GLOBAL_DCAE_PASSWORD}            ZjJkYjllMjljMTI2M2Iz
-${VESC_HTTPS_USER}                 sample1
-${VESC_HTTPS_PD}                   sample1
-${VESC_HTTPS_WRONG_PD}             sample
-${VESC_HTTPS_WRONG_USER}           sample
-${VESC_ROOTCA_CERT}                %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/rootCA.crt
-${VESC_ROOTCA_KEY}                 %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/rootCAdec.key
-${VESC_WRONG_CERT}                 %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/wrong.crt
-${VESC_WRONG_KEY}                  %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/wrong.key
\ No newline at end of file
+${GLOBAL_APPLICATION_ID}                 robot-dcaegen2
+${GLOBAL_DCAE_CONSUL_URL}                http://135.205.228.129:8500
+${GLOBAL_DCAE_CONSUL_URL1}               http://135.205.228.170:8500
+${GLOBAL_DCAE_VES_URL}                   http://localhost:8443/eventlistener/v5
+${GLOBAL_DCAE_USERNAME}                  console
+${GLOBAL_DCAE_PASSWORD}                  ZjJkYjllMjljMTI2M2Iz
+${VESC_HTTPS_USER}                       sample1
+${VESC_HTTPS_PD}                         sample1
+${VESC_HTTPS_WRONG_PD}                   sample
+${VESC_HTTPS_WRONG_USER}                 sample
+${VESC_ROOTCA_CERT}                      %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/rootCA.crt
+${VESC_ROOTCA_KEY}                       %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/rootCAdec.key
+${VESC_WRONG_CERT}                       %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/wrong.crt
+${VESC_WRONG_KEY}                        %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/wrong.key
+${VESC_OUTDATED_CERT}                    %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/outdated.crt
+${VESC_OUTDATED_KEY}                     %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/outdated.key
+
+${VESC_URL_HTTPS}                        https://%{VESC_IP}:8443
+${VESC_URL}                              http://%{VESC_IP}:8080
+${VES_ANY_EVENT_PATH}                    /eventListener/v5
+${VES_BATCH_EVENT_PATH}                 /eventListener/v5/eventBatch
+${VES_THROTTLE_STATE_EVENT_PATH}         /eventListener/v5/clientThrottlingState
+${VES_EVENTLISTENER_V7}                  /eventListener/v7
+${VES_BATCH_EVENT_ENDPOINT_V7}           /eventListener/v7/eventBatch
+${VES_VALID_JSON_V7}                     %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves7_valid.json
+${VES_INVALID_JSON_V7}                   %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves7_invalid.json
+${VES_VALID_BATCH_JSON_V7}               %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves7_batch_valid.json
+${EVENT_DATA_FILE}                       %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_single_fault_event.json
+${EVENT_MEASURE_FILE}                    %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_vfirewall_measurement.json
+${EVENT_DATA_FILE_BAD}                   %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_single_fault_event_bad.json
+${EVENT_BATCH_DATA_FILE}                 %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_fault_eventlist_batch.json
+${EVENT_THROTTLING_STATE_DATA_FILE}      %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_fault_provide_throttle_state.json
+${EVENT_PNF_REGISTRATION}                %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_pnf_registration_event.json
+${DCAE_HEALTH_CHECK_BODY}                %{WORKSPACE}/tests/dcae/testcases/assets/json_events/dcae_healthcheck.json
+
+#DCAE Health Check
+${CONFIG_BINDING_URL}                    http://localhost:8443
+${CB_HEALTHCHECK_PATH}                   /healthcheck
+${CB_SERVICE_COMPONENT_PATH}             /service_component/
+${VES_Service_Name1}                     dcae-controller-ves-collector
+${VES_Service_Name2}                     ves-collector-not-exist
\ No newline at end of file