Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
NFV - Network Functions Virtualisation
api-tests
Commits
457cab7f
Commit
457cab7f
authored
Oct 11, 2018
by
Elian Kraja
Browse files
Updated all TPs with RESTInstance library.
parent
0b283d6c
Changes
22
Hide whitespace changes
Inline
Side-by-side
SOL003/VNFIndicator-API_nxw/IndividualSubscription.robot
View file @
457cab7f
*** Settings ***
Library
HttpLibrary.HTTP
Library
JSONSchemaLibrary
schemas/
Resource
environment/generic.txt
# Generic Parameters
Resource
environment/individualSubscription.txt
Library
OperatingSystem
Library
REST
${VNFM_SCHEMA}
://
${VNFM_HOST}
:
${VNFM_PORT}
*** Test Cases ***
GET Individual Subscription
Log
Trying to get a given subscription identified by subscriptionId
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
GET
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions/
${subscriptionId}
Response Status Code Should Equal
200
Response Header Should Equal
Content-Type
${CONTENT_TYPE_JSON}
Integer
response status
200
Log
Received a 200 OK as expected
${result}
=
Get Response Body
${contentType}
=
Output
response headers Content-Type
Should Contain
${contentType}
application/json
${result}
=
Output
response body
${json}
=
evaluate
json.loads('''
${result}
''')
json
Validate Json
VnfIndicatorSubscriptions.schema.json
${json}
Log
Trying to validate result with VnfIndicatorSubscription schema
Validate Json
VnfIndicatorSubscription.schema.json
${json}
Log
Validated VnfIndicatorSubscription schema
GET Subscription - Negative (Not Found)
Log
Trying to perform a request on a subscriptionID which doesn't exist
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
GET
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions/
${erroneousSubscriptionId}
R
esponse
S
tatus
Code Should Equal
404
Integer
r
esponse
s
tatus
404
Log
Received 404 Not Found as expected
${problemDetails}
=
Get Response Body
${contentType}
=
Output
response headers Content-Type
Should Contain
${contentType}
application/json
${problemDetails}
=
Output
response body
${json}
=
evaluate
json.loads('''
${problemDetails}
''')
json
Response Header Should Equal
Content-Type
${CONTENT_TYPE_JSON}
Log
Trying to validate ProblemDetails
Validate Json
ProblemDetails.schema.json
${json}
Log
Validation OK
GET Subscription - Negative (Unauthorized: Wrong Token)
Log
Trying to perform a negative get, using wrong authorization bearer
Pass Execution If
${VNFM_AUTH_USAGE}
=
= 0
Skipping test as NFVO is not supporting authentication
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Pass Execution If
${VNFM_AUTH_USAGE}
=
= 0
Skipping test as VNFM is not supporting authentication
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
GET
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions/
${subscriptionId}
R
esponse
S
tatus
Code Should Equal
401
Integer
r
esponse
s
tatus
401
Log
Received 401 Unauthorized as expected
${problemDetails}
=
Get Response Body
${json}
=
evaluate
json.loads('''
${problemDetails}
''')
json
Response Header Should Equal
Content-Type
${CONTENT_TYPE_JSON}
${contentType}
=
Output
response headers Content-Type
Should Contain
${contentType}
application/json
Log
Trying to validate ProblemDetails
${problemDetails}
=
Output
response body
${json}
=
evaluate
json.loads('''
${problemDetails}
''')
json
Validate Json
ProblemDetails.schema.json
${json}
Log
Validation OK
DELETE Subscription
Log
Trying to perform a DELETE on a subscriptionId
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
DELETE
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions/
${subscriptionId}
R
esponse
S
tatus
Code Should Equal
204
Integer
r
esponse
s
tatus
204
Log
Received 204 No Content as expected
Log
Trying to get the deleted element
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
GET
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions/
${subscriptionId}
Response Status Code Should Equal
404
Log
The subscriptionId is not present in database
DELETE Subscription - Negative (Not Found)
Log
Trying to perform a DELETE on a subscriptionId which doesn't exist
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
DELETE
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions/
${erroneousSubscriptionId}
R
esponse
S
tatus
Code Should Equal
404
Integer
r
esponse
s
tatus
404
Log
The subscriptionId is not present in database
${problemDetails}
=
Get Response Body
${contentType}
=
Output
response headers Content-Type
Should Contain
${contentType}
application/json
${problemDetails}
=
Output
${json}
=
evaluate
json.loads('''
${problemDetails}
''')
json
Response Header Should Equal
Content-Type
${CONTENT_TYPE_JSON}
Log
Trying to validate ProblemDetails
Validate Json
ProblemDetails.schema.json
${json}
Log
Validation OK
PUT Subscription - (Method not implemented)
Log
Trying to perform a PUT. This method should not be implemented
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
PUT
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions/
${subscriptionId}
R
esponse
S
tatus
Code Should Equal
405
Integer
r
esponse
s
tatus
405
Log
Received 405 Method not implemented as expected
PATCH Subscription - (Method not implemented)
Log
Trying to perform a PATCH. This method should not be implemented
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Http Request
PATCH
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions/
${subscriptionId}
Response Status Code Should Equal
405
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
PATCH
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions/
${subscriptionId}
Integer
response status
405
Log
Received 405 Method not implemented as expected
POST Subscription - (Method not implemented)
Log
Trying to perform a POST. This method should not be implemented
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
POST
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions/
${subscriptionId}
R
esponse
S
tatus
Code Should Equal
405
Integer
r
esponse
s
tatus
405
Log
Received 405 Method not implemented as expected
SOL003/VNFIndicator-API_nxw/IndividualVNFindicator.robot
View file @
457cab7f
*** Settings ***
Library
HttpLibrary.HTTP
Library
JSONSchemaLibrary
schemas/
Resource
environment/generic.txt
# Generic Parameters
Resource
environment/individualVnfIndicator.txt
Library
REST
${VNFM_SCHEMA}
://
${VNFM_HOST}
:
${VNFM_PORT}
*** Test Cases ***
GET Individual VNF Indicator
Log
The GET method reads a VNF indicator.
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
GET
${apiRoot}
/
${apiName}
/
${apiVersion}
/indicators/
${vnfInstanceId}
/
${indicatorId}
Response Status Code Should Equal
200
${result}
=
Get Response Body
${json}
=
evaluate
json.loads('''
${vnfPkgInfo}
''')
json
Response Header Should Equal
Content-Type
${CONTENT_TYPE_JSON}
Integer
response status
200
${contentType}
=
Output
response headers Content-Type
Should Contain
${contentType}
application/json
Log
Trying to validate response
${result}
=
Output
response body
${json}
=
evaluate
json.loads('''
${result}
''')
json
Validate Json
vnfIndicators.schema.json
${json}
Log
Validation OK
GET Individual VNF Indicator - Negative (Not Found)
Log
Trying to perform a negative get, using an erroneous package ID
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization" : "
${VNFM_AUTHENTICATION}
"}
GET
${apiRoot}
/
${apiName}
/
${apiVersion}
/indicators/
${vnfInstanceId}
/
${erroneousIndicatorId}
R
esponse
S
tatus
Code Should Equal
404
Integer
r
esponse
s
tatus
404
Log
Received 404 Not Found as expected
${problemDetails}
=
Get Response Body
${json}
=
evaluate
json.loads('''
${problemDetails}
''')
json
Response Header Should Equal
Content-Type
${CONTENT_TYPE_JSON}
${contentType}
=
Output
response headers Content-Type
Should Contain
${contentType}
application/json
Log
Trying to validate ProblemDetails
${problemDetails}
=
Output
response body
${json}
=
evaluate
json.loads('''
${problemDetails}
''')
json
Validate Json
ProblemDetails.schema.json
${json}
Log
Validation OK
GET Individual VNF Indicator - Negative (Unauthorized: Wrong Token)
Log
Trying to perform a negative get, using wrong authorization bearer
Pass Execution If
${VNFM_AUTH_USAGE}
=
= 0
Skipping test as NFVO is not supporting authentication
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Set Request Header
Authorization
${NEG_AUTHORIZATION}
Pass Execution If
${VNFM_AUTH_USAGE}
=
= 0
Skipping test as VNFM is not supporting authentication
Set Headers
{"Accept" : "
${ACCEPT_JSON}
"}
Set Headers
{"Authorization": "
${NEG_AUTHORIZATION}
"}
GET
${apiRoot}
/
${apiName}
/
${apiVersion}
/indicators/
${vnfInstanceId}
/
${indicatorId}
R
esponse
S
tatus
Code Should Equal
401
Integer
r
esponse
s
tatus
401
Log
Received 401 Unauthorized as expected
${problemDetails}
=
Get Response Body
${json}
=
evaluate
json.loads('''
${problemDetails}
''')
json
Response Header Should Equal
Content-Type
${CONTENT_TYPE_JSON}
${contentType}
=
Output
response headers Content-Type
Should Contain
${contentType}
application/json
Log
Trying to validate ProblemDetails
${problemDetails}
=
Output
response body
${json}
=
evaluate
json.loads('''
${problemDetails}
''')
json
Validate Json
ProblemDetails.schema.json
${json}
Log
Validation OK
GET Individual VNF Indicator - Negative (Unauthorized: No Token)
Log
Trying to perform a negative get, without authentication token.
Pass Execution If
${VNFM_AUTH_USAGE}
=
= 0
Skipping test as NFVO is not supporting authentication
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Pass Execution If
${VNFM_AUTH_USAGE}
=
= 0
Skipping test as VNFM is not supporting authentication
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
GET
${apiRoot}
/
${apiName}
/
${apiVersion}
/indicators/
${vnfInstanceId}
/
${indicatorId}
R
esponse
S
tatus
Code Should Equal
401
Integer
r
esponse
s
tatus
401
Log
Received 401 Unauthozired as expected
${problemDetails}
=
Get Response Body
${json}
=
evaluate
json.loads('''
${problemDetails}
''')
json
Response Header Should Equal
Content-Type
${CONTENT_TYPE_JSON}
${contentType}
=
Output
response headers Content-Type
Should Contain
${contentType}
application/json
Log
Trying to validate ProblemDetails
${problemDetails}
=
Output
response body
${json}
=
evaluate
json.loads('''
${problemDetails}
''')
json
Validate Json
ProblemDetails.schema.json
${json}
Log
Validation OK
POST Individual VNF Indicator (Method not implemented)
Log
Trying to perform a POST (method should not be implemented)
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
POST
${apiRoot}
/
${apiName}
/
${apiVersion}
/indicators/
${vnfInstanceId}
/
${indicatorId}
R
esponse
S
tatus
Code Should Equal
405
Integer
r
esponse
s
tatus
405
Log
Received 405 Method not implemented as expected
PUT Individual VNF Indicator (Method not implemented)
Log
Trying to perform a PUT. This method should not be implemented
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
PUT
${apiRoot}
/
${apiName}
/
${apiVersion}
/indicators/
${vnfInstanceId}
/
${indicatorId}
R
esponse
S
tatus
Code Should Equal
405
Integer
r
esponse
s
tatus
405
Log
Received 405 Method not implemented as expected
PATCH Individual VNF Indicator (Method not implemented)
Log
Trying to perform a PATCH. This method should not be implemented
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Http Request
PATCH
${apiRoot}
/
${apiName}
/
${apiVersion}
/indicators/
${vnfInstanceId}
/
${indicatorId}
Response Status Code Should Equal
405
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
PATCH
${apiRoot}
/
${apiName}
/
${apiVersion}
/indicators/
${vnfInstanceId}
/
${indicatorId}
Integer
response status
405
Log
Received 405 Method not implemented as expected
DELETE Individual VNF Indicator (Method not implemented)
Log
Trying to perform a DELETE. This method should not be implemented
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
DELETE
${apiRoot}
/
${apiName}
/
${apiVersion}
/indicators/
${vnfInstanceId}
/
${indicatorId}
R
esponse
S
tatus
Code Should Equal
405
Integer
r
esponse
s
tatus
405
Log
Received 405 Method not implemented as expected
SOL003/VNFIndicator-API_nxw/Subscriptions.robot
View file @
457cab7f
*** Settings ***
Library
HttpLibrary.HTTP
Library
JSONSchemaLibrary
schemas/
Resource
environment/generic.txt
# Generic Parameters
Resource
environment/subscriptions.txt
Library
OperatingSystem
Library
JSONLibrary
Library
REST
${VNFM_SCHEMA}
://
${VNFM_HOST}
:
${VNFM_PORT}
*** Test Cases ***
GET Subscription
Log
Trying to get the list of subscriptions
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
GET
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions
Response Status Code Should Equal
200
Response Header Should Equal
Content-Type
${CONTENT_TYPE_JSON}
Integer
response status
200
Log
Received a 200 OK as expected
${result}
=
Get Response Body
${contentType}
=
Output
response headers Content-Type
Should Contain
${contentType}
application/json
${result}
=
Output
response body
${json}
=
evaluate
json.loads('''
${result}
''')
json
Validate Json
VnfIndicatorSubscription.schema.json
${json}
Log
Validated VnfIndicatorSubscription schema
GET Subscription - Filter
Log
Trying to get the list of subscriptions using filters
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
GET
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions?
${POS_FILTER}
Response Status Code Should Equal
200
Response Header Should Equal
Content-Type
${CONTENT_TYPE_JSON}
Integer
response status
200
${contentType}
=
Output
response headers Content-Type
Should Contain
${contentType}
application/json
Log
Received a 200 OK as expected
${result}
=
Get R
esponse
B
ody
${result}
=
Output
r
esponse
b
ody
${json}
=
evaluate
json.loads('''
${result}
''')
json
Validate Json
VnfIndicatorSubscription
s
.schema.json
${json}
Validate Json
VnfIndicatorSubscription.schema.json
${json}
Log
Validated VnfIndicatorSubscriptions schema
GET Subscription - Negative Filter
Log
Trying to get the list of subscriptions using filters with wrong attribute name
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
GET
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions?
${NEG_FILTER}
Response Status Code Should Equal
400
Response Header Should Equal
Content-Type
${CONTENT_TYPE_JSON}
Integer
response status
400
Log
Received a 400 Bad Request as expected
${problemDetails}
=
Get Response Body
${json}
=
evaluate
json.loads('''
${problemDetails}
''')
json
Response Header Should Equal
Content-Type
${CONTENT_TYPE_JSON}
${contentType}
=
Output
response headers Content-Type
Should Contain
${contentType}
application/json
Log
Trying to validate ProblemDetails
${problemDetails}
=
Output
response body
${json}
=
evaluate
json.loads('''
${problemDetails}
''')
json
Validate Json
ProblemDetails.schema.json
${json}
Log
Validation OK
GET Subscription - Negative (Not Found)
Log
Trying to perform a request on a Uri which doesn't exist
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
GET
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscription
R
esponse
S
tatus
Code Should Equal
404
Integer
r
esponse
s
tatus
404
Log
Received 404 Not Found as expected
${problemDetails}
=
Get Response Body
${json}
=
evaluate
json.loads('''
${problemDetails}
''')
json
Response Header Should Equal
Content-Type
${CONTENT_TYPE_JSON}
${contentType}
=
Output
response headers Content-Type
Should Contain
${contentType}
application/json
Log
Trying to validate ProblemDetails
${problemDetails}
=
Output
response body
${json}
=
evaluate
json.loads('''
${problemDetails}
''')
json
Validate Json
ProblemDetails.schema.json
${json}
Log
Validation OK
GET Subscription - Negative (Unauthorized: Wrong Token)
Log
Trying to perform a negative get, using wrong authorization bearer
Pass Execution If
${VNFM_AUTH_USAGE}
=
= 0
Skipping test as VNFM is not supporting authentication
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
GET
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions
R
esponse
S
tatus
Code Should Equal
401
Integer
r
esponse
s
tatus
401
Log
Received 401 Unauthorized as expected
${problemDetails}
=
Get Response Body
${json}
=
evaluate
json.loads('''
${problemDetails}
''')
json
Response Header Should Equal
Content-Type
${CONTENT_TYPE_JSON}
${contentType}
=
Output
response headers Content-Type
Should Contain
${contentType}
application/json
Log
Trying to validate ProblemDetails
${problemDetails}
=
Output
response body
${json}
=
evaluate
json.loads('''
${problemDetails}
''')
json
Validate Json
ProblemDetails.schema.json
${json}
Log
Validation OK
POST Subscription
Log
Trying to create a new subscription
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Set Request Header
Content-Type
${CONTENT_TYPE_JSON}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Set Headers
{"Content-Type": "
${CONTENT_TYPE_JSON}
"}
${body}
=
Get File
json/subscriptions.json
Set Request Body
${body}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
POST
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions
Response Status Code Should Equal
201
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
POST
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions
${body}
Integer
response status
201
Log
Received 201 Created as expected
Response Should Have Header
Location
${headers}
=
Output
response headers
Should Contain
${headers}
Location
Log
Response has header Location
${result}
=
Get R
esponse
B
ody
${result}
=
Output
r
esponse
b
ody
${json}
=
evaluate
json.loads('''
${result}
''')
json
Validate Json
VnfIndicatorSubscription
s
.schema.json
${json}
Validate Json
VnfIndicatorSubscription.schema.json
${json}
Log
Validation of VnfIndicatorSubscription OK
POST Subscription - DUPLICATION
Log
Trying to create a subscription with an already created content
Pass Execution If
${VNFM_DUPLICATION}
=
= 0
VNFM is not permitting duplication. Skipping the test
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Set Request Header
Content-Type
${CONTENT_TYPE_JSON}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Set Headers
{"Content-Type": "
${CONTENT_TYPE_JSON}
"}
${body}
=
Get File
json/subscriptions.json
Set Request Body
${body}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
POST
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions
Response Status Code Should Equal
201
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
POST
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions
${body}
Integer
response status
201
Log
Received 201 Created as expected
Response Should Have Header
Location
${headers}
=
Output
response headers
Should Contain
${headers}
Location
Log
Response has header Location
${result}
Get R
esponse
B
ody
${result}
=
Output
r
esponse
b
ody
${json}
=
evaluate
json.loads('''
${result}
''')
json
Validate Json
VnfIndictorSubscription
s
.schema.json
${json}
Log
Validation of VnfIndicatorSubscription
s
OK
Validate Json
VnfIndic
a
torSubscription.schema.json
${json}
Log
Validation of VnfIndicatorSubscription OK
POST Subscription - NO DUPLICATION
Log
Trying to create a subscription with an already created content
Pass Execution If
${VNFM_DUPLICATION}
=
= 1
VNFM is permitting duplication. Skipping the test
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Set Request Header
Content-Type
${CONTENT_TYPE_JSON}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Set Headers
{"Content-Type": "
${CONTENT_TYPE_JSON}
"}
${body}
=
Get File
json/subscriptions.json
Set Request Body
${body}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
POST
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions
Response Status Code Should Equal
303
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
POST
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions
${body}
Integer
response status
303
Log
Received 303 See Other as expected
Response Should Have Header
Location
Log
Response header contains Location
${headers}
=
Output
response headers
Should Contain
${headers}
Location
Log
Response has header Location
PUT Subscription - (Method not implemented)
Log
Trying to perform a PUT. This method should not be implemented
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
PUT
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions
R
esponse
S
tatus
Code Should Equal
405
Integer
r
esponse
s
tatus
405
Log
Received 405 Method not implemented as expected
PATCH Subscription - (Method not implemented)
Log
Trying to perform a PATCH. This method should not be implemented
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Http Request
PATCH
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions
Response Status Code Should Equal
405
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
PATCH
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions
Integer
response status
405
Log
Received 405 Method not implemented as expected
DELETE Subscription - (Method not implemented)
Log
Trying to perform a DELETE. This method should not be implemented
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
DELETE
${apiRoot}
/
${apiName}
/
${apiVersion}
/subscriptions
R
esponse
S
tatus
Code Should Equal
405
Integer
r
esponse
s
tatus
405
Log
Received 405 Method not implemented as expected
SOL003/VNFIndicator-API_nxw/VNFIndicators.robot
View file @
457cab7f
*** Settings ***
Library
HttpLibrary.HTTP
Library
JSONSchemaLibrary
schemas/
Resource
environment/generic.txt
# Generic Parameters
Library
JSONLibrary
Resource
environment/vnfIndicators.txt
Library
REST
${VNFM_SCHEMA}
://
${VNFM_HOST}
:
${VNFM_PORT}
*** Test Cases ***
GET all Indicators
Log
The GET method queries multiple VNF indicators
Create HTTP Context
${VNFM_HOST}
:
${VNFM_PORT}
${VNFM_SCHEMA}
Set Request Header
Accept
${ACCEPT_JSON}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Request Header
Authorization
${VNFM_AUTHENTICATION}
Set Headers
{"Accept": "
${ACCEPT_JSON}
"}
Run Keyword If
${VNFM_AUTH_USAGE}
=
= 1
Set Headers
{"Authorization": "
${VNFM_AUTHENTICATION}
"}
GET
${apiRoot}
/
${apiName}
/
${apiVersion}
/indicators
Response Status Code Should Equal
200
${result}
=
Get Response Body
${json}
=
evaluate
json.loads('''
${result}
''')
json
Response Header Should Equal
Content-Type
${CONTENT_TYPE_JSON}
Integer
response status
200
${contentType}
=
Output
response headers Content-Type
Should Contain
${contentType}
application/json
Log
Trying to validate response
${result}
=
Output
response body
${json}
=
evaluate
json.loads('''
${result}
''')
json
Validate Json
vnfIndicators.schema.json
${json}
Log
Validation OK
GET all Indicators - Filter
Log
The GET method queries multiple VNF indicators using Attribute-based filtering parameters