From 82c90e8ec36edb79ca72446082879f32a9eb4839 Mon Sep 17 00:00:00 2001 From: fujinhua Date: Tue, 16 Jul 2019 18:47:56 +0800 Subject: [PATCH] Add csit for vnflcm subscription Change-Id: Ie96c8001506cb7fbad462e93446a42e890a740f3 Issue-ID: INT-1015 Signed-off-by: fujinhua --- plans/vfc-gvnfm-vnflcm/sanity-check/testplan.txt | 1 + tests/vfc/gvnfm-vnflcm/Subscriptions.robot | 87 ++++++++++++++++++++++ .../gvnfm-vnflcm/jsoninput/vnf_subscription.json | 41 ++++++++++ 3 files changed, 129 insertions(+) create mode 100644 tests/vfc/gvnfm-vnflcm/Subscriptions.robot create mode 100644 tests/vfc/gvnfm-vnflcm/jsoninput/vnf_subscription.json diff --git a/plans/vfc-gvnfm-vnflcm/sanity-check/testplan.txt b/plans/vfc-gvnfm-vnflcm/sanity-check/testplan.txt index 6627c580..4d38f2c7 100644 --- a/plans/vfc-gvnfm-vnflcm/sanity-check/testplan.txt +++ b/plans/vfc-gvnfm-vnflcm/sanity-check/testplan.txt @@ -1,3 +1,4 @@ # Test suites are relative paths under [integration/csit.git]/tests/. # Place the suites in run order. vfc/gvnfm-vnflcm/test.robot +vfc/gvnfm-vnflcm/Subscriptions.robot diff --git a/tests/vfc/gvnfm-vnflcm/Subscriptions.robot b/tests/vfc/gvnfm-vnflcm/Subscriptions.robot new file mode 100644 index 00000000..8f858554 --- /dev/null +++ b/tests/vfc/gvnfm-vnflcm/Subscriptions.robot @@ -0,0 +1,87 @@ +*** Settings *** +Resource ../../common.robot +Library Collections +Library RequestsLibrary +Library OperatingSystem +Library json +Library HttpLibrary.HTTP + +*** Variables *** +@{return_ok_list}= 200 201 202 204 +${vnflcm_port} 8801 +${subscriptions_url} /api/vnflcm/v1/subscriptions + +#json files +${vnf_subscription_json} ${SCRIPTS}/../tests/vfc/gvnfm-vnflcm/jsoninput/vnf_subscription.json + +#global variables +${subscriptionId} + +*** Test Cases *** +Create new VNF Package subscription + Log Create new VNF Package subscription + [Documentation] The objective is to test the creation of a new VNF package subscription + ${json_value}= json_from_file ${vnf_subscription_json} + ${json_string}= string_from_json ${json_value} + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${VNFLCM_IP}:${vnflcm_port} headers=${headers} + Set Request Body ${json_string} + ${resp}= Post Request web_session ${subscriptions_url} ${json_string} + ${responese_code}= Convert To String ${resp.status_code} + List Should Contain Value ${return_ok_list} ${responese_code} + ${response_json} json.loads ${resp.content} + ${callback_uri}= Convert To String ${response_json['callbackUri']} + Should Be Equal ${callback_uri} http://127.0.0.1:${vnflcm_port}/api/vnflcm/v1/callback_sample + ${subscriptionId}= Convert To String ${response_json['id']} + Set Global Variable ${subscriptionId} + +Create duplicated VNF Package subscription + Log Create duplicated VNF Package subscription + [Documentation] The objective is to test the attempt of a creation of a duplicated VNF package subscription + ${json_value}= json_from_file ${vnf_subscription_json} + ${json_string}= string_from_json ${json_value} + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${VNFLCM_IP}:${vnflcm_port} headers=${headers} + Set Request Body ${json_string} + ${resp}= Post Request web_session ${subscriptions_url} ${json_string} + Should Be Equal As Strings 502 ${resp.status_code} + +GET All VNF Package Subscriptions + Log GET All VNF Package Subscriptions + [Documentation] The objective is to test the retrieval of all VNF package subscriptions + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${VNFLCM_IP}:${vnflcm_port} headers=${headers} + ${resp}= Get Request web_session ${subscriptions_url} + Should Be Equal As Strings 200 ${resp.status_code} + +PUT VNF Package Subscriptions - Method not implemented + Log PUT VNF Package Subscriptions - Method not implemented + [Documentation] The objective is to test that PUT method is not allowed to modify VNF package subscriptions + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${VNFLCM_IP}:${vnflcm_port} headers=${headers} + ${resp}= Put Request web_session ${subscriptions_url} + Should Be Equal As Strings 405 ${resp.status_code} + +PATCH VNF Package Subscriptions - Method not implemented + Log PATCH VNF Package Subscriptions - Method not implemented + [Documentation] The objective is to test that PATCH method is not allowed to update VNF package subscriptions + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${VNFLCM_IP}:${vnflcm_port} headers=${headers} + ${resp}= Patch Request web_session ${subscriptions_url} + Should Be Equal As Strings 405 ${resp.status_code} + +DELETE VNF Package Subscriptions - Method not implemented + Log DELETE VNF Package Subscriptions - Method not implemented + [Documentation] The objective is to test that DELETE method is not allowed to delete VNF package subscriptions + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${VNFLCM_IP}:${vnflcm_port} headers=${headers} + ${resp}= Delete Request web_session ${subscriptions_url} + Should Be Equal As Strings 405 ${resp.status_code} + +DELETE VNF Package Subscription + Log DELETE VNF Package Subscription + ${headers} Create Dictionary Content-Type=application/json Accept=application/json + Create Session web_session http://${VNFLCM_IP}:${vnflcm_port} headers=${headers} + ${resp}= Delete Request web_session ${subscriptions_url}/${subscriptionId} + ${responese_code}= Convert To String ${resp.status_code} + List Should Contain Value ${return_ok_list} ${responese_code} diff --git a/tests/vfc/gvnfm-vnflcm/jsoninput/vnf_subscription.json b/tests/vfc/gvnfm-vnflcm/jsoninput/vnf_subscription.json new file mode 100644 index 00000000..23bd2b11 --- /dev/null +++ b/tests/vfc/gvnfm-vnflcm/jsoninput/vnf_subscription.json @@ -0,0 +1,41 @@ +{ + "filters": { + "notificationTypes": [ + "VnfPackageOnboardingNotification" + ], + "vnfProductsFromProviders": { + "vnfProvider": "string", + "vnfProducts": { + "vnfProductName": "string", + "versions": { + "vnfSoftwareVersion": "string", + "vnfdVersions": [ + "string" + ] + } + } + }, + "vnfdId": [ + "3fa85f64-5717-4562-b3fc-2c963f66afa6" + ], + "vnfPkgId": [ + "3fa85f64-5717-4562-b3fc-2c963f66afa6" + ], + "operationalState": [ + "ENABLED" + ], + "usageState": [ + "IN_USE" + ] + }, + "callbackUri": "http://127.0.0.1:8801/api/vnflcm/v1/callback_sample", + "authentication": { + "authType": [ + "BASIC" + ], + "paramsBasic": { + "userName": "string", + "password": "string" + } + } +} -- 2.16.6