diff --git a/SOL003/VNFFaultManagement-API/FaultManagement-APIKeyword.robot b/SOL003/VNFFaultManagement-API/FaultManagement-APIKeyword.robot index d481867a772f349708a3667ad99e6c7bf378dafa..f9587ab2bc43ce25de604e0656873d5bc9889d71 100644 --- a/SOL003/VNFFaultManagement-API/FaultManagement-APIKeyword.robot +++ b/SOL003/VNFFaultManagement-API/FaultManagement-APIKeyword.robot @@ -190,8 +190,31 @@ PATCH Fault Management Individual Alarm Conflict ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Do POST Subscription + +POST Subscription + Log Create subscription instance by POST to ${apiRoot}/${apiName}/${apiVersion}/subscriptions + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${body}= Get File jsons/fmSubscriptionRequest.json + Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +POST Subscription Duplication permitted + Log Create subscription instance by POST to ${apiRoot}/${apiName}/${apiVersion}/subscriptions + Pass Execution If ${VNFM_DUPLICATION} == 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":"${AUTHORIZATION}"} + ${body}= Get File jsons/fmSubscriptionRequest.json + Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +POST Subscription Duplication not permitted Log Create subscription instance by POST to ${apiRoot}/${apiName}/${apiVersion}/subscriptions + Pass Execution If ${VNFM_DUPLICATION} == 1 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":"${AUTHORIZATION}"} @@ -200,7 +223,7 @@ Do POST Subscription ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Do GET Subscriptions +GET Subscriptions Log Get the list of active subscriptions Set Headers {"Accept": "${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -208,7 +231,7 @@ Do GET Subscriptions ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Do GET Subscriptions with filter +GET Subscriptions with filter Log Get the list of active subscriptions using a filter Set Headers {"Accept": "${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -216,7 +239,7 @@ Do GET Subscriptions with filter ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Do GET Subscriptions with Invalid filter +GET Subscriptions with Invalid filter Log Get the list of active subscriptions using an invalid filter Set Headers {"Accept": "${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} @@ -224,7 +247,7 @@ Do GET Subscriptions with Invalid filter ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Do PUT Subscriptions +PUT Subscriptions log Trying to perform a PUT Subscriptions. This method should not be implemented Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -232,7 +255,7 @@ Do PUT Subscriptions ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Do PATCH Subscriptions +PATCH Subscriptions log Trying to perform a PATCH Subscriptions. This method should not be implemented Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -240,7 +263,7 @@ Do PATCH Subscriptions ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Do DELETE Subscriptions +DELETE Subscriptions log Trying to perform a DELETE Subscriptions. This method should not be implemented Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -248,7 +271,7 @@ Do DELETE Subscriptions ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Do POST Individual Subscription +POST Individual Subscription log Trying to perform a POST. This method should not be implemented Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -256,7 +279,7 @@ Do POST Individual Subscription ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Do GET Individual Subscription +GET Individual Subscription log Trying to get information about an individual subscription Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -264,7 +287,7 @@ Do GET Individual Subscription ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Do PUT Individual Subscription +PUT Individual Subscription 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":"${AUTHORIZATION}"} @@ -272,7 +295,7 @@ Do PUT Individual Subscription ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Do PATCH Individual Subscription +PATCH Individual Subscription 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":"${AUTHORIZATION}"} @@ -280,7 +303,7 @@ Do PATCH Individual Subscription ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Do DELETE Individual Subscription +DELETE Individual Subscription log Trying to perform a DELETE. Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} diff --git a/SOL003/VNFFaultManagement-API/Subscriptions.robot b/SOL003/VNFFaultManagement-API/Subscriptions.robot index b4590084f3f00b73f995511f45414f2a782ab803..9e2f0c62621008a0fc1fd333362d8c68d4fa77dc 100644 --- a/SOL003/VNFFaultManagement-API/Subscriptions.robot +++ b/SOL003/VNFFaultManagement-API/Subscriptions.robot @@ -1,164 +1,129 @@ *** Settings *** Resource environment/variables.txt +Resource FaultManagement-APIKeyword.robot +Library DependencyLibrary Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT} Library OperatingSystem Library JSONLibrary Library JSONSchemaLibrary schemas/ *** Test Cases *** -Create a new subscription - [Documentation] Test ID: 7.4.4.1 - ... Test title: Create a new alarm subscription - ... Test objective: The objective is to create a new subscription. - ... Pre-conditions: no subscription with the same filter and callbackUri exists - ... Reference: section 7.4.4 - SOL003 v2.4.1 - ... Config ID: Config_prod_VNFM - ... Applicability: - ... Post-Conditions: - Log Create subscription instance by POST to ${apiRoot}/${apiName}/${apiVersion}/subscriptions - Set Headers {"Accept":"${ACCEPT}"} - Set Headers {"Content-Type": "${CONTENT_TYPE}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} - ${body}= Get File jsons/fmSubscriptionRequest.json - Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} - Integer response status 201 - Log Status code validated - ${headers}= Output response headers - Should Contain ${headers} Location - ${contentType}= Output response headers Content-Type - Should Contain ${contentType} ${CONTENT_TYPE} - ${result}= Output response body - Validate Json FmSubscription.schema.json ${result} - Log Validation OK +Create a new Fault Management alarm subscription + [Documentation] Test ID: 7.3.5.3.1 + ... Test title: Create a new Fault Management alarm subscription + ... Test objective: The objective is to create a new Fault management alarm subscriptions and perform a JSON schema and content validation of the returned fault management alarms subscription data structure + ... Pre-conditions: No subscription with the same filter and callbackUri exists + ... Reference: section 7.4.4.3.1 - SOL003 v2.4.1 + ... Config ID: Config_prod_VNFM + ... Applicability: none + ... Post-Conditions: none + POST Subscription + Check HTTP Response Status Code Is 201 + Check HTTP Response Header Contains Location + Check HTTP Response Body Json Schema Is FmSubscription + -Create a new Subscription - DUPLICATION - [Documentation] Test ID: 7.4.4.2 +Create a new alarm subscription - DUPLICATION + [Documentation] Test ID: 7.3.5.3.2 ... Test title: Create a new alarm subscription - DUPLICATION - ... Test objective: The objective is to create a new subscription. + ... Test objective: The objective is to create a new subscription with the VNF allowing duplication and perform a JSON schema and content validation of the returned fault management alarms subscription data structure. ... Pre-conditions: subscription with the same filter and callbackUri exists - ... Reference: section 7.4.4 - SOL003 v2.4.1 - ... Config ID: Config_prod_VNFM - ... Applicability: the VNFM allows creating a subscription resource if another subscription resource with the same filter and callbackUri already exists - ... Post-Conditions: - 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 - Set Headers {"Accept": "${ACCEPT}"} - Set Headers {"Content-Type": "${CONTENT_TYPE}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - ${body}= Get File jsons/fmSubscriptionRequest.json - Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} - Integer response status 201 - Log Status code validated - ${contentType}= Output response headers Content-Type - Should Contain ${contentType} ${CONTENT_TYPE} - ${result}= Output response body - Validate Json FmSubscription.schema.json ${result} - Log Validation OK + ... Reference: section 7.4.4.3.1 - SOL003 v2.4.1 + ... Config ID: Config_prod_VNFM + ... Applicability: the NFVO allows creating a subscription resource if another subscription resource with the same filter and callbackUri already exists + ... Post-Conditions: none + Depends On Test Create a new subscription + POST Subscription Duplication permitted + Check HTTP Response Status Code Is 201 + Check HTTP Response Header Contains Location + Check HTTP Response Body Json Schema Is FmSubscription -Create a new Subscription - NO-DUPLICATION - [Documentation] Test ID: 7.4.4.3 +Create a new alarm subscription - NO DUPLICATION + [Documentation] Test ID: 7.3.5.3.3 ... Test title: Create a new alarm subscription - NO DUPLICATION - ... Test objective: The objective is to create a new subscription. + ... Test objective: The objective is to create a new subscription with the VNF not allowing duplication and perform a JSON schema and content validation of the returned fault management alarms subscription data structure. ... Pre-conditions: subscription with the same filter and callbackUri exists - ... Reference: section 7.4.4 - SOL003 v2.4.1 - ... Config ID: Config_prod_VNFM - ... Applicability: the VNFM decides to not create a duplicate subscription resource - ... Post-Conditions: - Log Trying to create a subscription with an already created content - Pass Execution If ${VNFM_DUPLICATION} == 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": "${AUTHORIZATION}"} - ${body}= Get File jsons/fmSubscriptionRequest.json - Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} - Integer response status 303 - Log Status code validated - ${headers}= Output response headers - Should Contain ${headers} Location - Log Validation OK + ... Reference: section 7.4.4.3.1 - SOL003 v2.4.1 + ... Config ID: Config_prod_VNFM + ... Applicability: the NFVO decides to not create a duplicate subscription resource + ... Post-Conditions: none + Depends On Test Create a new subscription + POST Subscription Duplication not permitted + Check HTTP Response Status Code Is 303 + Check HTTP Response Header Contains Location + Check HTTP Response Body Json Schema Is FmSubscription -GET Subscriptions - [Documentation] Test ID: 7.4.4.4 +Retrieve a list of alarm subscriptions + [Documentation] Test ID: 7.3.5.3.4 ... Test title: Retrieve a list of alarm subscriptions - ... Test objective: The objective is to retrieve the list of active subscriptions - ... Pre-conditions: - ... Reference: section 7.4.4 - SOL003 v2.4.1 - ... Config ID: Config_prod_VNFM - ... Applicability: - ... Post-Conditions: - 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":"${AUTHORIZATION}"} - Log Execute Query and validate response - Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions - Log Validate Status code - Integer response status 200 - ${result}= Output response body - Validate Json FmSubscriptions.schema.json ${result} - Log Validation OK - -GET Subscription - Filter - [Documentation] Test ID: 7.4.4.5 - ... Test title: Retrieve a list of alarm subscriptions - ... Test objective: The objective is to retrieve the list of active subscriptions with filter - ... Pre-conditions: - ... Reference: section 7.4.4 - SOL003 v2.4.1 - ... Config ID: Config_prod_VNFM - ... Applicability: - ... Post-Conditions: - Log Get the list of active subscriptions using a filter - Set Headers {"Accept": "${ACCEPT}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions?${sub_filter} - Integer response status 200 - Log Received a 200 OK as expected - ${result}= Output response body - Validate Json FmSubscriptions.schema.json ${result} - Log Validation OK + ... Test objective: The objective is to retrieve the list of active subscriptions and perform a JSON schema and content validation of the returned fault management alarms subscription data structure. + ... Pre-conditions: none + ... Reference: section 7.4.4.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_VNFM + ... Applicability: none + ... Post-Conditions: noe + GET Subscriptions + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is FmSubscriptions + +Retrieve a list of alarm subscriptions with filter + [Documentation] Test ID: 7.3.5.3.5 + ... Test title: Retrieve a list of alarm subscriptions with filter + ... Test objective: The objective is to retrieve the list of active subscriptions with filter and perform a JSON schema and content validation of the returned fault management alarms subscription data structure. + ... Pre-conditions: none + ... Reference: section 7.4.4.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_VNFM + ... Applicability: none + ... Post-Conditions: none + GET Subscriptions with 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: 7.4.4.5-1 - ... Test title: Retrieve a list of alarm subscriptions - ... Test objective: The objective is to retrieve the list of active subscriptions with Invalid attribute-based filtering parameters - ... Pre-conditions: - ... Reference: section 7.4.4 - SOL003 v2.4.1 - ... Config ID: Config_prod_VNFM - ... Applicability: - ... Post-Conditions: - Log Get the list of active subscriptions using an invalid filter - Set Headers {"Accept": "${ACCEPT}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} - GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions?${sub_filter_invalid} - Integer response status 400 - Log Received a 400 Bad Request as expected - ${contentType}= Output response headers Content-Type - Should Contain ${contentType} ${CONTENT_TYPE} - ${problemDetails}= Output response body - Validate Json ProblemDetails.schema.json ${problemDetails} - Log Validation OK + [Documentation] Test ID: 7.3.5.3.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 and perform a JSON schema and content validation of the returned problem details data structure. + ... Pre-conditions: none + ... Reference: section 7.4.4.3.2 - SOL003 v2.4.1 + ... Config ID: Config_prod_VNFM + ... Applicability: none + ... Post-Conditions: none + GET Subscriptions with Invalid filter + Check HTTP Response Status Code Is 400 + Check HTTP Response Body Json Schema Is ProblemDetails PUT subscriptions - Method not implemented - 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":"${AUTHORIZATION}"} - Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions - Log Validate Status code - Integer response status 405 + [Documentation] Test ID: 7.3.5.3.7 + ... Test title:PUT subscriptions - Method not implemented + ... Test objective: The objective is to test that PUT method is not allowed to for Fault management subscriptions on VNF + ... Pre-conditions: none + ... RReference: section 7.4.4.3.3 - SOL003 v2.4.1 + ... Config ID: Config_prod_VNFM + ... Applicability: none + ... Post-Conditions: none + Put Subscriptions + Check HTTP Response Status Code Is 405 PATCH subscriptions - Method not implemented - 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":"${AUTHORIZATION}"} - Patch ${apiRoot}/${apiName}/${apiVersion}/subscriptions - Log Validate Status code - Integer response status 405 + [Documentation] Test ID: 7.3.5.3.8 + ... Test title: PATCH subscriptions - Method not implemented + ... Test objective: The objective is to test that PATCH method is not allowed to for Fault management subscriptions on VNF + ... Pre-conditions: none + ... Reference: section 7.4.4.3.4 - SOL003 v2.4.1 + ... Config ID: Config_prod_VNFM + ... Applicability: none + ... Post-Conditions: none + PATCH Subscriptions + Check HTTP Response Status Code Is 405 DELETE subscriptions - Method not implemented - 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":"${AUTHORIZATION}"} - Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions - Log Validate Status code - Integer response status 405 - \ No newline at end of file + [Documentation] Test ID: 7.3.5.3.9 + ... Test title:DELETE subscriptions - Method not implemented + ... Test objective: The objective is to test that DELETE method is not allowed to for Fault management subscriptions on VNF + ... Pre-conditions: none + ... Reference: section 7.4.4.3.5 - SOL003 v2.4.1 + ... Config ID: Config_prod_VNFM + ... Applicability: none + ... Post-Conditions: none + DELETE Subscriptions + Check HTTP Response Status Code Is 405 \ No newline at end of file