blob: 15c8544042c94a9521ca7802ee7095f724d13a6c [file] [log] [blame]
Suchitra Vemurida8492a2017-06-15 14:47:24 -07001*** Settings ***
Suchitra Vemuri465d46a2018-03-02 00:04:47 -08002Documentation Test suite for Instance creation for multiple subscribers with multiple "s_tag" - Chameleon APIs
Suchitra Vemurida8492a2017-06-15 14:47:24 -07003Suite Setup Read InputFile
Suchitra Vemuri465d46a2018-03-02 00:04:47 -08004Test Template Verify Multiple Instance Creation Functionality
Suchitra Vemurida8492a2017-06-15 14:47:24 -07005Library Collections
6Library String
7Library OperatingSystem
8Library XML
9Library RequestsLibrary
Zack Williams821c5022020-01-15 15:11:46 -070010Library CORDRobot
11Library ImportResource resources=CORDRobot
Suchitra Vemurida8492a2017-06-15 14:47:24 -070012
13*** Variables ***
Suchitra Vemuri465d46a2018-03-02 00:04:47 -080014${PATHFILE} ${CURDIR}/data/Ch_Subscriber_MultiInstance.json
Suchitra Vemurida8492a2017-06-15 14:47:24 -070015
16*** Test Cases *** TYPE LISTINDEX
17Test Create Subscriber-1
18 SUBSCRIBER_CREATE 0
19
20Test Create Subscriber-2
21 SUBSCRIBER_CREATE 1
22
23Test Create Subscriber-3
24 SUBSCRIBER_CREATE 2
25
Suchitra Vemurida8492a2017-06-15 14:47:24 -070026Test Instance creation validation
27 INSTANCE_VALIDATE 0
28
29*** Keywords ***
30Read InputFile
Zack Williams821c5022020-01-15 15:11:46 -070031 ${subscriberList} = CORDRobot.jsonToList ${PATHFILE} SubscriberInfo
Suchitra Vemurida8492a2017-06-15 14:47:24 -070032 Set Suite Variable ${slist} ${subscriberList}
Suchitra Vemurida8492a2017-06-15 14:47:24 -070033 @{instanceList}= Create List
Suchitra Vemuridaeb2472017-08-15 11:58:21 -070034 ${Subscriber_Id}= Set Variable
Suchitra Vemurida8492a2017-06-15 14:47:24 -070035 Set Suite Variable @{instanceList}
Suchitra Vemuridaeb2472017-08-15 11:58:21 -070036 Set Suite Variable ${Subscriber_Id}
Suchitra Vemurida8492a2017-06-15 14:47:24 -070037
Suchitra Vemuri465d46a2018-03-02 00:04:47 -080038Verify Multiple Instance Creation Functionality
Suchitra Vemurida8492a2017-06-15 14:47:24 -070039 [Arguments] ${type} ${listIndex}
40 Run Keyword If "${type}" == "SUBSCRIBER_CREATE" Test Post Subscriber Create ${listIndex}
Suchitra Vemurida8492a2017-06-15 14:47:24 -070041 Run Keyword If "${type}" == "INSTANCE_VALIDATE" Test Instance Validation ${listIndex}
42
43Test Post Subscriber Create
44 [Arguments] ${listIndex}
Suchitra Vemuri465d46a2018-03-02 00:04:47 -080045 [Documentation] Test posts subscribers and validates the end-end functionality until instance creations
46 # Read input from data files and post subscriber
Suchitra Vemurida8492a2017-06-15 14:47:24 -070047 ${subscriberList} = Get Variable Value ${slist}
Zack Williams821c5022020-01-15 15:11:46 -070048 ${subscriberDict}= CORDRobot.listToDict ${subscriberList} ${listIndex}
49 ${api_result}= CORDRobot.ApiPost VOLT_SUBSCRIBER ${subscriberDict}
Suchitra Vemuri465d46a2018-03-02 00:04:47 -080050 Sleep 30
Zack Williams821c5022020-01-15 15:11:46 -070051 ${service_specific_id}= CORDRobot.getFieldValueFromDict ${subscriberDict} service_specific_id
52 ${json_result}= CORDRobot.ApiGet VOLT_SUBSCRIBER
Suchitra Vemuridaeb2472017-08-15 11:58:21 -070053 Log ${json_result}
Suchitra Vemuri465d46a2018-03-02 00:04:47 -080054 # Verifying GET operation after POST and validating the contents posted match the input data
Suchitra Vemuridaeb2472017-08-15 11:58:21 -070055 ${json_result_list}= Get From Dictionary ${json_result} items
Zack Williams821c5022020-01-15 15:11:46 -070056 ${getJsonDict}= CORDRobot.getDictFromListOfDict ${json_result_list} service_specific_id ${service_specific_id}
57 ${result}= CORDRobot.compare_dict ${subscriberDict} ${getJsonDict}
Suchitra Vemuridaeb2472017-08-15 11:58:21 -070058 Should Be True ${result}
Zack Williams821c5022020-01-15 15:11:46 -070059 ${Subscriber_Id}= CORDRobot.getFieldValueFromDict ${getJsonDict} id
Suchitra Vemuridaeb2472017-08-15 11:58:21 -070060 Log ${Subscriber_Id}
Suchitra Vemuri465d46a2018-03-02 00:04:47 -080061 # Retrieve subscribed_links_id from GET result of the posted Subscriber
Zack Williams821c5022020-01-15 15:11:46 -070062 ${subscribed_links_ids_list}= CORDRobot.getFieldValueFromDict ${getJsonDict} subscribed_links_ids
Suchitra Vemuri465d46a2018-03-02 00:04:47 -080063 Log ${subscribed_links_ids_list}
Suchitra Vemuridaeb2472017-08-15 11:58:21 -070064 ${subscribed_links_ids}= Get From List ${subscribed_links_ids_list} 0
Suchitra Vemuri465d46a2018-03-02 00:04:47 -080065 Log ${subscribed_links_ids}
66 # Retrieve provided_links_ids from core/serviceinstancelink
Zack Williams821c5022020-01-15 15:11:46 -070067 ${getServiceLink}= CORDRobot.ApiChameleonGet CH_CORE_SERVICELINK ${subscribed_links_ids}
Suchitra Vemuridaeb2472017-08-15 11:58:21 -070068 ${provider_service_instance_id}= Get From Dictionary ${getServiceLink} provider_service_instance_id
Suchitra Vemuri465d46a2018-03-02 00:04:47 -080069 # Verify created volt using the above provider_service_instance_id
70 # Verifying GET operation for the Autocreated Volt
Zack Williams821c5022020-01-15 15:11:46 -070071 ${get_result}= CORDRobot.ApiChameleonGet VOLT_TENANT ${provider_service_instance_id}
Suchitra Vemuri465d46a2018-03-02 00:04:47 -080072 Should Be True ${get_result}
73 # Get "subscriber_links_ids" from the GET result of /volt/volttenants
74 ${subscribed_links_ids_list}= Get From Dictionary ${get_result} subscribed_links_ids
75 ${subscribed_links_ids}= Get From List ${subscribed_links_ids_list} 0
Suchitra Vemurida8492a2017-06-15 14:47:24 -070076 # Validation of Instances
77 Log ${instanceList}
Zack Williams821c5022020-01-15 15:11:46 -070078 ${serviceLinkDict}= CORDRobot.ApiChameleonGet CH_CORE_SERVICELINK ${subscribed_links_ids}
Suchitra Vemurie40e0d22017-08-23 16:08:38 -070079 Log ${serviceLinkDict}
80 ${VSGTenant}= Get From Dictionary ${serviceLinkDict} provider_service_instance_id
81 # Retrieve VSGTenant to retrieve instance_id
Zack Williams821c5022020-01-15 15:11:46 -070082 ${getVSG_result}= CORDRobot.ApiChameleonGet VSG_TENANT ${VSGTenant}
Suchitra Vemurida8492a2017-06-15 14:47:24 -070083 ${instance_id}= Get From Dictionary ${getVSG_result} instance_id
84 Append To List ${instanceList} ${instance_id}
85 Log ${instanceList}
Zack Williams821c5022020-01-15 15:11:46 -070086 ${get_CoreInstanceresult}= CORDRobot.ApiChameleonGet CH_CORE_INSTANCES ${instance_id}
Suchitra Vemurida8492a2017-06-15 14:47:24 -070087 Should Be True ${get_CoreInstanceresult}
88
89Test Instance Validation
90 [Arguments] ${listIndex}
Zack Williams821c5022020-01-15 15:11:46 -070091 ${get_result}= CORDRobot.ApiGet VSG_TENANT
Suchitra Vemurida8492a2017-06-15 14:47:24 -070092 Should Be True ${get_result}
93 ${instanceFinalList}= Remove Duplicates ${instanceList}
94 Log ${instanceFinalList}
95 ${instanceCount}= Get Length ${instanceFinalList}
96 Log ${instanceCount}
97 Should Be True ${instanceCount} == 3