Move CSIT to integration/csit repo
[integration/csit.git] / tests / dmaap / mrpubsub / mrpubsub.robot
diff --git a/tests/dmaap/mrpubsub/mrpubsub.robot b/tests/dmaap/mrpubsub/mrpubsub.robot
new file mode 100755 (executable)
index 0000000..c711bd7
--- /dev/null
@@ -0,0 +1,73 @@
+*** Settings ***
+Library           OperatingSystem
+Library           RequestsLibrary
+Library           requests
+Library           Collections
+Library           String
+
+*** Variables ***
+${TARGETURL_PUBLISH}        http://${DMAAP_MR_IP}:3904/events/TestTopic1
+${TARGETURL_TOPICS}         http://${DMAAP_MR_IP}:3904/topics
+${TARGETURL_SUBSCR}         http://${DMAAP_MR_IP}:3904/events/TestTopic1/CG1/C1?timeout=1000
+${TEST_DATA}                {"topicName": "TestTopic1"}
+${TOPIC_DATA}               {"topicName":"FirstTopic","topicDescription":"This is a TestTopic","partitionCount":"1","replicationCount":"3","transactionEnabled":"true"}
+
+*** Test Cases ***
+Run Topic Creation and Publish
+    [Documentation]                                    Topic Creation
+    [Timeout]                                          1 minute
+    ${resp}=                                           PostCall                                        ${TARGETURL_PUBLISH}            ${TEST_DATA}
+    log                                                ${TARGETURL_PUBLISH}
+    log                                                ${resp.text}
+    Should Be Equal As Strings         ${resp.status_code}             200
+    ${count}=                          Evaluate                                        $resp.json().get('count')
+    log                                                        'JSON Response Code:'${resp}
+
+Run Subscribing a message status
+    [Documentation]                            Subscribide message status
+    [Timeout]                                          1 minute
+       ${resp}=                                        GetCall                                                 ${TARGETURL_SUBSCR}
+    log                                                        ${TARGETURL_SUBSCR}
+    Should Be Equal As Strings      ${resp.status_code}                200
+    log                                        'JSON Response Code :'${resp}
+    
+Run check topics are exisiting
+    [Documentation]                                    Get the count of the Topics
+    [Timeout]                                          1 minute
+    ${resp}=                                           GetCall                         ${TARGETURL_TOPICS}
+    log                                        ${TARGETURL_TOPICS}
+    Should Be Equal As Strings      ${resp.status_code}                200
+    log                                                        'JSON Response Code :'${resp}
+    ${topics}=                                 Evaluate                                $resp.json().get('topics')
+    log                                                                ${topics}
+    ${ListLength}=                             Get Length                      ${topics}
+    log                                                        ${ListLength}
+    List Should Contain Value          ${topics}                       TestTopic1
+
+Run Publich and Subscribe a message
+    [Documentation]                            Publish and Subscribe the message
+    [Timeout]                                          1 minute
+       ${resp}=                                        PostCall                                        ${TARGETURL_PUBLISH}            ${TEST_DATA}
+    log                                                ${TARGETURL_PUBLISH}
+    log                                                ${resp.text}
+    Should Be Equal As Strings         ${resp.status_code}             200
+    ${sub_resp}=                                       GetCall                                                 ${TARGETURL_SUBSCR}
+    log                                                        ${TARGETURL_SUBSCR}
+    Should Be Equal As Strings      ${sub_resp.status_code}            200
+    log                                        'JSON Response Code :'${sub_resp}
+    ${ListLength}=                  Get Length                         ${sub_resp.json()}
+    log                                                        ${ListLength}
+    List Should Contain Value       ${sub_resp.json()}                                 {"topicName":"TestTopic1"}    case_insensitive=yes
+
+*** 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}
+
+GetCall
+    [Arguments]     ${url}
+    ${headers}=     Create Dictionary    Accept=application/json    Content-Type=application/json
+    ${resp}=           Evaluate    requests.get('${url}', headers=${headers}, verify=False)    requests
+    [Return]           ${resp}