aboutsummaryrefslogtreecommitdiffstats
path: root/test/csit/tests/music/music-suite/music-test.robot
blob: 4eda86919343e38dbe7e0e6ed31e78911a5a154d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
*** Settings ***
Library       OperatingSystem
Library       RequestsLibrary
Library       json

*** Variables ***
${MESSAGE}    {"ping": "ok"}
${BASIC}    Basic
${AUTHVALUE}    bXVzaWM6bXVzaWM=
${Authorization}    ${BASIC} ${AUTHVALUE}

#global variables
${generatedAID}

*** Test Cases ***
Check Cassandra Docker Container
    [Documentation]    It checks cassandra docker container is running
    ${rc}    ${output}=    Run and Return RC and Output    docker ps
    Log To Console              *********************
    Log To Console              retrurn_code = ${rc}
    Log To Console              output = ${output}
    Should Be Equal As Integers    ${rc}    0
    Should Contain    ${output}    music-db

Check Zookeeper Docker Container
    [Documentation]    It checks zookeeper docker container is running
    ${rc}    ${output}=    Run and Return RC and Output    docker ps
    Log To Console              *********************
    Log To Console              retrurn_code = ${rc}
    Log To Console              output = ${output}
    Should Be Equal As Integers    ${rc}    0
    Should Contain    ${output}    music-zk

Check Tomcat Docker Container
    [Documentation]    It checks tomcat docker container is running
    ${rc}    ${output}=    Run and Return RC and Output    docker ps
    Log To Console              *********************
    Log To Console              retrurn_code = ${rc}
    Log To Console              output = ${output}
    Should Be Equal As Integers    ${rc}    0
    Should Contain    ${output}    music-tomcat

Check Music War Docker Container
    [Documentation]    It checks music.war docker container is running
    ${rc}    ${output}=    Run and Return RC and Output    docker ps
    Log To Console              *********************
    Log To Console              retrurn_code = ${rc}
    Log To Console              output = ${output}
    Should Be Equal As Integers    ${rc}    0
    Should Contain    ${output}    music-war

Healthcheck Cassandra
    [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/service/pingCassandra/ONE     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

Healthcheck Zookeeper
    [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/service/pingZookeeper     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

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    Authorization=${Authorization}   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    Authorization=${Authorization}   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    Authorization=${Authorization}   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    Authorization=${Authorization}   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    Authorization=${Authorization}   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    Authorization=${Authorization}   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    Authorization=${Authorization}   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    Authorization=${Authorization}   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    Authorization=${Authorization}   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    Authorization=${Authorization}   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    Authorization=${Authorization}   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 ***