blob: c229698396a301af7c637466b4aa644e2a109b5f [file] [log] [blame]
Suchitra Vemurif58de922017-06-14 12:53:42 -07001*** Settings ***
2Documentation Test suite for Instance creation for multiple subscribers with same "s_tag" - Chameleon APIs
3Suite Setup Read InputFile
4Test Template Verify Single Instance Functionality
5Library Collections
6Library String
7Library OperatingSystem
8Library XML
9Library RequestsLibrary
10Library ../Framework/utils/utils.py
11Library ../Framework/restApi.py
12
13*** Variables ***
Suchitra Vemurif58de922017-06-14 12:53:42 -070014${PATHFILE} ${CURDIR}/data/Ch_Subscriber.json
15${PATHFILE2} ${CURDIR}/data/Ch_SingleInstance_VoltTenant.json
16
17*** Test Cases *** TYPE LISTINDEX
18Test Create Subscriber-1
19 SUBSCRIBER_CREATE 0
20
21Test Create Subscriber-2
22 SUBSCRIBER_CREATE 1
23
24Test Create Subscriber-3
25 SUBSCRIBER_CREATE 2
26
27Test Create Tenant-1
28 TENANT_CREATE 0
29
30Test Create Tenant-2
31 TENANT_CREATE 1
32
33Test Create Tenant-3
34 TENANT_CREATE 2
35
36Test Instance creation validation
37 INSTANCE_VALIDATE 0
38
39*** Keywords ***
40Read InputFile
41 ${subscriberList} = utils.jsonToList ${PATHFILE} SubscriberInfo
42 Set Suite Variable ${slist} ${subscriberList}
43 ${voltList}= utils.jsonToList ${PATHFILE2} voltSubscriberInfo
44 Set Suite Variable ${vlist} ${voltList}
45 @{instanceList}= Create List
46 Set Suite Variable @{instanceList}
47
48Verify Single Instance functionality
49 [Arguments] ${type} ${listIndex}
50 Run Keyword If "${type}" == "SUBSCRIBER_CREATE" Test Post Subscriber Create ${listIndex}
51 Run Keyword If "${type}" == "TENANT_CREATE" Test Post volt Tenant Create ${listIndex}
52 Run Keyword If "${type}" == "INSTANCE_VALIDATE" Test Instance Validation ${listIndex}
53
54Test Post Subscriber Create
55 [Arguments] ${listIndex}
56 ${subscriberList} = Get Variable Value ${slist}
57 ${subscriberDict}= utils.listToDict ${subscriberList} ${listIndex}
58 ${api_result}= restApi.ApiPost VOLT_SUBSCRIBER ${subscriberDict}
Suchitra Vemurie40e0d22017-08-23 16:08:38 -070059 ${service_specific_id}= utils.getFieldValueFromDict ${subscriberDict} service_specific_id
60 ${json_result}= restApi.ApiGet VOLT_SUBSCRIBER
61 Log ${json_result}
62 ${json_result_list}= Get From Dictionary ${json_result} items
63 ${getJsonDict}= utils.getDictFromListOfDict ${json_result_list} service_specific_id ${service_specific_id}
64 ${result}= utils.compare_dict ${subscriberDict} ${getJsonDict}
65 Should Be True ${result}
Suchitra Vemurif58de922017-06-14 12:53:42 -070066 ${instanceList} Create List
67
68Test Post volt Tenant Create
69 [Arguments] ${listIndex}
Suchitra Vemurie40e0d22017-08-23 16:08:38 -070070 ${subscriberList} = Get Variable Value ${slist}
71 ${subscriberDict}= utils.listToDict ${subscriberList} ${listIndex}
72 ${service_specific_id}= utils.getFieldValueFromDict ${subscriberDict} service_specific_id
73 ${json_result}= restApi.ApiGet VOLT_SUBSCRIBER
74 Log ${json_result}
75 ${json_result_list}= Get From Dictionary ${json_result} items
76 ${getJsonDict}= utils.getDictFromListOfDict ${json_result_list} service_specific_id ${service_specific_id}
77 ${Subscriber_Id}= utils.getFieldValueFromDict ${getJsonDict} id
78 Log ${Subscriber_Id}
Suchitra Vemurif58de922017-06-14 12:53:42 -070079 ${voltTenantList} = Get Variable Value ${vlist}
80 ${voltTenantDict}= utils.listToDict ${voltTenantList} ${listIndex}
81 ${voltDict}= Get From Dictionary ${voltTenantDict} voltTenant
Suchitra Vemurie40e0d22017-08-23 16:08:38 -070082 ${c_tag}= Get From Dictionary ${voltDict} c_tag
83 ${postResult}= restApi.ApiPost VOLT_TENANT ${voltDict}
84 Sleep 30
85 # Verifying GET operation after POST
86 ${get_result}= restApi.ApiGet VOLT_TENANT
Suchitra Vemurif58de922017-06-14 12:53:42 -070087 ${get_result_list}= Get From Dictionary ${get_result} items
Suchitra Vemurie40e0d22017-08-23 16:08:38 -070088 ${getJsonDict}= utils.getDictFromListofDict ${get_result_list} c_tag ${c_tag}
Suchitra Vemurif58de922017-06-14 12:53:42 -070089 Log ${getJsonDict}
90 ${test_result}= utils.compare_dict ${voltDict} ${getJsonDict}
91 Should Be True ${test_result}
Suchitra Vemurie40e0d22017-08-23 16:08:38 -070092 ${Volt_Id}= Get From Dictionary ${getJsonDict} id
93 ${provided_links_ids_list}= utils.getFieldValueFromDict ${getJsonDict} provided_links_ids
94 Log ${provided_links_ids_list}
95 ${provided_links_ids}= Get From List ${provided_links_ids_list} 0
96 Log ${provided_links_ids}
97 # Get subscribed_links_ids from volttenant
98 ${subscribed_links_ids_list}= utils.getFieldValueFromDict ${getJsonDict} subscribed_links_ids
99 ${subscribed_links_ids}= Get From List ${subscribed_links_ids_list} 0
100 # Retrieve service links using provided links ID
101 ${getServiceLink}= restApi.ApiChameleonGet CH_CORE_SERVICELINK ${provided_links_ids}
102 ${provider_service_instance_id}= Get From Dictionary ${getServiceLink} provider_service_instance_id
103 # Update the subscriber_service_instance_id to the required subscriber_id to establish desired link
104 ${serviceDict}= Create Dictionary subscriber_service_instance_id=${Subscriber_Id}
105 ${result}= restApi.ApiChameleonPut CH_CORE_SERVICELINK ${serviceDict} ${provided_links_ids}
106 Sleep 30
107 Should Be True ${result}
Suchitra Vemurif58de922017-06-14 12:53:42 -0700108 # Validation of Instances
109 Log ${instanceList}
Suchitra Vemurie40e0d22017-08-23 16:08:38 -0700110 ${serviceLinkDict}= restApi.ApiChameleonGet CH_CORE_SERVICELINK ${subscribed_links_ids}
111 Log ${serviceLinkDict}
112 ${VSGTenant}= Get From Dictionary ${serviceLinkDict} provider_service_instance_id
113 # Retrieve VSGTenant to retrieve instance_id
Suchitra Vemurif58de922017-06-14 12:53:42 -0700114 ${getVSG_result}= restApi.ApiChameleonGet VSG_TENANT ${VSGTenant}
115 ${instance_id}= Get From Dictionary ${getVSG_result} instance_id
116 Append To List ${instanceList} ${instance_id}
117 Log ${instanceList}
118
119Test Instance Validation
120 [Arguments] ${listIndex}
121 ${get_result}= restApi.ApiGet VSG_TENANT
122 Should Be True ${get_result}
123 ${instanceFinalList}= Remove Duplicates ${instanceList}
124 Log ${instanceFinalList}
125 ${instanceCount}= Get Length ${instanceFinalList}
126 Log ${instanceCount}
127 Should Be True ${instanceCount} == 1
128 ${instance_id}= Get From List ${instanceFinalList} 0
129 ${get_CoreInstanceresult}= restApi.ApiChameleonGet CH_CORE_INSTANCES ${instance_id}
130 Should Be True ${get_CoreInstanceresult}