Newer
Older
*** Settings ***
Library JSONSchemaLibrary schemas/
Resource environment/variables.txt # Generic Parameters
Library JSONLibrary
Library OperatingSystem
Resource environment/pmJobs.txt
Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT}
*** 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 ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs
Integer response status 200
${contentType}= Output response headers Content-Type
Should Contain ${contentType} ${CONTENT_TYPE_JSON}
${result}= Output response body
${json}= evaluate json.loads('''${result}''') json
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 Trying to get all PM Jobs present in the VNFM, using filter params
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?${POS_FILTER}
Integer response status 200
${contentType}= Output response headers Content-Type
Should Contain ${contentType} ${CONTENT_TYPE_JSON}
${result}= Output response body
${json}= evaluate json.loads('''${result}''') 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 ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/pm_jobs?all_fields
Integer response status 200
${contentType}= Output response headers Content-Type
Should Contain ${contentType} ${CONTENT_TYPE_JSON}
${result}= Output response body
${json}= evaluate json.loads('''${result}''') 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 ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
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
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 Trying to get all VNF Packages present in the VNFM, using filter params
Pass Execution If ${FIELD_USAGE} == 0 Skipping test as VNFM is not supporting 'fields'
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
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
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 ${FIELD_USAGE} == 0 Skipping test as VNFM is not supporting 'fields'
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
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
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 ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
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 ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/pm_job # wrong URI /pm_job instead of /pm_jobs
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
Set Headers {"Accept": "${ACCEPT_JSON}"}
Set Headers {"Content-Type": "${CONTENT_TYPE_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
${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}
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 ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
PUT ${apiRoot}/${apiName}/${apiVersion}/pm_jobs
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 ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
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 ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
DELETE ${apiRoot}/${apiName}/${apiVersion}/pm_jobs
Log Received 405 Method not implemented as expected