re base code
[sdc.git] / ui-ci / src / main / java / org / openecomp / sdc / ci / tests / execute / sanity / PortMirroring.java
1 package org.openecomp.sdc.ci.tests.execute.sanity;
2
3 import com.aventstack.extentreports.Status;
4 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
5 import org.openecomp.sdc.be.model.Resource;
6 import org.openecomp.sdc.be.model.Service;
7 import org.openecomp.sdc.ci.tests.datatypes.*;
8 import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
9 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
10 import org.openecomp.sdc.ci.tests.execute.setup.SetupCDTest;
11 import org.openecomp.sdc.ci.tests.pages.CompositionPage;
12 import org.openecomp.sdc.ci.tests.pages.ResourceGeneralPage;
13 import org.openecomp.sdc.ci.tests.pages.ServiceGeneralPage;
14 import org.openecomp.sdc.ci.tests.utilities.CatalogUIUtilitis;
15 import org.openecomp.sdc.ci.tests.utilities.GeneralUIUtils;
16 import org.openecomp.sdc.ci.tests.utilities.HomeUtils;
17 import org.openecomp.sdc.ci.tests.utilities.PortMirroringUtils;
18 import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
19 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
20 import org.openecomp.sdc.ci.tests.utils.general.FileHandling;
21 import org.openecomp.sdc.ci.tests.verificator.PortMirroringVerificator;
22 import org.openecomp.sdc.ci.tests.verificator.ServiceVerificator;
23 import org.testng.AssertJUnit;
24 import org.testng.annotations.Test;
25
26 import java.io.File;
27
28 import static org.testng.Assert.assertTrue;
29
30 public class PortMirroring extends SetupCDTest {
31
32     @Test
33     public void createPortMirroringConfigurationServiceProxy() throws Throwable {
34         PortMirrioringConfigurationObject portMirrioringConfigurationObject = PortMirroringUtils.createPortMirriongConfigurationStructure(false);
35         ServiceReqDetails serviceReqDetails = portMirrioringConfigurationObject.getServiceReqDetails();
36         CanvasManager canvasManager = portMirrioringConfigurationObject.getCanvasManager();
37         CanvasElement serviceElementVmmeSourceName = portMirrioringConfigurationObject.getServiceElementVmmeSourceName();
38         String vmmeSourceName = portMirrioringConfigurationObject.getVmmeSourceName();
39         CanvasElement serviceElementVprobeCollector = portMirrioringConfigurationObject.getServiceElementVprobeCollector();
40         String vprobeSourceName = portMirrioringConfigurationObject.getVprobeSourceName();
41
42         serviceReqDetails.setVersion("0.1");
43         getExtendTest().log(Status.INFO, "Validating links between elements were created");
44         ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 2);
45
46         canvasManager.clickOnCanvaElement(serviceElementVmmeSourceName);
47         PortMirroringVerificator.validatingProxyServiceNameAndType(vmmeSourceName, "0");
48
49         canvasManager.clickOnCanvaElement(serviceElementVprobeCollector);
50         PortMirroringVerificator.validatingProxyServiceNameAndType(vprobeSourceName, "0");
51     }
52
53     @Test
54     public void distributePortMirroringConfigurationServiceProxy() throws Throwable {
55         PortMirrioringConfigurationObject portMirrioringConfigurationObject = PortMirroringUtils.createPortMirriongConfigurationStructure(false);
56         ServiceReqDetails serviceReqDetails = portMirrioringConfigurationObject.getServiceReqDetails();
57         Service service = portMirrioringConfigurationObject.getService();
58
59         serviceReqDetails.setVersion("0.1");
60         getExtendTest().log(Status.INFO, "Validating links between elements were created");
61         ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 2);
62
63         getExtendTest().log(Status.INFO, String.format("Going to certify the Service"));
64         service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
65         getExtendTest().log(Status.INFO, String.format("Service is certified"));
66         Boolean distributeAndValidateService = AtomicOperationUtils.distributeAndValidateService(service);
67         getExtendTest().log(Status.INFO, String.format("Distribute and validate the Service"));
68         AssertJUnit.assertTrue("Distribution status is " + distributeAndValidateService, distributeAndValidateService);
69     }
70
71     @Test
72     public void createPortMirroringByPolicyServiceProxy() throws Throwable {            
73         //Using API onboard and certify 2 zip files Source: vmmme and Collector: Vprobe
74         String filePath = FileHandling.getPortMirroringRepositoryPath();
75         ServiceContainer serviceContainerVmme_Source = PortMirroringUtils.createServiceFromHeatFile(filePath, "2016-227_vmme_vmme_30_1610_e2e.zip");
76
77         // create service with required pnf's and certify it
78         Resource resourceCisco = PortMirroringUtils.GeneratePNFAndUpdateInput(PortMirroringEnum.CISCO_VENDOR_NAME.getValue(), PortMirroringEnum.CISCO_VENDOR_MODEL_NUMBER.getValue(), getUser());
79         Resource resourceAPCON1 = PortMirroringUtils.GeneratePNFAndUpdateInput(PortMirroringEnum.APCON1_VENDOR_NAME.getValue(), PortMirroringEnum.APCON1_VENDOR_MODEL_NUMBER.getValue(), getUser());
80         Resource resourceAPCON2 = PortMirroringUtils.GeneratePNFAndUpdateInput(PortMirroringEnum.APCON2_VENDOR_NAME.getValue(), PortMirroringEnum.APCON2_VENDOR_MODEL_NUMBER.getValue(), getUser());
81
82         ServiceReqDetails serviceReqDetailsCollector = ElementFactory.getDefaultService();
83         serviceReqDetailsCollector.setServiceType(PortMirroringEnum.SERVICE_TYPE.getValue());
84         getExtendTest().log(Status.INFO, String.format("Creating collector service %s (PNF container)", serviceReqDetailsCollector.getName()));
85         Service serviceCollector = AtomicOperationUtils.createCustomService(serviceReqDetailsCollector, UserRoleEnum.DESIGNER, true).left().value();
86
87         getExtendTest().log(Status.INFO, String.format("Adding pnf's: %s,%s,%s to service %s", resourceCisco.getName(), resourceAPCON1.getName(), resourceAPCON2.getName(), serviceCollector.getName()));
88
89         AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceCisco, serviceCollector, UserRoleEnum.DESIGNER, true, "80", "80");
90         AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceAPCON1, serviceCollector, UserRoleEnum.DESIGNER, true, "80", "200");
91         AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceAPCON2, serviceCollector, UserRoleEnum.DESIGNER, true, "200", "200");
92
93         serviceCollector = (Service) AtomicOperationUtils.changeComponentState(serviceCollector, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
94
95         // create container service
96         ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService();
97         getExtendTest().log(Status.INFO, String.format("Creating container service %s", serviceReqDetails.getName()));
98         Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value();
99
100         String vmmeSourceName = serviceContainerVmme_Source.getService().getName();
101         String collectorServiceName = serviceCollector.getName();
102
103         CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG);
104         GeneralUIUtils.findComponentAndClick(service.getName());
105
106         ServiceGeneralPage.getLeftMenu().moveToCompositionScreen();
107         CanvasManager canvasManager = CanvasManager.getCanvasManager();
108
109         CompositionPage.searchForElement(vmmeSourceName);
110         CanvasElement serviceElementVmmeSource = canvasManager.createElementOnCanvas(vmmeSourceName);
111
112         CompositionPage.searchForElement(collectorServiceName);
113         CanvasElement serviceElementCollectorService = canvasManager.createElementOnCanvas(collectorServiceName);
114
115         CompositionPage.searchForElement(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue());
116         CanvasElement portMirroringConfigurationByPolicyElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue());
117
118         ConnectionWizardPopUpObject connectionWizardPopUpObjectVMME = new ConnectionWizardPopUpObject("",
119                 "",
120                 PortMirroringEnum.PM_REQ_TYPE.getValue(),
121                 PortMirroringEnum.PMCP_SOURCE_CAP.getValue());
122
123         canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSource,
124                 portMirroringConfigurationByPolicyElement,
125                 connectionWizardPopUpObjectVMME);
126
127         serviceReqDetails.setVersion("0.1");
128         getExtendTest().log(Status.INFO, "Validating link between elements was created");
129         ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 1);
130
131         canvasManager.clickOnCanvaElement(serviceElementVmmeSource);
132         PortMirroringVerificator.validatingProxyServiceNameAndType(vmmeSourceName, "0");
133
134         getExtendTest().log(Status.INFO, "Adding properties to PMCP");
135         
136         if(true){
137 //                      throw new SkipException("Open bug 373762, can't update properties on CP or VFC instance  on Composition screen");
138                 SetupCDTest.getExtendTest().log(Status.INFO, "Open bug 373762, can't update properties on CP or VFC instance  on Composition screen");
139                 }
140
141         canvasManager.clickOnCanvaElement(portMirroringConfigurationByPolicyElement);
142         CompositionPage.showPropertiesAndAttributesTab();
143         CompositionPage.setSingleProperty(DataTestIdEnum.PortMirroring.COLLECTOR_NODE.getValue(), PortMirroringUtils.createProxyInstanceServiceName(collectorServiceName, "1"));
144         CompositionPage.setSingleProperty(DataTestIdEnum.PortMirroring.EQUIP_MODEL.getValue(), PortMirroringEnum.CISCO_VENDOR_MODEL_NUMBER.getValue());
145         CompositionPage.setSingleProperty(DataTestIdEnum.PortMirroring.EQUIP_VENDOR.getValue(), PortMirroringEnum.CISCO_VENDOR_NAME.getValue());
146
147         // Distribute the Port Mirroning Configuration By Policy
148         getExtendTest().log(Status.INFO, String.format("Going to certify the Service"));
149         service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
150         getExtendTest().log(Status.INFO, String.format("Service is certified"));
151         Boolean distributeAndValidateService = AtomicOperationUtils.distributeAndValidateService(service);
152         getExtendTest().log(Status.INFO, String.format("Distribute and validate the Service"));
153         AssertJUnit.assertTrue("Distribution status is " + distributeAndValidateService, distributeAndValidateService);
154     }
155
156     @Test
157     public void deletePMCPLink() throws Throwable {
158         ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService();
159         getExtendTest().log(Status.INFO, String.format("Creating container service %s", serviceReqDetails.getName()));
160         Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value();
161
162         String filePath = FileHandling.getPortMirroringRepositoryPath();
163         ServiceContainer serviceContainerVmme_Source = PortMirroringUtils.createServiceFromHeatFile(filePath, "2016-227_vmme_vmme_30_1610_e2e.zip");
164
165         String vmmeSourceName = serviceContainerVmme_Source.getService().getName();
166
167         CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG);
168         GeneralUIUtils.findComponentAndClick(service.getName());
169
170         ServiceGeneralPage.getLeftMenu().moveToCompositionScreen();
171         CanvasManager canvasManager = CanvasManager.getCanvasManager();
172
173         CompositionPage.searchForElement(vmmeSourceName);
174         CanvasElement serviceElementVmmeSource = canvasManager.createElementOnCanvas(vmmeSourceName);
175
176         CompositionPage.searchForElement(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue());
177         CanvasElement portMirroringConfigurationByPolicyElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue());
178
179         ConnectionWizardPopUpObject connectionWizardPopUpObjectVMME = new ConnectionWizardPopUpObject("",
180                 "",
181                 PortMirroringEnum.PM_REQ_TYPE.getValue(),
182                 PortMirroringEnum.PMCP_SOURCE_CAP.getValue());
183
184         canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSource,
185                 portMirroringConfigurationByPolicyElement,
186                 connectionWizardPopUpObjectVMME);
187
188         serviceReqDetails.setVersion("0.1");
189         getExtendTest().log(Status.INFO, "Validating link between elements was created");
190         ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 1);
191
192         canvasManager.openLinkPopupReqsCapsConnection(serviceElementVmmeSource, portMirroringConfigurationByPolicyElement);
193         canvasManager.closeLinkPopupReqsCapsConnection();
194         canvasManager.deleteLinkPopupReqsCapsConnection(serviceElementVmmeSource, portMirroringConfigurationByPolicyElement);
195
196         getExtendTest().log(Status.INFO, "Validating link deleted");
197         ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 0);
198     }
199
200     @Test
201     public void verifyPMCNotExistInVF() throws Exception {
202         Resource resource = PortMirroringUtils.getResourceByType(ResourceTypeEnum.VF, "VF", "VendorModel");
203
204         CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG);
205
206         GeneralUIUtils.findComponentAndClick(resource.getName());
207         ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
208
209         CompositionPage.searchForElement(PortMirroringEnum.PMC_ELEMENT_IN_PALLETE.getValue());
210
211         getExtendTest().log(Status.INFO, "Verify that Port Mirroring Configuration and Configuration by Policy doesn't exist for VF ");
212         boolean isPMCFound = GeneralUIUtils.isElementInvisibleByTestId(DataTestIdEnum.PortMirroring.PMC_NAME_IN_PALLETE.getValue());
213         boolean isPMCPFound = GeneralUIUtils.isElementInvisibleByTestId(DataTestIdEnum.PortMirroring.PMCP_NAME_IN_PALLETE.getValue());
214
215         assertTrue(isPMCFound);
216         assertTrue(isPMCPFound);
217     }
218
219     @Test
220     public void verifyPMCPTabs() throws Exception {
221
222         ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService();
223         getExtendTest().log(Status.INFO, String.format("Creating container service %s", serviceReqDetails.getName()));
224         Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value();
225
226         CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG);
227         GeneralUIUtils.findComponentAndClick(service.getName());
228
229         ServiceGeneralPage.getLeftMenu().moveToCompositionScreen();
230         CanvasManager canvasManager = CanvasManager.getCanvasManager();
231
232         CompositionPage.searchForElement(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue());
233         CanvasElement portMirroringConfigurationByPolicyElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue());
234         canvasManager.clickOnCanvaElement(portMirroringConfigurationByPolicyElement);
235
236         PortMirroringVerificator.validateGeneralInfo();
237         PortMirroringVerificator.validateReqsAndCapsTabExist();
238     }
239
240
241     @Test
242     public void editPMCPName() throws Exception {
243
244         ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService();
245         getExtendTest().log(Status.INFO, String.format("Creating container service %s", serviceReqDetails.getName()));
246         Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value();
247
248         CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG);
249         GeneralUIUtils.findComponentAndClick(service.getName());
250
251         ServiceGeneralPage.getLeftMenu().moveToCompositionScreen();
252         CanvasManager canvasManager = CanvasManager.getCanvasManager();
253
254         CompositionPage.searchForElement(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue());
255         CanvasElement portMirroringConfigurationByPolicyElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue());
256
257         canvasManager.clickOnCanvaElement(portMirroringConfigurationByPolicyElement);
258
259         getExtendTest().log(Status.INFO, "Edit PMCP Name");
260 //        GeneralUIUtils.clickOnElementById(DataTestIdEnum.CompositionRightPanel.EDIT_PENCIL.getValue());
261 //        GeneralUIUtils.setTextInElementByDataTestID(DataTestIdEnum.CompositionRightPanel.INSTANCE_NAME_TEXTBOX.getValue(), PortMirroringEnum.PMCP_NEWNAME.getValue());
262 //        GeneralUIUtils.clickOnElementByTestId("OK");
263         canvasManager.updateElementNameInCanvas(portMirroringConfigurationByPolicyElement,PortMirroringEnum.PMCP_NEWNAME.getValue());
264
265         PortMirroringVerificator.validateElementName(PortMirroringEnum.PMCP_NEWNAME.getValue());
266     }
267
268
269     @Test
270     public void deletePMCP() throws Exception {
271
272         ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService();
273         getExtendTest().log(Status.INFO, String.format("Creating container service %s", serviceReqDetails.getName()));
274         Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value();
275
276         CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG);
277         GeneralUIUtils.findComponentAndClick(service.getName());
278
279         ServiceGeneralPage.getLeftMenu().moveToCompositionScreen();
280         CanvasManager canvasManager = CanvasManager.getCanvasManager();
281
282         CompositionPage.searchForElement(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue());
283         CanvasElement portMirroringConfigurationByPolicyElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue());
284
285         canvasManager.clickOnCanvaElement(portMirroringConfigurationByPolicyElement);
286
287         getExtendTest().log(Status.INFO, String.format("Delete element %s", portMirroringConfigurationByPolicyElement.getElementType()));
288 //        GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.CompositionRightPanel.DELETE_ITEM.getValue());
289 //        GeneralUIUtils.clickOnElementByTestId("OK");
290         canvasManager.deleteElementFromCanvas(portMirroringConfigurationByPolicyElement);
291
292         PortMirroringVerificator.validateElementName(service.getName());
293     }
294
295     @Test
296     public void createPortMirroringConfigurationMulipleInstances() throws Throwable {
297         PortMirrioringConfigurationObject portMirrioringConfigurationObject = PortMirroringUtils.createPortMirriongConfigurationStructure(false);
298         ServiceReqDetails serviceReqDetails = portMirrioringConfigurationObject.getServiceReqDetails();
299         CanvasElement serviceElementVmmeSourceName = portMirrioringConfigurationObject.getServiceElementVmmeSourceName();
300
301         serviceReqDetails.setVersion("0.1");
302         getExtendTest().log(Status.INFO, "Validating 2 links between elements were created");
303         ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 2);
304
305         GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.MainMenuButtonsFromInsideFrame.HOME_BUTTON.getValue()).click();
306         GeneralUIUtils.ultimateWait();
307         GeneralUIUtils.findComponentAndClick(serviceReqDetails.getName());
308
309         getExtendTest().log(Status.INFO, "Adding second PMC to composition");
310         ServiceGeneralPage.getLeftMenu().moveToCompositionScreen();
311
312         CanvasManager canvasManager = CanvasManager.getCanvasManager();
313         CompositionPage.searchForElement(PortMirroringEnum.PMC_ELEMENT_IN_PALLETE.getValue());
314         CanvasElement portMirroringConfigurationElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMC_ELEMENT_IN_PALLETE.getValue());
315
316 //        ConnectionWizardPopUpObject connectionWizardPopUpObjectVMME = new ConnectionWizardPopUpObject("", "",
317 //                PortMirroringEnum.PM_REQ_TYPE.getValue(), PortMirroringEnum.PMC1_SOURCE_CAP.getValue());
318
319         ConnectionWizardPopUpObject connectionWizardPopUpObjectVMME = new ConnectionWizardPopUpObject("", "",
320               PortMirroringEnum.PM_REQ_TYPE.getValue(), PortMirroringEnum.PMC_SOURCE_CAP.getValue());
321
322         getExtendTest().log(Status.INFO, "Connect VMME to PMC again");
323         canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSourceName,portMirroringConfigurationElement,
324                connectionWizardPopUpObjectVMME);
325
326         getExtendTest().log(Status.INFO, "Connect VMME to PMC again");
327         canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSourceName, portMirroringConfigurationElement,
328                connectionWizardPopUpObjectVMME);
329
330         getExtendTest().log(Status.INFO, "Validating 4 links between elements exist");
331         ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 4);
332
333         getExtendTest().log(Status.INFO, "Adding second PMCP to composition");
334         CompositionPage.searchForElement(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue());
335         CanvasElement portMirroringConfigurationByPolicyElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue());
336
337         ConnectionWizardPopUpObject connectionWizardPopUpObjectVMME_PMCP = new ConnectionWizardPopUpObject("",
338                 "",
339                 PortMirroringEnum.PM_REQ_TYPE.getValue(),
340                 PortMirroringEnum.PMCP_SOURCE_CAP.getValue());
341
342         getExtendTest().log(Status.INFO, "Connect VMME to PMCP again");
343         canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSourceName, portMirroringConfigurationByPolicyElement,
344                connectionWizardPopUpObjectVMME_PMCP);
345
346         getExtendTest().log(Status.INFO, "Connect VMME to PMCP again");
347         canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSourceName, portMirroringConfigurationByPolicyElement,
348                 connectionWizardPopUpObjectVMME_PMCP);
349
350         serviceReqDetails.setVersion("0.1");
351         getExtendTest().log(Status.INFO, "Validating 6 links between elements exist");
352         ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 6);
353     }
354
355     @Test
356     public void downloadArtifactFromPMCService() throws Throwable {
357         //Scenario of bug 362271
358         PortMirrioringConfigurationObject portMirrioringConfigurationObject = PortMirroringUtils.createPortMirriongConfigurationStructure(false);
359         ServiceReqDetails serviceReqDetails = portMirrioringConfigurationObject.getServiceReqDetails();
360
361         GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.MainMenuButtonsFromInsideFrame.HOME_BUTTON.getValue()).click();
362         GeneralUIUtils.ultimateWait();
363         GeneralUIUtils.findComponentAndClick(serviceReqDetails.getName());
364
365         ServiceGeneralPage.getLeftMenu().moveToToscaArtifactsScreen();
366
367         GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.ToscaArtifactsScreenEnum.TOSCA_MODEL.getValue());
368         File latestFilefromDir = org.openecomp.sdc.ci.tests.utilities.FileHandling.getLastModifiedFileNameFromDir();
369         String actualToscaModelFilename = latestFilefromDir.getName();
370
371         GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.ToscaArtifactsScreenEnum.TOSCA_TEMPLATE.getValue());
372         latestFilefromDir = org.openecomp.sdc.ci.tests.utilities.FileHandling.getLastModifiedFileNameFromDir();
373         String actualToscaTemplateFilename = latestFilefromDir.getName();
374
375         String expectedToscaModelFilename = String.format("service-%s-csar.csar", serviceReqDetails.getName());
376         String expectedToscaTemplateFilename = String.format("service-%s-template.yml", serviceReqDetails.getName());
377
378         getExtendTest().log(Status.INFO, "Validating tosca artifact downloaded successfully");
379         AssertJUnit.assertTrue(actualToscaModelFilename.equalsIgnoreCase(expectedToscaModelFilename));
380         AssertJUnit.assertTrue(actualToscaTemplateFilename.equalsIgnoreCase(expectedToscaTemplateFilename));
381     }
382
383     @Test
384     public void checkoutMirroringConfigurationServiceProxyAndDeletePMC() throws Throwable {
385         PortMirrioringConfigurationObject portMirrioringConfigurationObject = PortMirroringUtils.createPortMirriongConfigurationStructure(false);
386         ServiceReqDetails serviceReqDetails = portMirrioringConfigurationObject.getServiceReqDetails();
387         Service service = portMirrioringConfigurationObject.getService();
388         CanvasElement portMirroringConfigurationElement = portMirrioringConfigurationObject.getPortMirroringConfigurationElement();
389
390         serviceReqDetails.setVersion("0.1");
391         getExtendTest().log(Status.INFO, "Validating links between elements were created");
392         ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 2);
393
394         getExtendTest().log(Status.INFO, String.format("Going to certify the Service"));
395         service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
396
397         getExtendTest().log(Status.INFO, String.format("Checkout Port Mirroring Service"));
398         service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
399
400         GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.MainMenuButtonsFromInsideFrame.HOME_BUTTON.getValue()).click();
401         GeneralUIUtils.ultimateWait();
402         HomeUtils.findComponentAndClickByVersion(service.getName(), "1.1");
403
404         ServiceGeneralPage.getLeftMenu().moveToCompositionScreen();
405         CanvasManager canvasManager = CanvasManager.getCanvasManager();
406         GeneralUIUtils.ultimateWait();
407 //        canvasManager.clickOnCanvasPosition(portMirroringConfigurationElement.getLocation().getLeft(), portMirroringConfigurationElement.getLocation().getRight());
408         canvasManager.clickOnCanvaElement(portMirroringConfigurationElement);
409         getExtendTest().log(Status.INFO, String.format("Delete element %s", portMirroringConfigurationElement.getElementType()));
410 //        GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.CompositionRightPanel.DELETE_ITEM.getValue());
411 //        GeneralUIUtils.clickOnElementByTestId("OK");
412         canvasManager.deleteElementFromCanvas(portMirroringConfigurationElement);
413
414         PortMirroringVerificator.validateElementName(service.getName());
415         getExtendTest().log(Status.INFO, "Validating 0 links after delete the port mirroring element");
416         serviceReqDetails.setVersion("1.1");
417         ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 0);
418
419         getExtendTest().log(Status.INFO, String.format("Going to certify the Service"));
420         service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
421
422         getExtendTest().log(Status.INFO, String.format("Service is certified"));
423         Boolean distributeAndValidateService = AtomicOperationUtils.distributeAndValidateService(service);
424         getExtendTest().log(Status.INFO, String.format("Distribute and validate the Service"));
425         AssertJUnit.assertTrue("Distribution status is " + distributeAndValidateService, distributeAndValidateService);
426     }
427
428     @Test
429     public void updatePortMirroringServiceInstance() throws Throwable {
430
431         PortMirrioringConfigurationObject portMirrioringConfigurationObject = PortMirroringUtils.createPortMirriongConfigurationStructure(false);
432         Service service = portMirrioringConfigurationObject.getService();
433         CanvasElement vmmeCanvasElement = portMirrioringConfigurationObject.getServiceElementVmmeSourceName();
434
435         getExtendTest().log(Status.INFO, String.format("Going to certify the Service"));
436         service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
437
438         Service serviceContainerVmme_Source = portMirrioringConfigurationObject.getServiceContainerVmme_Source();
439         getExtendTest().log(Status.INFO, String.format("Checkout the vmme Service"));
440         serviceContainerVmme_Source = (Service) AtomicOperationUtils.changeComponentState(serviceContainerVmme_Source, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
441         getExtendTest().log(Status.INFO, String.format("Going to certify the vmme Service"));
442         serviceContainerVmme_Source = (Service) AtomicOperationUtils.changeComponentState(serviceContainerVmme_Source, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
443
444         getExtendTest().log(Status.INFO, String.format("Checkout Port Mirroring Service"));
445         service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
446
447         GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.MainMenuButtonsFromInsideFrame.HOME_BUTTON.getValue()).click();
448         GeneralUIUtils.ultimateWait();
449         HomeUtils.findComponentAndClickByVersion(service.getName(), "1.1");
450
451         ServiceGeneralPage.getLeftMenu().moveToCompositionScreen();
452         CanvasManager canvasManager = CanvasManager.getCanvasManager();
453
454         getExtendTest().log(Status.INFO, String.format("Change vmme source %s instance to version 2.0", serviceContainerVmme_Source.getName()));
455         CompositionPage.changeComponentVersion(canvasManager, vmmeCanvasElement, "2.0",false);
456
457         getExtendTest().log(Status.INFO, String.format("Going to certify the Service"));
458         service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
459
460         getExtendTest().log(Status.INFO, String.format("Service is certified"));
461         Boolean distributeAndValidateService = AtomicOperationUtils.distributeAndValidateService(service);
462         getExtendTest().log(Status.INFO, String.format("Distribute and validate the Service"));
463         AssertJUnit.assertTrue("Distribution status is " + distributeAndValidateService, distributeAndValidateService);
464     }
465
466     @Test
467     public void updateLinkPropertiesPortMirroringService() throws Throwable {
468
469         ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService();
470         getExtendTest().log(Status.INFO, String.format("Creating container service %s", serviceReqDetails.getName()));
471         Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value();
472
473         String filePath = FileHandling.getPortMirroringRepositoryPath();
474         ServiceContainer serviceContainerVmme_Source = PortMirroringUtils.createServiceFromHeatFile(filePath, "2016-227_vmme_vmme_30_1610_e2e.zip");
475
476         String vmmeSourceName = serviceContainerVmme_Source.getService().getName();
477
478         CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG);
479         GeneralUIUtils.findComponentAndClick(service.getName());
480
481         ServiceGeneralPage.getLeftMenu().moveToCompositionScreen();
482         CanvasManager canvasManager = CanvasManager.getCanvasManager();
483
484         CompositionPage.searchForElement(vmmeSourceName);
485         CanvasElement serviceElementVmmeSource = canvasManager.createElementOnCanvas(vmmeSourceName);
486
487         CompositionPage.searchForElement(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue());
488         CanvasElement portMirroringConfigurationByPolicyElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue());
489
490         ConnectionWizardPopUpObject connectionWizardPopUpObjectVMME = new ConnectionWizardPopUpObject("",
491                 "",
492                 PortMirroringEnum.PM_REQ_TYPE.getValue(),
493                 PortMirroringEnum.PMCP_SOURCE_CAP.getValue());
494
495         canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSource,
496                 portMirroringConfigurationByPolicyElement,
497                 connectionWizardPopUpObjectVMME);
498
499         serviceReqDetails.setVersion("0.1");
500         getExtendTest().log(Status.INFO, "Validating link between elements was created");
501         ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 1);
502
503         canvasManager.openLinkPopupReqsCapsConnection(serviceElementVmmeSource, portMirroringConfigurationByPolicyElement);
504
505         getExtendTest().log(Status.INFO, "Fill link properties with data");
506         GeneralUIUtils.setTextInElementByXpath(PortMirroringEnum.NETWORK_ROLE_XPATH.getValue(),PortMirroringEnum.NETWORK_ROLE_VALUE.getValue());
507         GeneralUIUtils.setTextInElementByXpath(PortMirroringEnum.NFC_TYPE_XPATH.getValue(),PortMirroringEnum.NFC_TYPE_VALUE.getValue());
508         GeneralUIUtils.setTextInElementByXpath(PortMirroringEnum.PPS_CAPACITY_XPATH.getValue(),PortMirroringEnum.PPS_CAPACITY_VALUE.getValue());
509         GeneralUIUtils.setTextInElementByXpath(PortMirroringEnum.NF_TYPE_XPATH.getValue(),PortMirroringEnum.NF_TYPE_VALUE.getValue());
510         GeneralUIUtils.ultimateWait();
511         
512 //        if(true){
513 //                      throw new SkipException("Open bug 373765, Can't  update link property on Port Mirroring connection");
514 //              }
515
516         canvasManager.clickSaveOnLinkPopup();
517         Thread.sleep(3000); //Temp solution. Don't remove.
518         canvasManager.openLinkPopupReqsCapsConnection(serviceElementVmmeSource, portMirroringConfigurationByPolicyElement);
519
520         PortMirroringVerificator.validateLinkProperties();
521     }
522
523     @Test
524     public void restorePortMirroringServiceLink() throws Throwable {
525
526         //Scenario is taken from bug 361475 - Second Scenario
527         PortMirrioringConfigurationObject portMirrioringConfigurationObject = PortMirroringUtils.createPortMirriongConfigurationStructure(false);
528         ServiceReqDetails serviceReqDetails = portMirrioringConfigurationObject.getServiceReqDetails();
529         Service service = portMirrioringConfigurationObject.getService();
530         CanvasElement vmmeCanvasElement = portMirrioringConfigurationObject.getServiceElementVmmeSourceName();
531         Service serviceContainerVmme_Source = portMirrioringConfigurationObject.getServiceContainerVmme_Source();
532
533         getExtendTest().log(Status.INFO, String.format("Checkout the vmme Service"));
534         serviceContainerVmme_Source = (Service) AtomicOperationUtils.changeComponentState(serviceContainerVmme_Source, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
535         getExtendTest().log(Status.INFO, String.format("Going to certify the vmme Service"));
536         serviceContainerVmme_Source = (Service) AtomicOperationUtils.changeComponentState(serviceContainerVmme_Source, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
537
538         GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.MainMenuButtonsFromInsideFrame.HOME_BUTTON.getValue()).click();
539         GeneralUIUtils.ultimateWait();
540         HomeUtils.findComponentAndClick(service.getName());
541
542         ServiceGeneralPage.getLeftMenu().moveToCompositionScreen();
543         CanvasManager canvasManager = CanvasManager.getCanvasManager();
544
545         getExtendTest().log(Status.INFO, String.format("Changing vmme source %s instance to version 2.0", serviceContainerVmme_Source.getName()));
546         CompositionPage.changeComponentVersion(canvasManager, vmmeCanvasElement, "2.0",false);
547
548         getExtendTest().log(Status.INFO, "Validating 1 link exist after change version to the vmme service (Newer version)");
549         ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 2);
550
551         getExtendTest().log(Status.INFO, String.format("Changing vmme source %s instance to version 1.0", serviceContainerVmme_Source.getName()));
552         CompositionPage.changeComponentVersion(canvasManager, vmmeCanvasElement, "1.0",false);
553         
554         ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 2);
555     }
556
557     @Test
558     public void restoreServiceVersionOnContainerService() throws Throwable {
559         //Scenario is taken from bug 361475 - First Scenario
560         PortMirrioringConfigurationObject portMirrioringConfigurationObject = PortMirroringUtils.createPortMirriongConfigurationStructure(false);
561         ServiceReqDetails serviceReqDetails = portMirrioringConfigurationObject.getServiceReqDetails();
562         Service service = portMirrioringConfigurationObject.getService();
563         CanvasElement vmmeCanvasElement = portMirrioringConfigurationObject.getServiceElementVmmeSourceName();
564         Service serviceContainerVmme_Source = portMirrioringConfigurationObject.getServiceContainerVmme_Source();
565         Service serviceContainerVprobe_Vprobe_Collector = portMirrioringConfigurationObject.getServiceContainerVprobe_Collector();
566         CanvasElement vprobeCanvasElement = portMirrioringConfigurationObject.getServiceElementVprobeCollector();
567
568
569         getExtendTest().log(Status.INFO, String.format("Checkout the vmme Service"));
570         serviceContainerVmme_Source = (Service) AtomicOperationUtils.changeComponentState(serviceContainerVmme_Source, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft();
571         getExtendTest().log(Status.INFO, String.format("Going to certify the vmme Service"));
572         serviceContainerVmme_Source = (Service) AtomicOperationUtils.changeComponentState(serviceContainerVmme_Source, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
573
574         GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.MainMenuButtonsFromInsideFrame.HOME_BUTTON.getValue()).click();
575         GeneralUIUtils.ultimateWait();
576         HomeUtils.findComponentAndClick(service.getName());
577
578         ServiceGeneralPage.getLeftMenu().moveToCompositionScreen();
579         CanvasManager canvasManager = CanvasManager.getCanvasManager();
580
581 //        canvasManager.linkElements(vmmeCanvasElement, CircleSize.SERVICE, vprobeCanvasElement, CircleSize.SERVICE);
582         canvasManager.linkElements(vmmeCanvasElement, vprobeCanvasElement);
583
584         getExtendTest().log(Status.INFO, String.format("Changing vmme source %s instance to version 2.0", serviceContainerVmme_Source.getName()));
585         CompositionPage.changeComponentVersion(canvasManager, vmmeCanvasElement, "2.0",false);
586
587         getExtendTest().log(Status.INFO, "Validating 1 link exist after change version to the vmme service (Newer version)");
588         ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 3);
589
590         getExtendTest().log(Status.INFO, String.format("Changing vmme source %s instance to version 1.0", serviceContainerVmme_Source.getName()));
591         CompositionPage.changeComponentVersion(canvasManager, vmmeCanvasElement, "1.0",false);
592         
593         ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 3);
594     }
595
596     @Override
597     protected UserRoleEnum getRole() {
598         return UserRoleEnum.DESIGNER;
599     }
600 }
601
602