summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xtest/csit/plans/music/music-test-plan/setup.sh60
-rwxr-xr-xtest/csit/plans/music/music-test-plan/teardown.sh28
-rw-r--r--test/csit/plans/music/music-test-plan/testplan.txt3
-rwxr-xr-xtest/csit/scripts/music/music-scripts/music_script.sh25
-rw-r--r--test/csit/tests/music/music-suite/__init__.robot4
-rw-r--r--test/csit/tests/music/music-suite/data/createkeyspace-network.json6
-rw-r--r--test/csit/tests/music/music-suite/data/createkeyspace-simple.json6
-rw-r--r--test/csit/tests/music/music-suite/data/createkeyspace.json6
-rw-r--r--test/csit/tests/music/music-suite/data/createtable.json12
-rw-r--r--test/csit/tests/music/music-suite/data/deleterow_eventual.json5
-rw-r--r--test/csit/tests/music/music-suite/data/dropkeyspace.json1
-rw-r--r--test/csit/tests/music/music-suite/data/droptable.json12
-rw-r--r--test/csit/tests/music/music-suite/data/getrow_atomic.json3
-rw-r--r--test/csit/tests/music/music-suite/data/insertrow_eventual.json8
-rw-r--r--test/csit/tests/music/music-suite/data/onboard.json6
-rw-r--r--test/csit/tests/music/music-suite/data/updaterow_atomic.json7
-rw-r--r--test/csit/tests/music/music-suite/data/updaterow_eventual.json7
-rw-r--r--test/csit/tests/music/music-suite/music-test.robot148
18 files changed, 347 insertions, 0 deletions
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 <dockercontainername>
+
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 ***
+