835aacd3ed7b324b35b12ed16fc729e6e04be2ee
[vid.git] / vid-automation / src / main / java / vid / automation / test / test / CreatePortMirroringConfigurationTest.java
1 package vid.automation.test.test;
2
3 import com.google.common.collect.ImmutableMap;
4 import org.junit.Assert;
5 import org.onap.sdc.ci.tests.utilities.GeneralUIUtils;
6 import org.openqa.selenium.WebElement;
7 import org.testng.annotations.Test;
8 import vid.automation.test.Constants;
9 import vid.automation.test.infra.Exists;
10 import vid.automation.test.infra.Features;
11 import vid.automation.test.infra.Get;
12 import vid.automation.test.infra.Wait;
13 import vid.automation.test.sections.CreateConfigurationPage;
14 import vid.automation.test.sections.ServiceProxyPage;
15 import vid.automation.test.sections.ViewEditPage;
16 import vid.automation.test.services.BulkRegistration;
17 import vid.automation.test.services.SimulatorApi;
18
19 import java.util.HashMap;
20 import java.util.Map;
21
22 public class CreatePortMirroringConfigurationTest extends VidBaseTestCase {
23
24     private ViewEditPage viewEditPage = new ViewEditPage();
25     private CreateConfigurationPage createConfigurationPage = new CreateConfigurationPage();
26     private ServiceProxyPage serviceProxyPage = new ServiceProxyPage();
27     private String serviceInstanceId = "c187e9fe-40c3-4862-b73e-84ff056205f6";
28     private String serviceInstanceId_vidTest444 = "3f93c7cb-2fd0-4557-9514-e189b7b04f9d";
29     private String policyConfigurationModelName_0 = "Port Mirroring Configuration 0";
30     private String policyConfigurationModelName_1 = "Port Mirroring Configuration By Policy 1";
31     private String pnfInstanceName = "AS-pnf2-10219--as988q";
32     private String pnfServiceType = "DARREN MCGEE";
33     private String vnfServiceType = "TYLER SILVIA";
34     private String defaultCollectorServiceType = "TYLER SILVIA";
35     private String vnfInstanceName = "zhvf6aepdg01";
36     private String active = "Active";
37     private String desiredCloudRegionId = "mdt1";
38
39
40     private boolean featureFlagLetsSelectingCollector() {
41         return Features.FLAG_1810_CR_LET_SELECTING_COLLECTOR_TYPE_UNCONDITIONALLY.isActive();
42     }
43
44     private String expectedPnfCollectorServiceType() {
45         return (featureFlagLetsSelectingCollector() ? pnfServiceType : defaultCollectorServiceType).replace(" ", "%20");
46     }
47
48     @Test
49     public void testCreatePolicyConfiguration() {
50         SimulatorApi.clearAll();
51         BulkRegistration.searchExistingServiceInstancePortMirroring("Active", "mdt1");
52         BulkRegistration.getNetworkNodeFormData();
53         BulkRegistration.createPolicyConfiguration(true, expectedPnfCollectorServiceType());
54
55         navigateToViewEditPageOf_test_sssdad();
56         selectConfigurationNode(policyConfigurationModelName_1, getConfigurationExpectedMetadata());
57         fillAllFormFields();
58         createConfigurationPage.clickNextButton();
59         serviceProxyPage.assertButtonState(Constants.ConfigurationCreation.CREATE_BUTTON_TEST_ID,false);
60         //test back button
61         createConfigurationPage.clickBackButton();
62         assertFormFields();
63         createConfigurationPage.clickNextButton();
64
65         //assert service proxy models (circles) names
66         serviceProxyPage.assertSourceModelName("vflorenceService2 Service Proxy");
67         serviceProxyPage.assertCollectorModelName("pProbeService Service Proxy");
68
69         //assert service proxy models metadata
70         assertMetadataModal(Constants.ConfigurationCreation.SOURCE_INFO_BUTTON_TEST_ID, getSourceServiceProxyExpectedMetadata());
71         assertMetadataModal(Constants.ConfigurationCreation.COLLECTOR_INFO_BUTTON_TEST_ID, getCollectorServiceProxyExpectedMetadata());
72
73         //select source & collector
74         if (featureFlagLetsSelectingCollector()) {
75             serviceProxyPage.assertCollectorServiceType(defaultCollectorServiceType);
76             serviceProxyPage.chooseCollectorServiceType(pnfServiceType);
77         }
78         serviceProxyPage.chooseCollector(pnfInstanceName);
79         serviceProxyPage.assertSelectedInstanceIcon(Constants.ConfigurationCreation.COLLECTOR_INSTANCE_SELECTED_ICON_TEST_ID);
80
81         serviceProxyPage.chooseSourceServiceType(vnfServiceType);
82         serviceProxyPage.chooseSource(vnfInstanceName);
83         serviceProxyPage.assertSelectedInstanceIcon(Constants.ConfigurationCreation.SOURCE_INSTANCE_SELECTED_ICON_TEST_ID);
84
85         serviceProxyPage.assertButtonState(Constants.ConfigurationCreation.CREATE_BUTTON_TEST_ID,true);
86         serviceProxyPage.clickCreateButton();
87         serviceProxyPage.assertButtonStateEvenIfButtonNotVisible(Constants.ConfigurationCreation.CREATE_BUTTON_TEST_ID,false);
88         serviceProxyPage.assertMsoRequestModal(Constants.ViewEdit.MSO_SUCCESSFULLY_TEXT);
89         serviceProxyPage.clickCloseButton();
90
91         //assert redirect back to view/edit
92         GeneralUIUtils.ultimateWait();
93         Assert.assertTrue(Exists.byTestId(Constants.ViewEdit.ADD_VNF_BUTTON_TEST_ID));
94     }
95
96
97     @Test
98     public void testDeletePolicyConfiguration() {
99         SimulatorApi.clearAll();
100         BulkRegistration.searchExistingServiceInstancePortMirroring("Created", desiredCloudRegionId);
101         BulkRegistration.getNetworkNodeFormData();
102         BulkRegistration.deletePolicyConfiguration(true);
103         navigateToViewEditPageOf_test_sssdad();
104         serviceProxyPage.clickDeleteConfigurationButton();
105         serviceProxyPage.assertMsoRequestModal(Constants.ViewEdit.MSO_SUCCESSFULLY_TEXT);
106     }
107
108     @Test
109     public void testConfigurationCreatedPortEnabled(){
110         SimulatorApi.clearAll();
111         BulkRegistration.searchExistingServiceInstancePortMirroring("Created", desiredCloudRegionId);
112         BulkRegistration.getNetworkNodeFormData();
113         BulkRegistration.activateDeactivateConfiguration("deactivate");
114         navigateToViewEditPageOf_test_sssdad();
115         WebElement isPortEnableButtonExists = Get.byTestId("enableDisableButton");
116         Assert.assertNull(isPortEnableButtonExists);
117     }
118
119     @Test
120     public void testDisablePort() {
121         enableDisablePortPresets(active, true);
122         BulkRegistration.enableDisablePort("disablePort");
123         navigateToViewEditPageOf_test_sssdad();
124         serviceProxyPage.clickEnableDisableButton();
125         serviceProxyPage.assertMsoRequestModal(Constants.ViewEdit.MSO_SUCCESSFULLY_TEXT);
126     }
127
128     @Test
129     public void testEnablePort() {
130         enableDisablePortPresets(active, false);
131         BulkRegistration.enableDisablePort("enablePort");
132         navigateToViewEditPageOf_test_sssdad();
133         serviceProxyPage.clickEnableDisableButton();
134         serviceProxyPage.assertMsoRequestModal(Constants.ViewEdit.MSO_SUCCESSFULLY_TEXT);
135     }
136
137
138
139
140     private void enableDisablePortPresets(String orchStatus, boolean isMirrored){
141         SimulatorApi.clearAll();
142         BulkRegistration.searchExistingServiceInstancePortMirroring(orchStatus, isMirrored, desiredCloudRegionId);
143         BulkRegistration.getNetworkNodeFormData();
144     }
145
146
147
148     @Test
149     public void testActivateConfigurationTest(){
150         SimulatorApi.clearAll();
151         BulkRegistration.searchExistingServiceInstancePortMirroring("Created", desiredCloudRegionId);
152         BulkRegistration.getNetworkNodeFormData();
153         BulkRegistration.activateDeactivateConfiguration("activate");
154         navigateToViewEditPageOf_test_sssdad();
155         serviceProxyPage.assertDeleteConfigurationButtonExists(true);
156         serviceProxyPage.clickActivateDeactivateButton();
157         serviceProxyPage.assertMsoRequestModal(Constants.ViewEdit.MSO_SUCCESSFULLY_TEXT);
158     }
159
160
161     @Test
162     public void testDeleteConfigurationTest(){
163         SimulatorApi.clearAll();
164         BulkRegistration.searchExistingServiceInstancePortMirroring("Created", desiredCloudRegionId);
165         BulkRegistration.getNetworkNodeFormData();
166         BulkRegistration.deleteConfiguration();
167         navigateToViewEditPageOf_test_sssdad();
168         serviceProxyPage.clickDeleteConfigurationButton();
169         serviceProxyPage.assertMsoRequestModal(Constants.ViewEdit.MSO_SUCCESSFULLY_TEXT);
170     }
171
172
173     @Test
174     public void testDeactivateConfigurationTest(){
175         SimulatorApi.clearAll();
176         BulkRegistration.searchExistingServiceInstancePortMirroring("Active", desiredCloudRegionId);
177         BulkRegistration.getNetworkNodeFormData();
178         BulkRegistration.activateDeactivateConfiguration("deactivate");
179         navigateToViewEditPageOf_test_sssdad();
180         serviceProxyPage.assertDeleteConfigurationButtonExists(false);
181         serviceProxyPage.clickActivateDeactivateButton();
182         serviceProxyPage.assertMsoRequestModal(Constants.ViewEdit.MSO_SUCCESSFULLY_TEXT);
183
184     }
185
186
187     @Test
188     public void testCreatePortMirroringConfiguration() {
189         SimulatorApi.clearAll();
190         BulkRegistration.searchExistingServiceInstance();
191         BulkRegistration.getNetworkNodeFormData();
192         BulkRegistration.createPolicyConfiguration(true, expectedPnfCollectorServiceType());
193         BulkRegistration.createConfiguration("model-version-id=7482279e-5901-492f-a963-6331aa6b995e&model-invariant-id=f2ae9911-95c4-40d0-8908-0175c206ab2d");
194
195         navigateToViewEditPageOfuspVoiceVidTest444("240376de-870e-48df-915a-31f140eedd2c");
196         selectConfigurationNode(policyConfigurationModelName_0, ImmutableMap.<String, String>builder()
197                 .put(Constants.ServiceModelInfo.SERVIICE_NAME_KEY, "Demo Service 1")
198                 .put(Constants.ServiceModelInfo.MODEL_NAME, "Port Mirroring Configuration")
199                 .put(Constants.ServiceModelInfo.SERVICE_INSTANCE_NAME, "vid-test-444")
200                 .put(Constants.ServiceModelInfo.MODEL_INVARIANT_UUID, "5dd839fa-5e09-47d4-aa5c-5ba62161b569")
201                 .put(Constants.ServiceModelInfo.SUBSCRIBER_NAME_KEY, "SILVIA ROBBINS")
202                 .put(Constants.ServiceModelInfo.MODEL_VERSION, "1.0")
203                 .put(Constants.ServiceModelInfo.MODEL_UUID, "9d6b09b1-7527-49b1-b6cf-398cb67c5523")
204                 .put(Constants.ServiceModelInfo.MODEL_CUSTOMIZATION_UUID, "3db39baa-35bc-4b97-b199-44e758823502")
205                 .put(Constants.ServiceModelInfo.RESOURCE_NAME, policyConfigurationModelName_0)
206                 .build());
207         fillAllFormFields();
208         createConfigurationPage.clickNextButton();
209         serviceProxyPage.assertButtonState(Constants.ConfigurationCreation.CREATE_BUTTON_TEST_ID,false);
210         //test back button
211         createConfigurationPage.clickBackButton();
212         assertFormFields();
213         createConfigurationPage.clickNextButton();
214
215         //assert service proxy models (circles) names
216         serviceProxyPage.assertSourceModelName("Service 1 Service Proxy");
217         serviceProxyPage.assertCollectorModelName("Service 1 Service Proxy");
218
219         //assert service proxy models metadata
220         final ImmutableMap<String, String> expectedMetadata = ImmutableMap.<String, String>builder()
221                 .put(Constants.ServiceProxyModelInfo.MODEL_NAME, "Service 1 Service Proxy")
222                 .put(Constants.ServiceProxyModelInfo.MODEL_VERSION, "2.0")
223                 .put(Constants.ServiceProxyModelInfo.MODEL_DESCRIPTION, "A Proxy for Service Service 1")
224                 .put(Constants.ServiceProxyModelInfo.MODEL_TYPE, "Service Proxy")
225                 .put(Constants.ServiceProxyModelInfo.MODEL_INVARIANT_UUID, "0aaefad3-9409-4ab1-be00-a1571e8a0545")
226                 .put(Constants.ServiceProxyModelInfo.MODEL_UUID, "8685fd6a-c0b1-40f7-be94-ab232e4424c1")
227                 .put(Constants.ServiceProxyModelInfo.SOURCE_MODEL_UUID, "7482279e-5901-492f-a963-6331aa6b995e")
228                 .put(Constants.ServiceProxyModelInfo.SOURCE_MODEL_INVARIANT, "f2ae9911-95c4-40d0-8908-0175c206ab2d")
229                 .put(Constants.ServiceProxyModelInfo.SOURCE_MODEL_NAME, "Service 1")
230                 .build();
231         assertMetadataModal(Constants.ConfigurationCreation.SOURCE_INFO_BUTTON_TEST_ID, expectedMetadata);
232         assertMetadataModal(Constants.ConfigurationCreation.COLLECTOR_INFO_BUTTON_TEST_ID, expectedMetadata);
233
234         //select source & collector
235         serviceProxyPage.assertCollectorServiceType(defaultCollectorServiceType);
236         serviceProxyPage.chooseCollectorServiceType(vnfServiceType);
237         serviceProxyPage.chooseCollector(vnfInstanceName);
238         serviceProxyPage.assertSelectedInstanceIcon(Constants.ConfigurationCreation.COLLECTOR_INSTANCE_SELECTED_ICON_TEST_ID);
239
240         serviceProxyPage.chooseSourceServiceType(vnfServiceType);
241         serviceProxyPage.chooseSource(vnfInstanceName);
242         serviceProxyPage.assertSelectedInstanceIcon(Constants.ConfigurationCreation.SOURCE_INSTANCE_SELECTED_ICON_TEST_ID);
243
244         serviceProxyPage.assertButtonState(Constants.ConfigurationCreation.CREATE_BUTTON_TEST_ID,true);
245     }
246
247     @Test
248     public void testRainyCreatePolicyConfiguration() {
249
250         SimulatorApi.clearAll();
251         BulkRegistration.searchExistingServiceInstancePortMirroring("Active", desiredCloudRegionId);
252         BulkRegistration.getNetworkNodeFormData();
253         BulkRegistration.createPolicyConfiguration(false, expectedPnfCollectorServiceType());
254
255         navigateToViewEditPageOf_test_sssdad();
256         selectConfigurationNode(policyConfigurationModelName_1, getConfigurationExpectedMetadata());
257         fillAllFormFields();
258         createConfigurationPage.clickNextButton();
259         serviceProxyPage.assertButtonState(Constants.ConfigurationCreation.CREATE_BUTTON_TEST_ID,false);
260
261         //select source & collector
262         if (featureFlagLetsSelectingCollector()) {
263             serviceProxyPage.assertCollectorServiceType(defaultCollectorServiceType);
264             serviceProxyPage.chooseCollectorServiceType(pnfServiceType);
265         }
266         serviceProxyPage.chooseCollector(pnfInstanceName);
267         serviceProxyPage.chooseSourceServiceType(vnfServiceType);
268         serviceProxyPage.chooseSource(vnfInstanceName);
269         serviceProxyPage.clickCreateButton();
270         serviceProxyPage.assertMsoRequestModal("Error");
271         serviceProxyPage.clickCloseButton();
272         serviceProxyPage.assertButtonState(Constants.ConfigurationCreation.CREATE_BUTTON_TEST_ID,true);
273     }
274
275     @Test
276     public void testRainyNoResultsInDropdowns(){
277         SimulatorApi.clearAll();
278         BulkRegistration.searchExistingServiceInstancePortMirroring("Active", desiredCloudRegionId);
279         BulkRegistration.getNetworkNodeFormData();
280        //not register createPolicyConfiguration for no results in DDLs
281
282         navigateToViewEditPageOf_test_sssdad();
283         selectConfigurationNode(policyConfigurationModelName_1, getConfigurationExpectedMetadata());
284         fillAllFormFields();
285         createConfigurationPage.clickNextButton();
286         serviceProxyPage.assertButtonState(Constants.ConfigurationCreation.CREATE_BUTTON_TEST_ID,false);
287         //source & collector should be empty
288         serviceProxyPage.chooseSourceServiceType(vnfServiceType);
289         serviceProxyPage.noOptionDropdownByTestId(Constants.ConfigurationCreation.SOURCE_DROPDOWN_TEST_ID);
290         serviceProxyPage.noOptionDropdownByTestId(Constants.ConfigurationCreation.COLLECTOR_DROPDOWN_TEST_ID);
291         //error message no instance found
292         serviceProxyPage.assertNoResultRequirementsDropDown(Constants.ConfigurationCreation.COLLECTOR_NO_RESULT_MSG_TEST_ID,"pnf");
293         serviceProxyPage.assertNoResultRequirementsDropDown(Constants.ConfigurationCreation.SOURCE_NO_RESULT_MSG_TEST_ID,"vnf");
294     }
295
296     private void selectConfigurationNode(String name, Map<String, String> configurationExpectedMetadata){
297         viewEditPage.selectNodeInstanceToAdd(name);
298         assertModelInfo(configurationExpectedMetadata,true);
299         createConfigurationPage.assertButtonState(Constants.ConfigurationCreation.NEXT_BUTTON_TEST_ID, false);
300     }
301
302
303     public void assertMetadataModal(String btnTestId, Map<String, String> expectedMetadata) {
304         serviceProxyPage.clickInfoButton(btnTestId);
305         assertModelInfo(expectedMetadata, true);
306         serviceProxyPage.clickCloseButton();
307         Wait.modalToDisappear();
308     }
309
310     private void fillAllFormFields() {
311         createConfigurationPage.setInstanceName("dummy_instance");
312         createConfigurationPage.assertButtonState(Constants.ConfigurationCreation.TENANT_DROPDOWN_TEST_ID,false);
313         //WebElement tenantDDL= Get.byTestId(Constants.ConfigurationCreation.TENANT_DROPDOWN_TEST_ID);
314
315         createConfigurationPage.chooseRegion("AAIAIC25");
316         GeneralUIUtils.ultimateWait();
317        // Wait.waitByTestId(Constants.ConfigurationCreation.TENANT_DROPDOWN_TEST_ID, 30);
318         createConfigurationPage.chooseTenant("USP-SIP-IC-24335-T-01");
319         createConfigurationPage.assertButtonState(Constants.ConfigurationCreation.NEXT_BUTTON_TEST_ID,true);
320     }
321     private void assertFormFields() {
322         Assert.assertEquals("dummy_instance",createConfigurationPage.getInstanceName());
323         Assert.assertEquals("AAIAIC25", createConfigurationPage.getRegion());
324         Assert.assertEquals("USP-SIP-IC-24335-T-01",createConfigurationPage.getTenant());
325
326         createConfigurationPage.assertButtonState(Constants.ConfigurationCreation.NEXT_BUTTON_TEST_ID,true);
327     }
328
329     private Map<String, String> getConfigurationExpectedMetadata() {
330         return new HashMap<String, String>(){
331             {
332                 put(Constants.ServiceModelInfo.SERVIICE_NAME_KEY, "ServiceContainerMultiplepProbes");
333                 put(Constants.ServiceModelInfo.MODEL_NAME, "Port Mirroring Configuration By Policy");
334                 put(Constants.ServiceModelInfo.SERVICE_INSTANCE_NAME, "test_sssdad");
335                 put(Constants.ServiceModelInfo.MODEL_INVARIANT_UUID, "c30a024e-a6c6-4670-b73c-3df64eb57ff6");
336                 put(Constants.ServiceModelInfo.SUBSCRIBER_NAME_KEY, "SILVIA ROBBINS");
337                 put(Constants.ServiceModelInfo.MODEL_VERSION, "1.0");
338                 put(Constants.ServiceModelInfo.MODEL_UUID, "f58d039d-4cfc-40ec-bd75-1f05f0458a6c");
339                 put(Constants.ServiceModelInfo.MODEL_CUSTOMIZATION_UUID, "4b7ebace-bad6-4526-9be6-bf248e20fc5f");
340                 put(Constants.ServiceModelInfo.RESOURCE_NAME, policyConfigurationModelName_1);
341             }
342         };
343     }
344
345     private Map<String, String> getSourceServiceProxyExpectedMetadata() {
346         return new HashMap<String, String>(){
347             {
348                 put(Constants.ServiceProxyModelInfo.MODEL_NAME, "vflorenceService2 Service Proxy");
349                 put(Constants.ServiceProxyModelInfo.MODEL_VERSION, "1.0");
350                 put(Constants.ServiceProxyModelInfo.MODEL_DESCRIPTION, "A Proxy for Service vflorenceService2");
351                 put(Constants.ServiceProxyModelInfo.MODEL_TYPE, "Service Proxy");
352                 put(Constants.ServiceProxyModelInfo.MODEL_INVARIANT_UUID, "2933b574-d28d-45ea-bf22-4df2907e4a10");
353                 put(Constants.ServiceProxyModelInfo.MODEL_UUID, "a32fee17-5b59-4c34-ba6f-6dd2f1c61fee");
354                 put(Constants.ServiceProxyModelInfo.MODEL_CUSTOMIZATION_UUID, "060be63d-5f9c-4fd0-8ef7-830d5e8eca17");
355                 put(Constants.ServiceProxyModelInfo.SOURCE_MODEL_UUID, "2a2ea15f-07c6-4b89-bfca-e8aba39a34d6");
356                 put(Constants.ServiceProxyModelInfo.SOURCE_MODEL_INVARIANT, "a7eac2b3-8444-40ee-92e3-b3359b32445c");
357                 put(Constants.ServiceProxyModelInfo.SOURCE_MODEL_NAME, "vflorenceService2");
358             }
359         };
360     }
361
362     private Map<String, String> getCollectorServiceProxyExpectedMetadata() {
363         return new HashMap<String, String>(){
364             {
365                 put(Constants.ServiceProxyModelInfo.MODEL_NAME, "pProbeService Service Proxy");
366                 put(Constants.ServiceProxyModelInfo.MODEL_VERSION, "1.0");
367                 put(Constants.ServiceProxyModelInfo.MODEL_DESCRIPTION, "A Proxy for Service pProbeService");
368                 put(Constants.ServiceProxyModelInfo.MODEL_TYPE, "Service Proxy");
369                 put(Constants.ServiceProxyModelInfo.MODEL_INVARIANT_UUID, "2933b574-d28d-45ea-bf22-4df2907e4a10");
370                 put(Constants.ServiceProxyModelInfo.MODEL_UUID, "a32fee17-5b59-4c34-ba6f-6dd2f1c61fee");
371                 put(Constants.ServiceProxyModelInfo.MODEL_CUSTOMIZATION_UUID, "d64623ae-5935-4afd-803e-c86e94d8e740");
372                 put(Constants.ServiceProxyModelInfo.SOURCE_MODEL_UUID, "8a84e59b-45fe-4851-8ff1-34225a0b32c3");
373                 put(Constants.ServiceProxyModelInfo.SOURCE_MODEL_INVARIANT, "83b458fd-5dd3-419b-a9e3-7335814a0911");
374                 put(Constants.ServiceProxyModelInfo.SOURCE_MODEL_NAME, "pProbeService");
375             }
376         };
377     }
378 }