From 4dfc5cae074065951ba0b5d516cf350f7303a8e3 Mon Sep 17 00:00:00 2001 From: Leonardo Bellini Date: Thu, 1 Mar 2018 10:56:57 -0600 Subject: Onboard music CSIT into integration project Issue-ID: MUSIC-43 Change-Id: I680d6255a9d396bf6a546268b4c58cff4b66b2e4 Signed-off-by: Leonardo Bellini --- test/csit/plans/music/music-test-plan/setup.sh | 60 +++++++++ test/csit/plans/music/music-test-plan/teardown.sh | 28 ++++ test/csit/plans/music/music-test-plan/testplan.txt | 3 + .../scripts/music/music-scripts/music_script.sh | 25 ++++ test/csit/tests/music/music-suite/__init__.robot | 4 + .../music-suite/data/createkeyspace-network.json | 6 + .../music-suite/data/createkeyspace-simple.json | 6 + .../music/music-suite/data/createkeyspace.json | 6 + .../tests/music/music-suite/data/createtable.json | 12 ++ .../music/music-suite/data/deleterow_eventual.json | 5 + .../tests/music/music-suite/data/dropkeyspace.json | 1 + .../tests/music/music-suite/data/droptable.json | 12 ++ .../music/music-suite/data/getrow_atomic.json | 3 + .../music/music-suite/data/insertrow_eventual.json | 8 ++ .../csit/tests/music/music-suite/data/onboard.json | 6 + .../music/music-suite/data/updaterow_atomic.json | 7 + .../music/music-suite/data/updaterow_eventual.json | 7 + test/csit/tests/music/music-suite/music-test.robot | 148 +++++++++++++++++++++ 18 files changed, 347 insertions(+) create mode 100755 test/csit/plans/music/music-test-plan/setup.sh create mode 100755 test/csit/plans/music/music-test-plan/teardown.sh create mode 100644 test/csit/plans/music/music-test-plan/testplan.txt create mode 100755 test/csit/scripts/music/music-scripts/music_script.sh create mode 100644 test/csit/tests/music/music-suite/__init__.robot create mode 100644 test/csit/tests/music/music-suite/data/createkeyspace-network.json create mode 100644 test/csit/tests/music/music-suite/data/createkeyspace-simple.json create mode 100644 test/csit/tests/music/music-suite/data/createkeyspace.json create mode 100644 test/csit/tests/music/music-suite/data/createtable.json create mode 100644 test/csit/tests/music/music-suite/data/deleterow_eventual.json create mode 100644 test/csit/tests/music/music-suite/data/dropkeyspace.json create mode 100644 test/csit/tests/music/music-suite/data/droptable.json create mode 100644 test/csit/tests/music/music-suite/data/getrow_atomic.json create mode 100644 test/csit/tests/music/music-suite/data/insertrow_eventual.json create mode 100644 test/csit/tests/music/music-suite/data/onboard.json create mode 100644 test/csit/tests/music/music-suite/data/updaterow_atomic.json create mode 100644 test/csit/tests/music/music-suite/data/updaterow_eventual.json create mode 100644 test/csit/tests/music/music-suite/music-test.robot (limited to 'test') diff --git a/test/csit/plans/music/music-test-plan/setup.sh b/test/csit/plans/music/music-test-plan/setup.sh new file mode 100755 index 000000000..517837c9a --- /dev/null +++ b/test/csit/plans/music/music-test-plan/setup.sh @@ -0,0 +1,60 @@ +#!/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. +# + +# +# add here eventual scripts needed for music +# +echo "##########################################################"; +echo "#"; +echo "# music scripts calling"; +echo "#"; +echo "##########################################################"; +source ${WORKSPACE}/test/csit/scripts/music/music-scripts/music_script.sh + +# +# add here below the start of all docker containers needed for music CSIT testing +# +echo "##########################################################"; +echo "#"; +echo "# music scripts docker containers spinoff"; +echo "#"; +echo "##########################################################"; + +# +# add here all the configuration steps eventually needed to be carried out for music CSIT testing +# +echo "##########################################################"; +echo "#"; +echo "# music configuration step"; +echo "#"; +echo "##########################################################"; + + +# +# add here all ROBOT_VARIABLES settings +# +echo "##########################################################"; +echo "#"; +echo "# music robot variables settings"; +echo "#"; +echo "##########################################################"; +ROBOT_VARIABLES="-v MUSIC_HOSTNAME:http://localhost -v MUSIC_PORT:8080 -v COND_HOSTNAME:http://localhost -v COND_PORT:8091" + +echo ${ROBOT_VARIABLES} + + + diff --git a/test/csit/plans/music/music-test-plan/teardown.sh b/test/csit/plans/music/music-test-plan/teardown.sh new file mode 100755 index 000000000..884a64f71 --- /dev/null +++ b/test/csit/plans/music/music-test-plan/teardown.sh @@ -0,0 +1,28 @@ +#!/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. +# + + +# +# add here below the killing of all docker containers used for music CSIT testing +# +echo "##########################################################"; +echo "#"; +echo "# music scripts docker containers killing"; +echo "#"; +echo "##########################################################"; +# kill-instance.sh + diff --git a/test/csit/plans/music/music-test-plan/testplan.txt b/test/csit/plans/music/music-test-plan/testplan.txt new file mode 100644 index 000000000..e53f32674 --- /dev/null +++ b/test/csit/plans/music/music-test-plan/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +music/music-suite diff --git a/test/csit/scripts/music/music-scripts/music_script.sh b/test/csit/scripts/music/music-scripts/music_script.sh new file mode 100755 index 000000000..f16062ad9 --- /dev/null +++ b/test/csit/scripts/music/music-scripts/music_script.sh @@ -0,0 +1,25 @@ +#!/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. +# +echo "######################################################################" +echo "### " +echo "### This is ${WORKSPACE}/test/csit/scripts/music/music-scripts/music_script.sh" +echo "### " +echo "######################################################################" +# +# add here whatever commands is needed to prepare the music CSIT testing +# + diff --git a/test/csit/tests/music/music-suite/__init__.robot b/test/csit/tests/music/music-suite/__init__.robot new file mode 100644 index 000000000..fb654d7bb --- /dev/null +++ b/test/csit/tests/music/music-suite/__init__.robot @@ -0,0 +1,4 @@ +*** Settings *** +Documentation Integration - Suite 1 + + diff --git a/test/csit/tests/music/music-suite/data/createkeyspace-network.json b/test/csit/tests/music/music-suite/data/createkeyspace-network.json new file mode 100644 index 000000000..9514bae92 --- /dev/null +++ b/test/csit/tests/music/music-suite/data/createkeyspace-network.json @@ -0,0 +1,6 @@ +{ + "consistencyInfo":{"type":"eventual"}, + "durabilityOfWrites":"true", + "keyspaceName":"txt", + "replicationInfo":{"class" :"NetworkTopologyStrategy","DC1":"1", "DC2":"1", "DC3":"1"} +} diff --git a/test/csit/tests/music/music-suite/data/createkeyspace-simple.json b/test/csit/tests/music/music-suite/data/createkeyspace-simple.json new file mode 100644 index 000000000..31f4b6a59 --- /dev/null +++ b/test/csit/tests/music/music-suite/data/createkeyspace-simple.json @@ -0,0 +1,6 @@ +{ + "consistencyInfo":{"type":"eventual"}, + "durabilityOfWrites":"true", + "keyspaceName":"txt", + "replicationInfo":{"class" :"SimpleStrategy","replication_factor": 1} +} diff --git a/test/csit/tests/music/music-suite/data/createkeyspace.json b/test/csit/tests/music/music-suite/data/createkeyspace.json new file mode 100644 index 000000000..31f4b6a59 --- /dev/null +++ b/test/csit/tests/music/music-suite/data/createkeyspace.json @@ -0,0 +1,6 @@ +{ + "consistencyInfo":{"type":"eventual"}, + "durabilityOfWrites":"true", + "keyspaceName":"txt", + "replicationInfo":{"class" :"SimpleStrategy","replication_factor": 1} +} diff --git a/test/csit/tests/music/music-suite/data/createtable.json b/test/csit/tests/music/music-suite/data/createtable.json new file mode 100644 index 000000000..71b471630 --- /dev/null +++ b/test/csit/tests/music/music-suite/data/createtable.json @@ -0,0 +1,12 @@ +{ + "clusteringOrder":null, + "consistencyInfo":{"type":"eventual"}, + "fields":{"PRIMARY KEY":"(name)", + "name":"text","job":"text","threadIndex":"int"}, + "keyspaceName":null, + "primaryKey":null, + "properties":null, + "sortingKey":null, + "tableName":null +} + diff --git a/test/csit/tests/music/music-suite/data/deleterow_eventual.json b/test/csit/tests/music/music-suite/data/deleterow_eventual.json new file mode 100644 index 000000000..ed9a28948 --- /dev/null +++ b/test/csit/tests/music/music-suite/data/deleterow_eventual.json @@ -0,0 +1,5 @@ +{ + "consistencyInfo": {"type":"eventual"}, + "timestamp":null, + "ttl":null +} diff --git a/test/csit/tests/music/music-suite/data/dropkeyspace.json b/test/csit/tests/music/music-suite/data/dropkeyspace.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/test/csit/tests/music/music-suite/data/dropkeyspace.json @@ -0,0 +1 @@ +{} diff --git a/test/csit/tests/music/music-suite/data/droptable.json b/test/csit/tests/music/music-suite/data/droptable.json new file mode 100644 index 000000000..71b471630 --- /dev/null +++ b/test/csit/tests/music/music-suite/data/droptable.json @@ -0,0 +1,12 @@ +{ + "clusteringOrder":null, + "consistencyInfo":{"type":"eventual"}, + "fields":{"PRIMARY KEY":"(name)", + "name":"text","job":"text","threadIndex":"int"}, + "keyspaceName":null, + "primaryKey":null, + "properties":null, + "sortingKey":null, + "tableName":null +} + diff --git a/test/csit/tests/music/music-suite/data/getrow_atomic.json b/test/csit/tests/music/music-suite/data/getrow_atomic.json new file mode 100644 index 000000000..65f9d76f5 --- /dev/null +++ b/test/csit/tests/music/music-suite/data/getrow_atomic.json @@ -0,0 +1,3 @@ +{ + "consistencyInfo": {"type":"atomic"} +} diff --git a/test/csit/tests/music/music-suite/data/insertrow_eventual.json b/test/csit/tests/music/music-suite/data/insertrow_eventual.json new file mode 100644 index 000000000..56e1762e8 --- /dev/null +++ b/test/csit/tests/music/music-suite/data/insertrow_eventual.json @@ -0,0 +1,8 @@ +{ + "consistencyInfo": {"type":"eventual"}, + "row_specification": null, + "timestamp": null, + "ttl": null, + "values":{"name":"emp1","job":"researcher1518791824160","threadIndex":"0"} +} + diff --git a/test/csit/tests/music/music-suite/data/onboard.json b/test/csit/tests/music/music-suite/data/onboard.json new file mode 100644 index 000000000..5c74f82d5 --- /dev/null +++ b/test/csit/tests/music/music-suite/data/onboard.json @@ -0,0 +1,6 @@ +{ +"appname": "lb7254", +"userId": "music", +"password": "music", +"isAAF": "false" +} diff --git a/test/csit/tests/music/music-suite/data/updaterow_atomic.json b/test/csit/tests/music/music-suite/data/updaterow_atomic.json new file mode 100644 index 000000000..782da144f --- /dev/null +++ b/test/csit/tests/music/music-suite/data/updaterow_atomic.json @@ -0,0 +1,7 @@ +{ + "consistencyInfo": {"type":"atomic"}, + "row_specification":null, + "timestamp":null, + "ttl":null, + "values":{"job":"star-wars-actor"} +} diff --git a/test/csit/tests/music/music-suite/data/updaterow_eventual.json b/test/csit/tests/music/music-suite/data/updaterow_eventual.json new file mode 100644 index 000000000..f8b3e9d2e --- /dev/null +++ b/test/csit/tests/music/music-suite/data/updaterow_eventual.json @@ -0,0 +1,7 @@ +{ + "consistencyInfo": {"type":"eventual"}, + "row_specification":null, + "timestamp":null, + "ttl":null, + "values":{"job":"star-wars-actor"} +} diff --git a/test/csit/tests/music/music-suite/music-test.robot b/test/csit/tests/music/music-suite/music-test.robot new file mode 100644 index 000000000..bb94d2955 --- /dev/null +++ b/test/csit/tests/music/music-suite/music-test.robot @@ -0,0 +1,148 @@ +*** Settings *** +Library OperatingSystem +Library RequestsLibrary +Library json + +*** Variables *** +${MESSAGE} {"ping": "ok"} + +#global variables +${generatedAID} + +*** Test Cases *** +Get Music Version + [Documentation] It sends a REST GET request to retrieve the Music.war version + Create Session musicaas ${MUSIC_HOSTNAME}:${MUSIC_PORT} + &{headers}= Create Dictionary Content-Type=application/json Accept=application/json + ${resp}= Get Request musicaas /MUSIC/rest/v2/version headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 200 + +Music AddOnBoarding + [Documentation] It sends a REST POST request to Music to Onboard a new application + Create Session musicaas ${MUSIC_HOSTNAME}:${MUSIC_PORT} + ${data}= Get Binary File ${CURDIR}${/}data${/}onboard.json + &{headers}= Create Dictionary ns=lb7254 userId=music password=music Content-Type=application/json Accept=application/json + ${resp}= Post Request musicaas /MUSIC/rest/v2/admin/onboardAppWithMusic data=${data} headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + ${response_json} json.loads ${resp.content} + ${generatedAID}= Convert To String ${response_json['Generated AID']} + Set Global Variable ${generatedAID} + Log To Console generatedAID = ${generatedAID} + Should Be Equal As Integers ${resp.status_code} 200 + +Music CreateKeyspace + [Documentation] It sends a REST POST request to Music to create a new keyspace in Cassandra + Create Session musicaas ${MUSIC_HOSTNAME}:${MUSIC_PORT} + ${data}= Get Binary File ${CURDIR}${/}data${/}createkeyspace.json + &{headers}= Create Dictionary ns=lb7254 userId=music password=music aid=${generatedAID} Content-Type=application/json Accept=application/json + ${resp}= Post Request musicaas /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace data=${data} headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 200 + +Music CreateTable + [Documentation] It sends a REST POST request to Music to create a new Table in Cassandra + Create Session musicaas ${MUSIC_HOSTNAME}:${MUSIC_PORT} + ${data}= Get Binary File ${CURDIR}${/}data${/}createtable.json + &{headers}= Create Dictionary ns=lb7254 userId=music password=music aid=${generatedAID} Content-Type=application/json Accept=application/json + ${resp}= Post Request musicaas /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace/tables/MusicOnapTable data=${data} headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 200 + +Music InsertRow + [Documentation] It sends a REST POST request to Music to create a new row in Cassandra + Create Session musicaas ${MUSIC_HOSTNAME}:${MUSIC_PORT} + ${data}= Get Binary File ${CURDIR}${/}data${/}insertrow_eventual.json + &{headers}= Create Dictionary ns=lb7254 userId=music password=music aid=${generatedAID} Content-Type=application/json Accept=application/json + ${resp}= Post Request musicaas /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace/tables/MusicOnapTable/rows/?row=emp1 data=${data} headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 200 + +Music ReadRowJustInserted + [Documentation] It sends a REST GET request to Music to Read the row just inserted in Cassandra + Create Session musicaas ${MUSIC_HOSTNAME}:${MUSIC_PORT} + &{headers}= Create Dictionary ns=lb7254 userId=music password=music aid=${generatedAID} Content-Type=application/json Accept=application/json + ${resp}= Get Request musicaas /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace/tables/MusicOnapTable/rows?name=emp1 headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 200 + +Music UpdateRowInAtomicWay + [Documentation] It sends a REST PUT request to Music to create a new row in Cassandra + Create Session musicaas ${MUSIC_HOSTNAME}:${MUSIC_PORT} + ${data}= Get Binary File ${CURDIR}${/}data${/}updaterow_atomic.json + &{headers}= Create Dictionary ns=lb7254 userId=music password=music aid=${generatedAID} Content-Type=application/json Accept=application/json + ${resp}= Put Request musicaas /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace/tables/MusicOnapTable/rows?name=emp1 data=${data} headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 200 + +Music ReadRowAfterUpdate + [Documentation] It sends a REST GET request to Music to Read the row just inserted in Cassandra + Create Session musicaas ${MUSIC_HOSTNAME}:${MUSIC_PORT} + &{headers}= Create Dictionary ns=lb7254 userId=music password=music aid=${generatedAID} Content-Type=application/json Accept=application/json + ${resp}= Get Request musicaas /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace/tables/MusicOnapTable/rows?name=emp1 headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 200 + +Music DeleteRow + [Documentation] It sends a REST DELETE request to Music to delete a row in Cassandra + Create Session musicaas ${MUSIC_HOSTNAME}:${MUSIC_PORT} + ${data}= Get Binary File ${CURDIR}${/}data${/}deleterow_eventual.json + &{headers}= Create Dictionary ns=lb7254 userId=music password=music aid=${generatedAID} Content-Type=application/json Accept=application/json + ${resp}= Delete Request musicaas /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace/tables/MusicOnapTable/rows?name=emp1 data=${data} headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 200 + +Music DropTable + [Documentation] It sends a REST Delete request to Music to drop one existing Table in Cassandra + Create Session musicaas ${MUSIC_HOSTNAME}:${MUSIC_PORT} + ${data}= Get Binary File ${CURDIR}${/}data${/}droptable.json + &{headers}= Create Dictionary ns=lb7254 userId=music password=music aid=${generatedAID} Content-Type=application/json Accept=application/json + ${resp}= Delete Request musicaas /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace/tables/MusicOnapTable data=${data} headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 200 + +Music DropKeyspace + [Documentation] It sends a REST DELETE request to Music to drop one existing keyspace in Cassandra + Create Session musicaas ${MUSIC_HOSTNAME}:${MUSIC_PORT} + ${data}= Get Binary File ${CURDIR}${/}data${/}dropkeyspace.json + &{headers}= Create Dictionary ns=lb7254 userId=music password=music aid=${generatedAID} Content-Type=application/json Accept=application/json + ${resp}= Delete Request musicaas /MUSIC/rest/v2/keyspaces/MusicOnapKeyspace data=${data} headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 200 + + +Music DeleteOnBoarding + [Documentation] It sends a REST DELETE request to Music to remove a previosly onboarded application + Create Session musicaas ${MUSIC_HOSTNAME}:${MUSIC_PORT} + ${data}= Get Binary File ${CURDIR}${/}data${/}onboard.json + &{headers}= Create Dictionary ns=lb7254 userId=music password=music aid=${generatedAID} Content-Type=application/json Accept=application/json + ${resp}= Delete Request musicaas /MUSIC/rest/v2/admin/onboardAppWithMusic data=${data} headers=${headers} + Log To Console ********************* + Log To Console response = ${resp} + Log To Console body = ${resp.text} + Should Be Equal As Integers ${resp.status_code} 200 + +*** Keywords *** + -- cgit 1.2.3-korg