Add CSIT test for DMaaP Data Router component

Change-Id: Icaf961e3f71ceeaa2732b53b9d446b22f50932d0
Signed-off-by: Conor Ward <conor.ward@ericsson.com>
Issue-ID: DMAAP-156
diff --git a/test/csit/plans/dmaap-datarouter/dr-suite/setup.sh b/test/csit/plans/dmaap-datarouter/dr-suite/setup.sh
new file mode 100755
index 0000000..31e4d1f
--- /dev/null
+++ b/test/csit/plans/dmaap-datarouter/dr-suite/setup.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+source ${SCRIPTS}/common_functions.sh
+
+# Clone DMaaP Data Router repo
+mkdir -p $WORKSPACE/archives/dmaapdr
+cd $WORKSPACE/archives/dmaapdr
+
+git clone --depth 1 https://gerrit.onap.org/r/dmaap/datarouter -b master
+git pull
+cd $WORKSPACE/archives/dmaapdr/datarouter/datarouter-prov/src/main/resources/docker-compose/
+
+# start DMaaP DR containers with docker compose and configuration from docker-compose.yml
+docker login -u docker -p docker nexus3.onap.org:10001
+docker-compose up -d
+
+# Wait for initialization of Docker container for datarouter-node, datarouter-prov and mysql
+for i in {1..50}; do
+    if [ $(docker inspect --format '{{ .State.Running }}' datarouter-node) ] && \
+        [ $(docker inspect --format '{{ .State.Running }}' datarouter-prov) ] && \
+        [ $(docker inspect --format '{{ .State.Running }}' mysql) ]
+    then
+        echo "DR Service Running"
+        break
+    else
+        echo sleep $i
+        sleep $i
+    fi
+done
+
+DR_PROV_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-prov)
+DR_GATEWAY_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.Gateway}}{{end}}' datarouter-prov)
+
+echo DR_PROV_IP=${DR_PROV_IP}
+echo DR_GATEWAY_IP=${DR_GATEWAY_IP}
+
+echo "Sleep 15 seconds to allow startup script to execute on datarouter-prov container"
+sleep 15
+
+docker exec -i datarouter-prov sh -c "curl -k  -X PUT https://$DR_PROV_IP:8443/internal/api/NODES?val=node.datarouternew.com\|$DR_GATEWAY_IP"
+docker exec -i datarouter-prov sh -c "curl -k  -X PUT https://$DR_PROV_IP:8443/internal/api/PROV_AUTH_ADDRESSES?val=prov.datarouternew.com\|$DR_GATEWAY_IP"
+
+#Pass any variables required by Robot test suites in ROBOT_VARIABLES
+ROBOT_VARIABLES="-v DR_PROV_IP:${DR_PROV_IP}"
diff --git a/test/csit/plans/dmaap-datarouter/dr-suite/teardown.sh b/test/csit/plans/dmaap-datarouter/dr-suite/teardown.sh
new file mode 100755
index 0000000..f3ddf47
--- /dev/null
+++ b/test/csit/plans/dmaap-datarouter/dr-suite/teardown.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+kill-instance.sh datarouter-node
+kill-instance.sh datarouter-prov
+kill-instance.sh mysql
diff --git a/test/csit/plans/dmaap-datarouter/dr-suite/testplan.txt b/test/csit/plans/dmaap-datarouter/dr-suite/testplan.txt
new file mode 100755
index 0000000..8349a05
--- /dev/null
+++ b/test/csit/plans/dmaap-datarouter/dr-suite/testplan.txt
@@ -0,0 +1,2 @@
+# Place the suites in run order.
+dmaap-datarouter/dr-suite
diff --git a/test/csit/tests/dmaap-datarouter/dr-suite/dr-suite.robot b/test/csit/tests/dmaap-datarouter/dr-suite/dr-suite.robot
new file mode 100755
index 0000000..d1de683
--- /dev/null
+++ b/test/csit/tests/dmaap-datarouter/dr-suite/dr-suite.robot
@@ -0,0 +1,28 @@
+*** Settings ***
+Library           OperatingSystem
+Library           RequestsLibrary
+Library           requests
+Library           Collections
+Library           String
+
+*** Variables ***
+${TARGETURL_FEED}       https://${DR_PROV_IP}:8443
+${CREATE_FEED_DATA}     {"name": "CSIT_Test", "version": "m1.0", "description": "CSIT_Test", "business_description": "CSIT_Test", "suspend": false, "deleted": false, "changeowner": true, "authorization": {"classification": "unclassified", "endpoint_addrs": ["${DR_PROV_IP}"],  "endpoint_ids": [{"password": "rs873m", "id": "rs873m"}]}}
+
+*** Test Cases ***
+Run Feed Creation
+    [Documentation]                 Feed Creation
+    [Timeout]                       1 minute
+    ${resp}=                        PostFeed                         ${TARGETURL_FEED}        ${CREATE_FEED_DATA}
+    log                             ${TARGETURL_FEED}
+    log                             ${resp.text}
+    Should Be Equal As Strings      ${resp.status_code}              201
+    log                             'JSON Response Code:'${resp}
+
+
+*** Keywords ***
+PostFeed
+    [Arguments]    ${url}               ${data}
+    ${headers}=    Create Dictionary    X-ATT-DR-ON-BEHALF-OF=rs873m    Content-Type=application/vnd.att-dr.feed
+    ${resp}=       Evaluate    requests.post('${url}',data='${data}', headers=${headers},verify=False)    requests
+    [Return]       ${resp}