Newer
Older
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
*** Settings ***
Library JSONSchemaLibrary schemas/
Resource environment/generic.txt # Generic Parameters
Library JSONLibrary
Library OperatingSystem
Resource environment/pmJobs.txt
Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT}
Library MockServerLibrary
*** Test Cases ***
GET all Pm Jobs
Log Trying to get all PM Jobs present in the VNFM
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs
Integer response status 200
${contentType}= Output response headers Content-Type
Should Contain ${contentType} ${CONTENT_TYPE_JSON}
Log Trying to validate response
${result}= Output response body
${json}= evaluate json.loads('''${result}''') json
Validate Json PmJob.schema.json ${json}
Log Validation OK
Log Checking that reports element is missing
${reports}= Get Value From Json ${json} $..reports
Should Be Empty ${reports}
Log Reports element is empty as expected
GET all Pm Jobs - Filter
Log Trying to get all PM Jobs present in the VNFM, using filter params
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?${POS_FILTER}
Integer response status 200
${contentType}= Output response headers Content-Type
Should Contain ${contentType} ${CONTENT_TYPE_JSON}
Log Trying to validate response
${result}= Output response body
${json}= evaluate json.loads('''${result}''') json
Validate Json PmJob.schema.json ${json}
Log Validation OK
GET all Pm Jobs - all_fields
Log Trying to get all PM Jobs present in the VNFM, using 'all_fields' filter
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?all_fields
Integer response status 200
${contentType}= Output response headers Content-Type
Should Contain ${contentType} ${CONTENT_TYPE_JSON}
Log Trying to validate response
${result}= Output response body
${json}= evaluate json.loads('''${result}''') json
Validate Json PmJob.schema.json ${json}
Log Validation OK
Log Trying to validate criteria schema
${criteria}= Get Value From Json ${json} $..criteria
Validate Json criteria.schema.json ${criteria[0]}
Log Validation for criteria schema OK
Log Trying to validate criteria schema
${reports}= Get Value From Json ${json} $..reports
Validate Json reports.schema.json ${reports[0]}
Log Validation for reports schema OK
Log Validating _links schema
${links}= Get Value From Json ${json} $.._links
Validate Json links.schema.json ${links[0]}
Log Validation for _links schema OK
GET all Pm Jobs - exclude_default
Log Trying to get all VNF Packages present in the VNFM, using filter params
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?exclude_default
Integer response status 200
${contentType}= Output response headers Content-Type
Should Contain ${contentType} ${CONTENT_TYPE_JSON}
Log Trying to validate response
${result}= Output response body
${json}= evaluate json.loads('''${result}''') json
Validate Json PmJob.schema.json ${json}
Log Validation OK
Log Checking that reports element is missing
${reports}= Get Value From Json ${json} $..reports
Should Be Empty ${reports}
Log Reports element is empty as expected
GET all Pm Jobs - fields
Log Trying to get all VNF Packages present in the VNFM, using filter params
Pass Execution If ${FIELDS_USAGE} == 0 Skipping test as VNFM is not supporting 'fields'
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?fields=${fields}
Integer response status 200
${contentType}= Output response headers Content-Type
Should Contain ${contentType} ${CONTENT_TYPE_JSON}
Log Trying to validate response
${result}= Output response body
${json}= evaluate json.loads('''${result}''') json
Validate Json PmJob.schema.json ${json}
Log Validation OK
Log Trying to validate criteria schema
${criteria}= Get Value From Json ${json} $..criteria
Validate Json criteria.schema.json ${criteria[0]}
Log Validation for criteria schema OK
Log Trying to validate criteria schema
${reports}= Get Value From Json ${json} $..reports
Validate Json reports.schema.json ${reports[0]}
Log Validation for reports schema OK
GET all Pm Jobs - exclude_fields
Log Trying to get all VNF Packages present in the VNFM, using filter params
Pass Execution If ${FIELDS_USAGE} == 0 Skipping test as VNFM is not supporting 'fields'
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?fields=${fields}
Integer response status 200
${contentType}= Output response headers Content-Type
Should Contain ${contentType} ${CONTENT_TYPE_JSON}
Log Trying to validate response
${result}= Output response body
${json}= evaluate json.loads('''${result}''') json
Validate Json PmJob.schema.json ${json}
Log Validation OK
Log Checking that reports element is missing
${reports}= Get Value From Json ${json} $..reports
Should Be Empty ${reports}
Log Reports element is empty as expected
Log Checking that criteria element is missing
${criteria}= Get Value From Json ${json} $..criteria
Should Be Empty ${criteria}
Log Criteria element is empty as expected
GET all Pm Jobs - Negative (wronge filter name)
Log Trying to get all PM Jobs present in the VNFM, using an erroneous filter param
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?${NEG_FILTER}
Integer response status 400
Log Received 400 Bad Request as expected
${contentType}= Output response headers Content-Type
Should Contain ${contentType} ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
${problemDetails}= Output response headers Content-Type
${json}= evaluate json.loads('''${problemDetails}''') json
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
GET all Pm Jobs (Negative: Not found)
Log Trying to perform a GET on a erroneous URI
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/pm_job # wrong URI /pm_job instead of /pm_jobs
Integer response status 404
Log Received 404 Not Found as expected
${contentType}= Output response headers Content-Type
Should Contain ${contentType} ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
${problemDetails}= Output response headers Content-Type
${json}= evaluate json.loads('''${problemDetails}''') json
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
POST all PM Jobs - Create new PM Job
Log Creating a new PM Job
Set Headers {"Accept": "${ACCEPT_JSON}"}
Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"}
${body}= Get File jsons/CreatePmJobRequest.json
POST ${apiRoot}/${apiName}/${apiVersion}/pm_jobs ${body}
Integer response status 201
Log Received 201 Created as expected
${contentType}= Output response headers Content-Type
Should Contain ${contentType} ${CONTENT_TYPE_JSON}
Log Trying to validate response
${result}= Output response body
${json}= evaluate json.loads('''${result}''') json
Validate Json PmJob.schema.json ${json}
Log Validation OK
PUT all PM Jobs - (Method not implemented)
Log Trying to perform a PUT. This method should not be implemented
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"}
PUT ${apiRoot}/${apiName}/${apiVersion}/pm_jobs
Integer response status 405
Log Received 405 Method not implemented as expected
PATCH all Pm Jobs - (Method not implemented)
Log Trying to perform a PATCH. This method should not be implemented
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"}
PATCH ${apiRoot}/${apiName}/${apiVersion}/pm_jobs
Integer response status 405
Log Received 405 Method not implemented as expected
DELETE all Pm Jobs - (Method not implemented)
Log Trying to perform a DELETE. This method should not be implemented
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Headers {"Authorization": "${VNFM_AUTHENTICATION}"}
DELETE ${apiRoot}/${apiName}/${apiVersion}/pm_jobs
Integer response status 405
Log Received 405 Method not implemented as expected