blob: 29e9dd3eb60ddc7ce245369b8d9a087433059060 [file] [log] [blame]
*** 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
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 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}
# Always Write twice to catch lost first message
${resp}= Run MR Post Request ${MR_PUB_HEALTH_CHECK_PATH}
${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}
${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}
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}