Newer
Older
*** Settings ***
Resource environment/variables.txt
Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT} ssl_verify=false
Library OperatingSystem
Library JSONLibrary
Library JSONSchemaLibrary schemas/
Library Process
Library MockServerLibrary
Suite Setup Create Sessions
Suite Teardown Terminate All Processes kill=true
*** Test Cases ***
Create a new subscription
... Test title: Create a new subscription
... Test objective: The objective is to create a new subscription.
... Pre-conditions: no subscription with the same filter and callbackUri exists
... Reference: Clause 7.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v3.3.1
Post Create subscription
Check HTTP Response Status Code Is 201
Check HTTP Response Body Json Schema Is FmSubscription
Check HTTP Response Header Contain Link
Check Postcondition resource exists
# Create a new Subscription - DUPLICATION
# [Documentation] Test ID: 6.3.4.4.2
# ... Test title: Create a new Subscription - DUPLICATION
# ... Test objective: The objective is to create a duplicate subscription.
# ... Pre-conditions: subscription with the same filter and callbackUri exists
# ... Reference: Clause 7.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v3.3.1
# ... Config ID: Config_prod_VNFM
# ... Applicability: the VNFM does not allow creation of a subscription resource if another subscription resource with the same filter and callbackUri already exists
# ... Post-Conditions: duplicated subscription is created
# Post Create subscription - DUPLICATION
# Check HTTP Response Status Code Is 201
# Check HTTP Response Body Json Schema Is FmSubscription
# Check HTTP Response Header Contain Link
# Check Postcondition Duplicate Subscription exsist
# Create a new Subscription - NO-DUPLICATION
# [Documentation] Test ID: 6.3.4.4.3
# ... Test title: Create a new Subscription - NO-DUPLICATION
# ... Test objective: The objective is to create a subscription in case of not allowed DUPLICATION.
# ... Pre-conditions: subscription with the same filter and callbackUri exists
# ... Reference: Clause 7.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v3.3.1
# ... Config ID: Config_prod_VNFM
# ... Applicability: the VNFM does not allow creation of a duplicate subscription resource
# ... Post-Conditions: duplicated subscription is not created
# Post Create subscription - DUPLICATION
# Check HTTP Response Status Code Is 303
# Check HTTP Response Header Contain Link
Create a duplicated Subscription
[Documentation] Test ID: 6.3.4.4.2a
... Test title: Create a duplicated Subscription
... Test objective: The objective is to create a duplicate subscription.
... Pre-conditions: subscription with the same filter and callbackUri exists
... Reference: Clause 7.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Applicability:
... Post-Conditions: duplicated subscription is created if the IUT allows duplications, otherwise the duplicated subscription is not created
Post Create subscription
Check Response for duplicated subscription
GET Subscriptions
[Documentation] Test ID: 6.3.4.4.4
... Test title: GET Subscriptions
... Test objective: The objective is to retrieve the list of active subscriptions
... Reference: Clause 7.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1
Get subscriptions
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is FmSubscriptions
GET Subscription - Filter
[Documentation] Test ID: 6.3.4.4.5
... Test title: GET Subscription - Filter
... Test objective: The objective is to retrieve the list of active subscriptions with filter
... Reference: Clause 7.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Applicability: none
... Post-Conditions: none
Get subscriptions - filter
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is FmSubscriptions
GET subscriptions - Bad Request Invalid attribute-based filtering parameters
[Documentation] Test ID: 6.3.4.4.6
... Test title: GET subscriptions - Bad Request Invalid attribute-based filtering parameters
... Test objective: The objective is to retrieve the list of active subscriptions with Invalid attribute-based filtering parameters
... Pre-conditions: none
... Reference: Clause 7.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Applicability: none
... Post-Conditions: none
Get subscriptions - invalid filter
Check HTTP Response Status Code Is 400
Check HTTP Response Body Json Schema Is ProblemDetails
GET subscriptions with "all_fields" attribute selector
[Documentation] Test ID: 6.3.4.4.7
... Test title: GET subscriptions with "all_fields" attribute selector
... Test objective: The objective is to retrieve the list of active subscriptions with attribute selector
... Pre-conditions: none
... Reference: Clause 7.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
Get subscriptions with all_fields attribute selector
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is FmSubscriptions
GET subscriptions with "exclude_default" attribute selector
[Documentation] Test ID: 6.3.4.4.8
... Test title: GET subscriptions with "exclude_default" attribute selector
... Test objective: The objective is to retrieve the list of active subscriptions with attribute selector
... Pre-conditions: none
... Reference: Clause 7.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
Get subscriptions with exclude_default attribute selector
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is FmSubscriptions
GET subscriptions with "fields" attribute selector
[Documentation] Test ID: 6.3.4.4.9
... Test title: GET subscriptions with "fields" attribute selector
... Test objective: The objective is to retrieve the list of active subscriptions with attribute selector
... Pre-conditions: none
... Reference: Clause 7.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
Get subscriptions with fields attribute selector
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is FmSubscriptions
GET subscriptions with "exclude_fields" attribute selector
[Documentation] Test ID: 6.3.4.4.10
... Test title: GET subscriptions with "exclude_fields" attribute selector
... Test objective: The objective is to retrieve the list of active subscriptions with attribute selector
... Pre-conditions: none
... Reference: Clause 7.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
Get subscriptions with exclude_fields attribute selector
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is FmSubscriptions
PUT subscriptions - Method not implemented
[Documentation] Test ID: 6.3.4.4.11
... Test title: PUT subscriptions - Method not implemented
... Test objective: The objective is to test that the method is not implemented
... Pre-conditions: none
... Reference: Clause 7.4.5.3.3 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Applicability: none
... Post-Conditions: none
PUT subscriptions
Check HTTP Response Status Code Is 405
PATCH subscriptions - Method not implemented
[Documentation] Test ID: 6.3.4.4.12
... Test title: PUT subscriptions - Method not implemented
... Test objective: The objective is to test that the method is not implemented
... Pre-conditions: none
... Reference: Clause 7.4.5.3.4 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Applicability: none
... Post-Conditions: none
PATCH subscriptions
Check HTTP Response Status Code Is 405
DELETE subscriptions - Method not implemented
[Documentation] Test ID: 6.3.4.4.13
... Test title: DELETE subscriptions - Method not implemented
... Test objective: The objective is to test that the method is not implemented
... Pre-conditions: none
... Reference: Clause 7.4.5.3.5 - ETSI GS NFV-SOL 002 [2] v3.3.1
DELETE subscriptions
Check HTTP Response Status Code Is 405
GET Subscriptions to get Paged Response
[Documentation] Test ID: 6.3.4.4.14
... Test title: GET Subscriptions to get Paged Response
... Test objective: The objective is to retrieve the list of active subscriptions to get paged response
... Pre-conditions: none
... Reference: Clause 7.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Config ID: Config_prod_VNFM
Get subscriptions
Check HTTP Response Status Code Is 200
GET subscriptions - Bad Request Response too Big
[Documentation] Test ID: 6.3.4.4.15
... Test title: GET subscriptions - Bad Request Response too Big
... Test objective: The objective is to test that GET method fail retrieving list of active subscription because Response is too big, and perform the JSON schema validation of the failed operation HTTP response
... Pre-conditions: none
... Reference: Clause 7.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
Get subscriptions - invalid filter
Check HTTP Response Status Code Is 400
Check HTTP Response Body Json Schema Is ProblemDetails
GET Subscription with attribute-based filter "id"
[Documentation] Test ID: 6.3.4.4.16
... Test title: GET Subscription with attribute-based filter "id"
... Test objective: The objective is to retrieve the list of active subscriptions with filter "id"
... Pre-conditions: none
... Reference: Clause 7.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
Get subscriptions with filter "id"
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is FmSubscription
Check PostCondition HTTP Response Body Subscription Matches the requested attribute-based filter "id"
Get subscriptions with filter "filter.notificationTypes"
[Documentation] Test ID: 6.3.4.4.17
... Test title: GET Subscription with attribute-based filter "filter.notificationTypes"
... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.notificationTypes"
... Pre-conditions: none
... Reference: Clause 7.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
Get subscriptions with filter "filter_notificationTypes"
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is FmSubscriptions
Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_notificationTypes"
Get subscriptions with filter "filter.faultyResourceTypes"
[Documentation] Test ID: 6.3.4.4.18
... Test title: GET Subscription with attribute-based filter "filter.faultyResourceTypes"
... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.faultyResourceTypes"
... Pre-conditions: none
... Reference: Clause 7.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
Get subscriptions with filter "filter_faultyResourceTypes"
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is FmSubscriptions
Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_faultyResourceTypes"
Get subscriptions with filter "filter.perceivedSeverities"
[Documentation] Test ID: 6.3.4.4.19
... Test title: GET Subscription with attribute-based filter "filter.perceivedSeverities"
... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.perceivedSeverities"
... Pre-conditions: none
... Reference: Clause 7.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
Get subscriptions with filter "filter_perceivedSeverities"
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is FmSubscriptions
Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_perceivedSeverities"
Get subscriptions with filter "filter.eventTypes"
[Documentation] Test ID: 6.3.4.4.20
... Test title: GET Subscription with attribute-based filter "filter.eventTypes"
... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.eventTypes"
... Pre-conditions: none
... Reference: Clause 7.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
Get subscriptions with filter "filter_eventTypes"
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is FmSubscriptions
Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_eventTypes"
Get subscriptions with filter "filter.probableCauses"
[Documentation] Test ID: 6.3.4.4.21
... Test title: GET Subscription with attribute-based filter "filter.probableCauses"
... Test objective: The objective is to retrieve the list of active subscriptions with filter "filter.probableCauses"
... Pre-conditions: none
... Reference: Clause 7.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
Get subscriptions with filter "filter_probableCauses"
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is FmSubscriptions
Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_probableCauses"
POST Create a new Subscription - Unprocessable Entity
[Documentation] Test ID: 6.3.4.4.21
... Test title: POST Create a new Subscription - Unprocessable Entity
... Test objective: The objective is to test that content type of the payload body is supported and the payload body of a request contains syntactically correct data but the data cannot be processed.
... re-conditions: none
... Reference: Clause 7.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v3.3.1
... Config ID: Config_prod_VNFM
... Applicability: none
... Post-Conditions: none
Post Create subscription
Check HTTP Response Status Code Is 422
Check HTTP Response Body Json Schema Is ProblemDetails
Create Sessions
Start Process java -jar ${MOCK_SERVER_JAR} -serverPort ${callback_port} alias=mockInstance
Wait For Process handle=mockInstance timeout=5s on_timeout=continue
Create Mock Session ${callback_uri}:${callback_port}
Log Create subscription instance by POST to ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
${template}= Get File jsons/fmSubscriptionRequest.json
${body}= Format String ${template} callback_uri=${callback_uri}:${callback_port} callback_endpoint=${callback_endpoint}
Log Creating mock request and response to handle GET operation on notification endpoint
&{notification_request}= Create Mock Request Matcher GET ${callback_endpoint}
&{notification_response}= Create Mock Response status_code=204
Log Issue the subscription request
Create Mock Expectation ${notification_request} ${notification_response}
Post ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body}
${output}= Output response
Set Global Variable ${response} ${output}
Clear Requests ${callback_endpoint}
# Post Create subscription - DUPLICATION
# Log Trying to create a subscription with an already created content
# Pass Execution If ${VNFM_ALLOWS_DUPLICATE_SUBS} == 0 NVFO is not permitting duplication. Skipping the test
# Set Headers {"Accept": "${ACCEPT}"}
# Set Headers {"Content-Type": "${CONTENT_TYPE}"}
# Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
# ${template}= Get File jsons/fmSubscriptionRequest.json
# ${body}= Format String ${template} callback_uri=${callback_uri} callback_endpoint=${callback_endpoint}
# Post ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body}
# ${outputResponse}= Output response
# Set Global Variable ${response} ${outputResponse}
# Post Create subscription - NO-DUPLICATION
# Log Trying to create a subscription with an already created content
# Pass Execution If ${VNFM_ALLOWS_DUPLICATE_SUBS} == 1 VNFM permits duplication. Skipping the test
# Set Headers {"Accept": "${ACCEPT}"}
# Set Headers {"Content-Type": "${CONTENT_TYPE}"}
# Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
# ${template}= Get File jsons/fmSubscriptionRequest.json
# ${body}= Format String ${template} callback_uri=${callback_uri} callback_endpoint=${callback_endpoint}
# Post ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${body}
# ${outputResponse}= Output response
# Set Global Variable ${response} ${outputResponse}
Get subscriptions
Log Get the list of active subscriptions
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Log Execute Query and validate response
Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions
Set Global Variable ${response} ${outputResponse}
Get subscriptions - filter
Log Get the list of active subscriptions using a filter
Set Headers {"Accept": "${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?${sub_filter}
Set Global Variable ${response} ${outputResponse}
Log Get the list of active subscriptions using an invalid filter
Set Headers {"Accept": "${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?${sub_filter_invalid}
Set Global Variable ${response} ${outputResponse}
Get subscriptions with all_fields attribute selector
Log Get the list of active subscriptions, using fields
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?exclude_default
${output}= Output response
Set Suite Variable ${response} ${output}
Get subscriptions with exclude_default attribute selector
Log Get the list of active subscriptions, using fields
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?exclude_default
${output}= Output response
Set Suite Variable ${response} ${output}
Get subscriptions with fields attribute selector
Log Get the list of active subscriptions, using fields
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?fields=${fields}
${output}= Output response
Set Suite Variable ${response} ${output}
Get subscriptions with exclude_fields attribute selector
Log Get the list of active subscriptions, using fields
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?exclude_fields=${fields}
${output}= Output response
Set Suite Variable ${response} ${output}
log Trying to perform a PUT. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Put ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions
Set Global Variable ${response} ${outputResponse}
log Trying to perform a PATCH. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Patch ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions
Set Global Variable ${response} ${outputResponse}
log Trying to perform a DELETE. This method should not be implemented
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Delete ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions
Set Global Variable ${response} ${outputResponse}
Check HTTP Response Status Code Is
[Arguments] ${expected_status}
Should Be Equal As Strings ${response['status']} ${expected_status}
Log Status code validated
Check HTTP Response Body Json Schema Is
[Arguments] ${input}
Should Contain ${response['headers']['Content-Type']} application/json
${schema} = Catenate SEPARATOR= ${input} .schema.json
Validate Json ${schema} ${response['body']}
${linkURL}= Get Value From Json ${response['headers']} $..Link
Should Not Be Empty ${linkURL}
Get subscriptions with filter "id"
Log Get the list of active subscriptions using a filter "id"
Set Headers {"Accept": "${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?id=${subscription_id}
${outputResponse}= Output response
Set Global Variable ${response} ${outputResponse}
Check PostCondition HTTP Response Body Subscription Matches the requested attribute-based filter "id"
Should Be Equal As Strings ${response['body']['id']} ${subscription_id}
Get subscriptions with filter "filter_notificationTypes"
Log Get the list of active subscriptions using a filter "filter.notificationTypes"
Set Headers {"Accept": "${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?filter.notificationTypes=${notification_type}
${outputResponse}= Output response
Set Global Variable ${response} ${outputResponse}
Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_notificationTypes"
:FOR ${item} IN @{response['body']}
Should Be Equal As Strings ${item['filter']['notificationTypes']} ${notification_type}
END
Get subscriptions with filter "filter_faultyResourceTypes"
Log Get the list of active subscriptions using a filter "filter.faultyResourceTypes"
Set Headers {"Accept": "${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?filter.faultyResourceTypes=${faultyResourceType}
${outputResponse}= Output response
Set Global Variable ${response} ${outputResponse}
Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_faultyResourceTypes"
:FOR ${item} IN @{response['body']}
Should Be Equal As Strings ${item['filter']['faultyResourceTypes']} ${faultyResourceType}
END
Get subscriptions with filter "filter_perceivedSeverities"
Log Get the list of active subscriptions using a filter "filter.perceivedSeverities"
Set Headers {"Accept": "${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?filter.perceivedSeverities=${perceivedSeverity}
${outputResponse}= Output response
Set Global Variable ${response} ${outputResponse}
Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_perceivedSeverities"
:FOR ${item} IN @{response['body']}
Should Be Equal As Strings ${item['filter']['perceivedSeverities']} ${perceivedSeverity}
END
Get subscriptions with filter "filter_eventTypes"
Log Get the list of active subscriptions using a filter "filter.eventTypes"
Set Headers {"Accept": "${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?filter.eventTypes=${eventType}
${outputResponse}= Output response
Set Global Variable ${response} ${outputResponse}
Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_eventTypes"
:FOR ${item} IN @{response['body']}
Should Be Equal As Strings ${item['filter']['eventTypes']} ${eventType}
END
Get subscriptions with filter "filter_probableCauses"
Log Get the list of active subscriptions using a filter "filter.probableCauses"
Set Headers {"Accept": "${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions?filter.probableCauses=${probableCause}
${outputResponse}= Output response
Set Global Variable ${response} ${outputResponse}
Check PostCondition HTTP Response Body Subscriptions Matches the requested attribute-based filter "filter_probableCauses"
:FOR ${item} IN @{response['body']}
Should Be Equal As Strings ${item['filter']['probableCauses']} ${probableCause}
END
Set Headers {"Accept":"${ACCEPT}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId}
Integer response status 200
Check Postcondition Duplicate Subscription exsist
Should Not Be Equal As Strings ${response['body']['callbackUri']} ${subscriptionId}
Check Response for duplicated subscription
Run Keyword If ${VNFM_ALLOWS_DUPLICATE_SUBS} == 1 Check HTTP Response Status Code Is 201
Run Keyword If ${VNFM_ALLOWS_DUPLICATE_SUBS} == 1 Check HTTP Response Body Json Schema Is FmSubscription
Run Keyword If ${VNFM_ALLOWS_DUPLICATE_SUBS} == 0 Check HTTP Response Status Code Is 303