Move CSIT to integration/csit repo
[integration/csit.git] / tests / dmaap-buscontroller / single-mr-suite / test1.robot
diff --git a/tests/dmaap-buscontroller/single-mr-suite/test1.robot b/tests/dmaap-buscontroller/single-mr-suite/test1.robot
new file mode 100644 (file)
index 0000000..d68b9ed
--- /dev/null
@@ -0,0 +1,104 @@
+*** Settings ***
+Resource          ../../common.robot
+Library           Collections
+Library           json
+Library           OperatingSystem
+Library           RequestsLibrary
+Library           HttpLibrary.HTTP
+Library           String
+
+
+*** Variables ***
+${MESSAGE}    Hello, world!
+${DBC_URI}    webapi
+${DBC_URL}    http://${DMAAPBC_IP}:8080/${DBC_URI}
+${TOPIC_NS}     org.onap.dmaap.onapCSIT
+${LOC}          csit-sanfrancisco
+${PUB_CORE}     "dcaeLocationName": "${LOC}", "clientRole": "org.onap.dmaap.client.pub", "action": [ "pub", "view" ] 
+${SUB_CORE}     "dcaeLocationName": "${LOC}", "clientRole": "org.onap.dmaap.client.sub", "action": [ "sub", "view" ] 
+${PUB}          { ${PUB_CORE} }
+${SUB}          { ${SUB_CORE} }
+${TOPIC1_DATA}  { "topicName":"singleMRtopic1", "topicDescription":"generated for CSIT", "owner":"dgl"}
+${TOPIC2_DATA}  { "topicName":"singleMRtopic2", "topicDescription":"generated for CSIT", "owner":"dgl", "clients": [ ${PUB}, ${SUB}] }
+${TOPIC3_DATA}  { "topicName":"singleMRtopic3", "topicDescription":"generated for CSIT", "owner":"dgl"}
+${PUB3_DATA}    { "fqtn": "${TOPIC_NS}.singleMRtopic3", ${PUB_CORE} }
+${SUB3_DATA}    { "fqtn": "${TOPIC_NS}.singleMRtopic3", ${SUB_CORE} }
+
+
+
+*** Test Cases ***
+Url Test
+    [Documentation]    Check if www.onap.org can be reached
+    Create Session     sanity          http://onap.readthedocs.io
+    ${resp}=           Get Request   sanity    /  
+    Should Be Equal As Integers  ${resp.status_code}  200
+
+(DMAAP-293)
+    [Documentation]        Create Topic w no clients POST ${DBC_URI}/topics endpoint
+    ${resp}=         PostCall    ${DBC_URL}/topics    ${TOPIC1_DATA}
+    Should Be Equal As Integers  ${resp.status_code}  201   
+
+(DMAAP-294)
+    [Documentation]        Create Topic w pub and sub clients POST ${DBC_URI}/topics endpoint
+    ${resp}=         PostCall    ${DBC_URL}/topics    ${TOPIC2_DATA}
+    Should Be Equal As Integers  ${resp.status_code}  201
+
+(DMAAP-295)
+    [Documentation]        Create Topic w no clients and then add a client POST ${DBC_URI}/mr_clients endpoint
+    ${resp}=         PostCall    ${DBC_URL}/topics    ${TOPIC3_DATA}
+    Should Be Equal As Integers  ${resp.status_code}  201   
+    ${resp}=         PostCall    ${DBC_URL}/mr_clients    ${PUB3_DATA}
+    Should Be Equal As Integers  ${resp.status_code}  200   
+    ${resp}=         PostCall    ${DBC_URL}/mr_clients    ${SUB3_DATA}
+    Should Be Equal As Integers  ${resp.status_code}  200   
+
+(DMAAP-297)
+    [Documentation]    Query for all topics and specific topic
+    Create Session     get          ${DBC_URL}
+    ${resp}=           Get Request   get    /topics  
+    Should Be Equal As Integers  ${resp.status_code}  200
+    ${resp}=           Get Request   get    /topics/${TOPIC_NS}.singleMRtopic3
+    Should Be Equal As Integers  ${resp.status_code}  200
+
+(DMAAP-301)
+    [Documentation]    Delete a subscriber
+    Create Session     get          ${DBC_URL}
+    ${resp}=           Get Request   get    /topics/${TOPIC_NS}.singleMRtopic3
+    Should Be Equal As Integers  ${resp.status_code}  200
+       ${tmp}=            Get Json Value      ${resp.text}           /clients/1/mrClientId
+       ${clientId}=       Remove String       ${tmp}         \"
+    ${resp}=           DelCall   ${DBC_URL}/mr_clients/${clientId}
+    Should Be Equal As Integers  ${resp.status_code}  204
+
+(DMAAP-302)
+    [Documentation]    Delete a publisher
+    Create Session     get          ${DBC_URL}
+    ${resp}=           Get Request   get    /topics/${TOPIC_NS}.singleMRtopic3
+    Should Be Equal As Integers  ${resp.status_code}  200
+       ${tmp}=            Get Json Value      ${resp.text}           /clients/0/mrClientId
+       ${clientId}=       Remove String       ${tmp}         \"
+    ${resp}=           DelCall   ${DBC_URL}/mr_clients/${clientId}
+    Should Be Equal As Integers  ${resp.status_code}  204
+
+
+*** Keywords ***
+CheckDir
+    [Arguments]                 ${path}
+    Directory Should Exist      ${path}
+
+CheckUrl
+    [Arguments]                  ${session}   ${path}     ${expect}
+    ${resp}=                     Get  Request          ${session} ${path} 
+    Should Be Equal As Integers  ${resp.status_code}  ${expect}
+
+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}
+
+DelCall
+    [Arguments]    ${url}           
+    ${headers}=    Create Dictionary    Accept=application/json    Content-Type=application/json
+    ${resp}=       Evaluate    requests.delete('${url}', headers=${headers},verify=False)    requests
+    [Return]       ${resp}