From 0b5f6ae9175971a3bf9e630c2d9782c36409855a Mon Sep 17 00:00:00 2001 From: sg481n Date: Wed, 27 Sep 2017 15:05:11 +0000 Subject: Add aaf robot testcases to integration Adding csit testcases of aaf to integration project. Modified setup.sh and aafapi.robot file Issue-id: AAF-78 Change-Id: I7c1c194d632583fbd8ed0764b40ec8aa95a307e0 Signed-off-by: sg481n --- test/csit/plans/aaf/aafapi/setup.sh | 72 +++++++++++++++++++++++++++++++++ test/csit/plans/aaf/aafapi/teardown.sh | 22 ++++++++++ test/csit/plans/aaf/aafapi/testplan.txt | 2 + test/csit/tests/aaf/aafapi/aafapi.robot | 63 +++++++++++++++++++++++++++++ 4 files changed, 159 insertions(+) create mode 100644 test/csit/plans/aaf/aafapi/setup.sh create mode 100644 test/csit/plans/aaf/aafapi/teardown.sh create mode 100644 test/csit/plans/aaf/aafapi/testplan.txt create mode 100644 test/csit/tests/aaf/aafapi/aafapi.robot (limited to 'test') diff --git a/test/csit/plans/aaf/aafapi/setup.sh b/test/csit/plans/aaf/aafapi/setup.sh new file mode 100644 index 000000000..bfaff925c --- /dev/null +++ b/test/csit/plans/aaf/aafapi/setup.sh @@ -0,0 +1,72 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# ONAP AAF +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights +# reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END============================================ +# =================================================================== +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# +# Place the scripts in run order: +source ${SCRIPTS}/common_functions.sh + +# Clone AAF Authz repo +mkdir -p $WORKSPACE/archives/aafcsit +cd $WORKSPACE/archives/aafcsit +#unset http_proxy https_proxy +git clone --depth 1 http://gerrit.onap.org/r/aaf/authz -b master +git pull +cd $WORKSPACE/archives/aafcsit/authz/authz-service/src/main/resources/docker-compose +pwd +chmod -R 777 $WORKSPACE/archives/aafcsit/authz/authz-service/src/main/resources/docker-compose + + +# start aaf containers with docker compose and configuration from docker-compose.yml +docker-compose up -d + +# Wait for initialization of Docker contaienr for AAF & Cassandra +for i in {1..50}; do + if [ $(docker inspect --format '{{ .State.Running }}' dockercompose_aaf_container_1) ] && \ + [ $(docker inspect --format '{{ .State.Running }}' dockercompose_cassandra_container_1) ] && \ + [ $(docker inspect --format '{{ .State.Running }}' dockercompose_aaf_container_1) ] + then + echo "AAF Service Running" + break + else + echo sleep $i + sleep $i + fi +done + + +AAF_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_aaf_container_1) +CASSANDRA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_cassandra_container_1) + + +echo AAF_IP=${AAF_IP} +echo CASSANDRA_IP=${CASSANDRA_IP} + + +# Wait for initialization of docker services +for i in {1..50}; do + curl -sS -m 1 ${AAF_IP}:8101 && break + echo sleep $i + sleep $i +done + +#Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v AAF_IP:${AAF_IP}" diff --git a/test/csit/plans/aaf/aafapi/teardown.sh b/test/csit/plans/aaf/aafapi/teardown.sh new file mode 100644 index 000000000..1f7b2853d --- /dev/null +++ b/test/csit/plans/aaf/aafapi/teardown.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# + +kill-instance.sh dockercompose_aaf_container_1 +kill-instance.sh dockercompose_cassandra_container_1 + diff --git a/test/csit/plans/aaf/aafapi/testplan.txt b/test/csit/plans/aaf/aafapi/testplan.txt new file mode 100644 index 000000000..ea18ca6d8 --- /dev/null +++ b/test/csit/plans/aaf/aafapi/testplan.txt @@ -0,0 +1,2 @@ +# Place the suites in run order. +aaf/aafapi diff --git a/test/csit/tests/aaf/aafapi/aafapi.robot b/test/csit/tests/aaf/aafapi/aafapi.robot new file mode 100644 index 000000000..b1f8e746d --- /dev/null +++ b/test/csit/tests/aaf/aafapi/aafapi.robot @@ -0,0 +1,63 @@ +*** Settings *** +Library OperatingSystem +Library RequestsLibrary +Library requests +Library Collections +Library String + +*** Variables *** +${TARGETURL_NAMESPACE} http://${AAF_IP}:8101/authz/nss/org.openecomp +${TARGETURL_PERMS} http://${AAF_IP}:8101/authz/perms/user/dgl@openecomp.org +${TARGETURL_ROLES} http://${AAF_IP}:8101/authz/roles/user/dgl@openecomp.org +${username} dgl@openecomp.org +${password} ecomp_admin + + +*** Test Cases *** +View Namesapce + [Tags] get + CreateSession aaf http://${AAF_IP}:8101 + &{headers}= Create Dictionary Authorization=Basic ZGdsQG9wZW5lY29tcC5vcmc6ZWNvbXBfYWRtaW4= Content-Type=application/json Accept=application/json + ${resp}= Get Request aaf /authz/nss/org.openecomp headers=&{headers} + Should Be Equal As Strings ${resp.status_code} 200 + log 'JSON Response Code :'${resp.text} + +View by User Permission + [Tags] get + CreateSession aaf http://${AAF_IP}:8101 + &{headers}= Create Dictionary Authorization=Basic ZGdsQG9wZW5lY29tcC5vcmc6ZWNvbXBfYWRtaW4= Content-Type=application/json Accept=application/json + ${resp}= Get Request aaf authz/perms/user/dgl@openecomp.org headers=&{headers} + Should Be Equal As Strings ${resp.status_code} 200 + log 'JSON Response Code :'${resp.text} + +View by User Role + [Tags] get + CreateSession aaf http://${AAF_IP}:8101 + &{headers}= Create Dictionary Authorization=Basic ZGdsQG9wZW5lY29tcC5vcmc6ZWNvbXBfYWRtaW4= Content-Type=application/json Accept=application/json + ${resp}= Get Request aaf authz/roles/user/dgl@openecomp.org headers=&{headers} + Should Be Equal As Strings ${resp.status_code} 200 + log 'JSON Response Code :'${resp.text} + +Cleanup Namespace ( 424 Response - Delete dependencies and try again) + [Tags] delete + CreateSession aaf http://${AAF_IP}:8101 + &{headers}= Create Dictionary Authorization=Basic ZGdsQG9wZW5lY29tcC5vcmc6ZWNvbXBfYWRtaW4= Content-Type=application/json Accept=application/json + ${resp}= Delete Request aaf authz/ns/org.openecomp.dmaapBC headers=&{headers} + Should Be Equal As Strings ${resp.status_code} 424 + log 'JSON Response Code :'${resp.text} + +Add Data ( Add Admin to Namespace Explicit ) + [Tags] post + CreateSession aaf http://${AAF_IP}:8101 + &{headers}= Create Dictionary Authorization=Basic ZGdsQG9wZW5lY29tcC5vcmc6ZWNvbXBfYWRtaW4= Content-Type=application/json Accept=application/json + ${resp}= Post Request aaf authz/ns/org.openecomp.dmaapBC/admin/alexD@openecomp.org headers=&{headers} + Should Be Equal As Strings ${resp.status_code} 403 + log 'JSON Response Code :'${resp.text} + +View Explicit Permission + [Tags] post + CreateSession aaf http://${AAF_IP}:8101 + &{headers}= Create Dictionary Authorization=Basic ZGdsQG9wZW5lY29tcC5vcmc6ZWNvbXBfYWRtaW4= Content-Type=application/json Accept=application/json + ${resp}= Post Request aaf authz/perms/user/m99751@dmaapBC.openecomp.org headers=&{headers} + Should Be Equal As Strings ${resp.status_code} 406 + log 'JSON Response Code :'${resp.text} \ No newline at end of file -- cgit 1.2.3-korg