Add DMaaP PubSub HealthCheck
Issue-ID: INT-752
Change-Id: I35c6eec7cd37b0f76b6fd9ec7bf67633c47ae36b
Signed-off-by: Brian Freeman <bf1936@att.com>
diff --git a/robot/assets/templates/mr_publish.template b/robot/assets/templates/mr_publish.template
new file mode 100644
index 0000000..acb1032
--- /dev/null
+++ b/robot/assets/templates/mr_publish.template
@@ -0,0 +1,5 @@
+{
+ "test": "success",
+ "timestamp": "${timestamp}"
+}
+
diff --git a/robot/resources/mr_interface.robot b/robot/resources/mr_interface.robot
index 1a858f2..625198d 100644
--- a/robot/resources/mr_interface.robot
+++ b/robot/resources/mr_interface.robot
@@ -1,30 +1,58 @@
*** Settings ***
-Documentation The main interface for interacting with Message router. It handles low level stuff like managing the http request library and message router required fields
-Library RequestsClientCert
-Library RequestsLibrary
-Library UUID
+Documentation The main interface for interacting with Message router. It handles low level stuff like managing the http request library and message router required fields
+Library RequestsClientCert
+Library RequestsLibrary
+Library UUID
Resource global_properties.robot
*** Variables ***
${MR_HEALTH_CHECK_PATH} /topics
+${MR_PUB_HEALTH_CHECK_PATH} /events/TEST_TOPIC
+${MR_SUB_HEALTH_CHECK_PATH} /events/TEST_TOPIC/g1/c4?timeout=5000
${MR_ENDPOINT} ${GLOBAL_MR_SERVER_PROTOCOL}://${GLOBAL_INJECTED_MR_IP_ADDR}:${GLOBAL_MR_SERVER_PORT}
+${MR_PUBLISH_TEMPLATE} robot/assets/templates/mr_publish.template
*** Keywords ***
Run MR Health Check
[Documentation] Runs MR Health check
${resp}= Run MR Get Request ${MR_HEALTH_CHECK_PATH}
- Should Be Equal As Strings ${resp.status_code} 200
+ Should Be Equal As Strings ${resp.status_code} 200
Should Contain ${resp.json()} topics
+Run MR PubSub Health Check
+ [Documentation] Runs MR PubSub Health check
+ ${resp}= Run MR Get Request ${MR_SUB_HEALTH_CHECK_PATH}
+ # topic may not be created which is a 400 error
+ ${resp}= Run MR Post Request ${MR_PUB_HEALTH_CHECK_PATH}
+ Should Be Equal As Strings ${resp.status_code} 200
+ Should Contain ${resp.json()} serverTimeMs Failed to Write Data
+ ${resp}= Run MR Get Request ${MR_SUB_HEALTH_CHECK_PATH}
+ # ${resp} is an array
+ Should Be Equal As Strings ${resp.status_code} 200
+ Should Contain ${resp.json()[0]} timestamp Failed to Read Data
+
Run MR Get Request
[Documentation] Runs MR Get request
[Arguments] ${data_path}
- ${session}= Create Session mr ${MR_ENDPOINT}
+ ${session}= Create Session mr ${MR_ENDPOINT}
${uuid}= Generate UUID
${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
- ${resp}= Get Request mr ${data_path} headers=${headers}
+ ${resp}= Get Request mr ${data_path} headers=${headers}
+ Log Received response from message router ${resp.text}
+ [Return] ${resp}
+
+Run MR Post Request
+ [Documentation] Runs MR Post request
+ [Arguments] ${data_path}
+ ${session}= Create Session mr ${MR_ENDPOINT}
+ ${timestamp}= Get Current Date
+ ${dict}= Create Dictionary timestamp=${timestamp}
+ ${data}= Fill JSON Template File ${MR_PUBLISH_TEMPLATE} ${dict}
+ ${uuid}= Generate UUID
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
+ ${resp}= Post Request mr ${data_path} data=${data} headers=${headers}
Log Received response from message router ${resp.text}
[Return] ${resp}
diff --git a/robot/testsuites/health-check.robot b/robot/testsuites/health-check.robot
index 0464b00..7807ca1 100644
--- a/robot/testsuites/health-check.robot
+++ b/robot/testsuites/health-check.robot
@@ -66,6 +66,11 @@
[Tags] health core
Run MR Health Check
+Basic DMAAP Message Router PubSub Health Check
+ [Tags] healthmr
+ [Timeout] 30
+ Run MR PubSub Health Check
+
Basic External API NBI Health Check
[Tags] health externalapi api small
Run NBI Health Check