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