diff options
Diffstat (limited to 'ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/PortMirroring.java')
-rw-r--r-- | ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/PortMirroring.java | 648 |
1 files changed, 567 insertions, 81 deletions
diff --git a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/PortMirroring.java b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/PortMirroring.java index b4bd55c6ca..ef957c6e32 100644 --- a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/PortMirroring.java +++ b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/sanity/PortMirroring.java @@ -1,124 +1,610 @@ package org.openecomp.sdc.ci.tests.execute.sanity; -import java.util.Map; - -import org.openecomp.sdc.be.model.ComponentInstance; +import com.aventstack.extentreports.Status; +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.Service; -import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.ci.tests.datatypes.AmdocsLicenseMembers; -import org.openecomp.sdc.ci.tests.datatypes.CanvasElement; -import org.openecomp.sdc.ci.tests.datatypes.CanvasManager; -import org.openecomp.sdc.ci.tests.datatypes.ConnectionWizardPopUpObject; -import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails; -import org.openecomp.sdc.ci.tests.datatypes.ServiceContainer; -import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails; -import org.openecomp.sdc.ci.tests.datatypes.VendorSoftwareProductObject; +import org.openecomp.sdc.ci.tests.datatypes.*; import org.openecomp.sdc.ci.tests.datatypes.enums.CircleSize; import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum; import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum; -import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse; import org.openecomp.sdc.ci.tests.execute.setup.SetupCDTest; import org.openecomp.sdc.ci.tests.pages.CompositionPage; +import org.openecomp.sdc.ci.tests.pages.ResourceGeneralPage; import org.openecomp.sdc.ci.tests.pages.ServiceGeneralPage; -import org.openecomp.sdc.ci.tests.utilities.ServiceUIUtils; +import org.openecomp.sdc.ci.tests.utilities.CatalogUIUtilitis; +import org.openecomp.sdc.ci.tests.utilities.GeneralUIUtils; +import org.openecomp.sdc.ci.tests.utilities.HomeUtils; +import org.openecomp.sdc.ci.tests.utilities.PortMirroringUtils; import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils; import org.openecomp.sdc.ci.tests.utils.general.ElementFactory; import org.openecomp.sdc.ci.tests.utils.general.FileHandling; -import org.openecomp.sdc.ci.tests.utils.general.OnboardingUtillViaApis; -import org.openecomp.sdc.ci.tests.utils.general.OnboardingUtils; +import org.openecomp.sdc.ci.tests.verificator.PortMirroringVerificator; import org.openecomp.sdc.ci.tests.verificator.ServiceVerificator; +import org.testng.AssertJUnit; +import org.testng.SkipException; import org.testng.annotations.Test; -import com.aventstack.extentreports.Status; -import com.clearspring.analytics.util.Pair; +import java.io.File; -import fj.data.Either; +import static org.testng.Assert.assertTrue; -public class PortMirroring extends SetupCDTest -{ - @Override - protected UserRoleEnum getRole() { - return UserRoleEnum.DESIGNER3; +public class PortMirroring extends SetupCDTest { + + @Test + public void createPortMirroringConfigurationServiceProxy() throws Throwable { + PortMirrioringConfigurationObject portMirrioringConfigurationObject = PortMirroringUtils.createPortMirriongConfigurationStructure(); + ServiceReqDetails serviceReqDetails = portMirrioringConfigurationObject.getServiceReqDetails(); + CanvasManager canvasManager = portMirrioringConfigurationObject.getCanvasManager(); + CanvasElement serviceElementVmmeSourceName = portMirrioringConfigurationObject.getServiceElementVmmeSourceName(); + String vmmeSourceName = portMirrioringConfigurationObject.getVmmeSourceName(); + CanvasElement serviceElementVprobeCollector = portMirrioringConfigurationObject.getServiceElementVprobeCollector(); + String vprobeSourceName = portMirrioringConfigurationObject.getVprobeSourceName(); + + serviceReqDetails.setVersion("0.1"); + getExtendTest().log(Status.INFO, "Validating links between elements were created"); + ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 2); + + canvasManager.clickOnCanvaElement(serviceElementVmmeSourceName); + PortMirroringVerificator.validatingProxyServiceNameAndType(vmmeSourceName, "0"); + + canvasManager.clickOnCanvaElement(serviceElementVprobeCollector); + PortMirroringVerificator.validatingProxyServiceNameAndType(vprobeSourceName, "0"); } - String portMirroringElementNameInPallete = "Port Mirroring Configuration"; - String portMirroringCapReqType = "org.openecomp.capabilities.PortMirroring"; - String portMirroringSourceCapability = "Port Mirroring Configuration 0: source: [1, UNBOUNDED]"; - String portMirroringCollectorCapability = "Port Mirroring Configuration 0: collector: [1, 1]"; + @Test + public void distributePortMirroringConfigurationServiceProxy() throws Throwable { + PortMirrioringConfigurationObject portMirrioringConfigurationObject = PortMirroringUtils.createPortMirriongConfigurationStructure(); + ServiceReqDetails serviceReqDetails = portMirrioringConfigurationObject.getServiceReqDetails(); + Service service = portMirrioringConfigurationObject.getService(); + + serviceReqDetails.setVersion("0.1"); + getExtendTest().log(Status.INFO, "Validating links between elements were created"); + ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 2); + + getExtendTest().log(Status.INFO, String.format("Going to certify the Service")); + service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft(); + getExtendTest().log(Status.INFO, String.format("Service is certified")); + Boolean distributeAndValidateService = AtomicOperationUtils.distributeAndValidateService(service); + getExtendTest().log(Status.INFO, String.format("Distribute and validate the Service")); + AssertJUnit.assertTrue("Distribution status is " + distributeAndValidateService, distributeAndValidateService); + } @Test - public void createPortMirroringServiceProxy() throws Throwable { + public void createPortMirroringByPolicyServiceProxy() throws Throwable { //Using API onboard and certify 2 zip files Source: vmmme and Collector: Vprobe String filePath = FileHandling.getPortMirroringRepositoryPath(); - ServiceContainer serviceContainerVmme_Source = createServiceFromHeatFile(filePath,"2016-227_vmme_vmme_30_1610_e2e.zip"); - ServiceContainer serviceContainerVprobe_Collector = createServiceFromHeatFile(filePath,"vProbe_2017-10-22_07-24.zip"); + ServiceContainer serviceContainerVmme_Source = PortMirroringUtils.createServiceFromHeatFile(filePath, "2016-227_vmme_vmme_30_1610_e2e.zip"); + + // create service with required pnf's and certify it + Resource resourceCisco = PortMirroringUtils.GeneratePNFAndUpdateInput(PortMirroringEnum.CISCO_VENDOR_NAME.getValue(), PortMirroringEnum.CISCO_VENDOR_MODEL_NUMBER.getValue(), getUser()); + Resource resourceAPCON1 = PortMirroringUtils.GeneratePNFAndUpdateInput(PortMirroringEnum.APCON1_VENDOR_NAME.getValue(), PortMirroringEnum.APCON1_VENDOR_MODEL_NUMBER.getValue(), getUser()); + Resource resourceAPCON2 = PortMirroringUtils.GeneratePNFAndUpdateInput(PortMirroringEnum.APCON2_VENDOR_NAME.getValue(), PortMirroringEnum.APCON2_VENDOR_MODEL_NUMBER.getValue(), getUser()); + + ServiceReqDetails serviceReqDetailsCollector = ElementFactory.getDefaultService(); + serviceReqDetailsCollector.setServiceType(PortMirroringEnum.SERVICE_TYPE.getValue()); + getExtendTest().log(Status.INFO, String.format("Creating collector service %s (PNF container)", serviceReqDetailsCollector.getName())); + Service serviceCollector = AtomicOperationUtils.createCustomService(serviceReqDetailsCollector, UserRoleEnum.DESIGNER, true).left().value(); + + getExtendTest().log(Status.INFO, String.format("Adding pnf's: %s,%s,%s to service %s", resourceCisco.getName(), resourceAPCON1.getName(), resourceAPCON2.getName(), serviceCollector.getName())); -// String vmmeSourceName = "ciServiceb560327d162f"; -// String vprobeSourceName = "ciService3d9933d31791"; + AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceCisco, serviceCollector, UserRoleEnum.DESIGNER, true, "80", "80"); + AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceAPCON1, serviceCollector, UserRoleEnum.DESIGNER, true, "80", "200"); + AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceAPCON2, serviceCollector, UserRoleEnum.DESIGNER, true, "200", "200"); - // create service - ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService(); - ServiceUIUtils.createService(serviceMetadata, getUser()); + serviceCollector = (Service) AtomicOperationUtils.changeComponentState(serviceCollector, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft(); + + // create container service + ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService(); + getExtendTest().log(Status.INFO, String.format("Creating container service %s", serviceReqDetails.getName())); + Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value(); String vmmeSourceName = serviceContainerVmme_Source.getService().getName(); - String vprobeSourceName = serviceContainerVprobe_Collector.getService().getName(); + String collectorServiceName = serviceCollector.getName(); + + CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG); + GeneralUIUtils.findComponentAndClick(service.getName()); ServiceGeneralPage.getLeftMenu().moveToCompositionScreen(); CanvasManager canvasManager = CanvasManager.getCanvasManager(); CompositionPage.searchForElement(vmmeSourceName); - CanvasElement serviceElementVmmeSourceName = canvasManager.createElementOnCanvas(vmmeSourceName); - - CompositionPage.searchForElement(vprobeSourceName); - CanvasElement serviceElementVprobeCollector = canvasManager.createElementOnCanvas(vprobeSourceName); - - CompositionPage.searchForElement(portMirroringElementNameInPallete); - CanvasElement portMirroringConfigurationElement = canvasManager.createElementOnCanvas(portMirroringElementNameInPallete); - - ConnectionWizardPopUpObject connectionWizardPopUpObjectVMME = new ConnectionWizardPopUpObject("","", portMirroringCapReqType, portMirroringSourceCapability); - ConnectionWizardPopUpObject connectionWizardPopUpObjectVProbe = new ConnectionWizardPopUpObject("","", portMirroringCapReqType, portMirroringCollectorCapability); - - canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSourceName, CircleSize.SERVICE,portMirroringConfigurationElement, CircleSize.NORMATIVE, connectionWizardPopUpObjectVMME); - canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVprobeCollector, CircleSize.SERVICE, portMirroringConfigurationElement, CircleSize.NORMATIVE, connectionWizardPopUpObjectVProbe); - - serviceMetadata.setVersion("0.1"); - ServiceVerificator.verifyLinkCreated(serviceMetadata, getUser(), 2); - - System.out.println("End"); - } - - public ServiceContainer createServiceFromHeatFile(String filePath, String vnfFile) throws Throwable - { - setLog(String.format("Distribute Service Test: Create VF from %s add it to service than distribute", vnfFile)); -// 1. Import VSP v1.0 - User sdncDesignerDetails1 = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER3); - AmdocsLicenseMembers amdocsLicenseMembers = OnboardingUtils.createVendorLicense(sdncDesignerDetails1); - getExtendTest().log(Status.INFO, String.format("Creating Vendor Software License (VLM): %s v1.0", amdocsLicenseMembers.getVendorLicenseName())); - ResourceReqDetails resourceReqDetails = ElementFactory.getDefaultResource(); - getExtendTest().log(Status.INFO, String.format("Creating Vendor Software Product (VSP): %s v1.0 from heat file: %s ", resourceReqDetails.getName(), vnfFile)); - Pair<String, Map<String, String>> createVendorSoftwareProduct = OnboardingUtils.createVendorSoftwareProduct(resourceReqDetails, vnfFile, filePath, sdncDesignerDetails1, amdocsLicenseMembers); - VendorSoftwareProductObject vendorSoftwareProductObject = OnboardViaApis.fillVendorSoftwareProductObjectWithMetaData(vnfFile, createVendorSoftwareProduct); -// 2. Create VF, certify - v1.0 is created - resourceReqDetails = OnboardingUtillViaApis.prepareOnboardedResourceDetailsBeforeCreate(resourceReqDetails, vendorSoftwareProductObject); - Resource resource = OnboardingUtillViaApis.createResourceFromVSP(resourceReqDetails); - resource = (Resource) AtomicOperationUtils.changeComponentState(resource, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft(); - getExtendTest().log(Status.INFO, String.format("Creating Virtual Function (VF): %s v1.0", resourceReqDetails.getName())); - getExtendTest().log(Status.INFO, String.format("Certify the VF")); -// 3. Create Service add to it the certified VF and certify the Service v1.0 + CanvasElement serviceElementVmmeSource = canvasManager.createElementOnCanvas(vmmeSourceName); + + CompositionPage.searchForElement(collectorServiceName); + CanvasElement serviceElementCollectorService = canvasManager.createElementOnCanvas(collectorServiceName); + + CompositionPage.searchForElement(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue()); + CanvasElement portMirroringConfigurationByPolicyElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue()); + + ConnectionWizardPopUpObject connectionWizardPopUpObjectVMME = new ConnectionWizardPopUpObject("", + "", + PortMirroringEnum.PM_REQ_TYPE.getValue(), + PortMirroringEnum.PMCP_SOURCE_CAP.getValue()); + + canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSource, + CircleSize.SERVICE, + portMirroringConfigurationByPolicyElement, + CircleSize.NORMATIVE, + connectionWizardPopUpObjectVMME); + + serviceReqDetails.setVersion("0.1"); + getExtendTest().log(Status.INFO, "Validating link between elements was created"); + ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 1); + + canvasManager.clickOnCanvaElement(serviceElementVmmeSource); + PortMirroringVerificator.validatingProxyServiceNameAndType(vmmeSourceName, "0"); + + getExtendTest().log(Status.INFO, "Adding properties to PMCP"); + + if(true){ + throw new SkipException("Open bug 373762, can't update properties on CP or VFC instance on Composition screen"); + } + + canvasManager.clickOnCanvaElement(portMirroringConfigurationByPolicyElement); + CompositionPage.showPropertiesAndAttributesTab(); + CompositionPage.setSingleProperty(DataTestIdEnum.PortMirroring.COLLECTOR_NODE.getValue(), PortMirroringUtils.createProxyInstanceServiceName(collectorServiceName, "1")); + CompositionPage.setSingleProperty(DataTestIdEnum.PortMirroring.EQUIP_MODEL.getValue(), PortMirroringEnum.CISCO_VENDOR_MODEL_NUMBER.getValue()); + CompositionPage.setSingleProperty(DataTestIdEnum.PortMirroring.EQUIP_VENDOR.getValue(), PortMirroringEnum.CISCO_VENDOR_NAME.getValue()); + + // Distribute the Port Mirroning Configuration By Policy + getExtendTest().log(Status.INFO, String.format("Going to certify the Service")); + service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft(); + getExtendTest().log(Status.INFO, String.format("Service is certified")); + Boolean distributeAndValidateService = AtomicOperationUtils.distributeAndValidateService(service); + getExtendTest().log(Status.INFO, String.format("Distribute and validate the Service")); + AssertJUnit.assertTrue("Distribution status is " + distributeAndValidateService, distributeAndValidateService); + } + + @Test + public void deletePMCPLink() throws Throwable { + ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService(); + getExtendTest().log(Status.INFO, String.format("Creating container service %s", serviceReqDetails.getName())); + Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value(); + + String filePath = FileHandling.getPortMirroringRepositoryPath(); + ServiceContainer serviceContainerVmme_Source = PortMirroringUtils.createServiceFromHeatFile(filePath, "2016-227_vmme_vmme_30_1610_e2e.zip"); + + String vmmeSourceName = serviceContainerVmme_Source.getService().getName(); + + CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG); + GeneralUIUtils.findComponentAndClick(service.getName()); + + ServiceGeneralPage.getLeftMenu().moveToCompositionScreen(); + CanvasManager canvasManager = CanvasManager.getCanvasManager(); + + CompositionPage.searchForElement(vmmeSourceName); + CanvasElement serviceElementVmmeSource = canvasManager.createElementOnCanvas(vmmeSourceName); + + CompositionPage.searchForElement(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue()); + CanvasElement portMirroringConfigurationByPolicyElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue()); + + ImmutablePair<Integer, Integer> linkLocation = canvasManager.calcMidOfLink(serviceElementVmmeSource.getLocation(), portMirroringConfigurationByPolicyElement.getLocation()); + + ConnectionWizardPopUpObject connectionWizardPopUpObjectVMME = new ConnectionWizardPopUpObject("", + "", + PortMirroringEnum.PM_REQ_TYPE.getValue(), + PortMirroringEnum.PMCP_SOURCE_CAP.getValue()); + + canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSource, + CircleSize.SERVICE, + portMirroringConfigurationByPolicyElement, + CircleSize.NORMATIVE, + connectionWizardPopUpObjectVMME); + + CanvasElement linkBetweenPMCP_VMME = new CanvasElement("Link", linkLocation); + + serviceReqDetails.setVersion("0.1"); + getExtendTest().log(Status.INFO, "Validating link between elements was created"); + ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 1); + + canvasManager.openLinkPopupReqsCapsConnection(linkBetweenPMCP_VMME); + canvasManager.closeLinkPopupReqsCapsConnection(); + canvasManager.deleteLinkPopupReqsCapsConnection(linkBetweenPMCP_VMME); + + getExtendTest().log(Status.INFO, "Validating link deleted"); + ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 0); + } + + @Test + public void verifyPMCNotExistInVF() throws Exception { + Resource resource = PortMirroringUtils.getResourceByType(ResourceTypeEnum.VF, "VF", "VendorModel"); + + CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG); + + GeneralUIUtils.findComponentAndClick(resource.getName()); + ResourceGeneralPage.getLeftMenu().moveToCompositionScreen(); + + CompositionPage.searchForElement(PortMirroringEnum.PMC_ELEMENT_IN_PALLETE.getValue()); + + getExtendTest().log(Status.INFO, "Verify that Port Mirroring Configuration and Configuration by Policy doesn't exist for VF "); + boolean isPMCFound = GeneralUIUtils.isElementInvisibleByTestId(DataTestIdEnum.PortMirroring.PMC_NAME_IN_PALLETE.getValue()); + boolean isPMCPFound = GeneralUIUtils.isElementInvisibleByTestId(DataTestIdEnum.PortMirroring.PMCP_NAME_IN_PALLETE.getValue()); + + assertTrue(isPMCFound); + assertTrue(isPMCPFound); + } + + @Test + public void verifyPMCPTabs() throws Exception { + + ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService(); + getExtendTest().log(Status.INFO, String.format("Creating container service %s", serviceReqDetails.getName())); + Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value(); + + CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG); + GeneralUIUtils.findComponentAndClick(service.getName()); + + ServiceGeneralPage.getLeftMenu().moveToCompositionScreen(); + CanvasManager canvasManager = CanvasManager.getCanvasManager(); + + CompositionPage.searchForElement(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue()); + CanvasElement portMirroringConfigurationByPolicyElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue()); + canvasManager.clickOnCanvaElement(portMirroringConfigurationByPolicyElement); + + PortMirroringVerificator.validateGeneralInfo(); + PortMirroringVerificator.validateReqsAndCapsTabExist(); + } + + + @Test + public void editPMCPName() throws Exception { + ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService(); + getExtendTest().log(Status.INFO, String.format("Creating container service %s", serviceReqDetails.getName())); Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value(); - getExtendTest().log(Status.INFO, String.format("Creating Service: %s v1.0", serviceReqDetails.getName())); - Either<ComponentInstance, RestResponse> addComponentInstanceToComponentContainer = AtomicOperationUtils.addComponentInstanceToComponentContainer(resource, service, UserRoleEnum.DESIGNER, true); - ComponentInstance componentInstance = addComponentInstanceToComponentContainer.left().value(); - getExtendTest().log(Status.INFO, String.format("Adding VF instance to Service")); + + CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG); + GeneralUIUtils.findComponentAndClick(service.getName()); + + ServiceGeneralPage.getLeftMenu().moveToCompositionScreen(); + CanvasManager canvasManager = CanvasManager.getCanvasManager(); + + CompositionPage.searchForElement(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue()); + CanvasElement portMirroringConfigurationByPolicyElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue()); + + canvasManager.clickOnCanvaElement(portMirroringConfigurationByPolicyElement); + + getExtendTest().log(Status.INFO, "Edit PMCP Name"); + GeneralUIUtils.clickOnElementById(DataTestIdEnum.CompositionRightPanel.EDIT_PENCIL.getValue()); + GeneralUIUtils.setTextInElementByDataTestID(DataTestIdEnum.CompositionRightPanel.INSTANCE_NAME_TEXTBOX.getValue(), PortMirroringEnum.PMCP_NEWNAME.getValue()); + GeneralUIUtils.clickOnElementByTestId("OK"); + + PortMirroringVerificator.validateElementName(PortMirroringEnum.PMCP_NEWNAME.getValue()); + } + + + @Test + public void deletePMCP() throws Exception { + + ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService(); + getExtendTest().log(Status.INFO, String.format("Creating container service %s", serviceReqDetails.getName())); + Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value(); + + CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG); + GeneralUIUtils.findComponentAndClick(service.getName()); + + ServiceGeneralPage.getLeftMenu().moveToCompositionScreen(); + CanvasManager canvasManager = CanvasManager.getCanvasManager(); + + CompositionPage.searchForElement(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue()); + CanvasElement portMirroringConfigurationByPolicyElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue()); + + canvasManager.clickOnCanvaElement(portMirroringConfigurationByPolicyElement); + + getExtendTest().log(Status.INFO, String.format("Delete element %s", portMirroringConfigurationByPolicyElement.getElementType())); + GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.CompositionRightPanel.DELETE_ITEM.getValue()); + GeneralUIUtils.clickOnElementByTestId("OK"); + + PortMirroringVerificator.validateElementName(service.getName()); + } + + @Test + public void createPortMirroringConfigurationMulipleInstances() throws Throwable { + PortMirrioringConfigurationObject portMirrioringConfigurationObject = PortMirroringUtils.createPortMirriongConfigurationStructure(); + ServiceReqDetails serviceReqDetails = portMirrioringConfigurationObject.getServiceReqDetails(); + CanvasElement serviceElementVmmeSourceName = portMirrioringConfigurationObject.getServiceElementVmmeSourceName(); + + serviceReqDetails.setVersion("0.1"); + getExtendTest().log(Status.INFO, "Validating 2 links between elements were created"); + ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 2); + + GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.MainMenuButtonsFromInsideFrame.HOME_BUTTON.getValue()).click(); + GeneralUIUtils.ultimateWait(); + GeneralUIUtils.findComponentAndClick(serviceReqDetails.getName()); + + getExtendTest().log(Status.INFO, "Adding second PMC to composition"); + ServiceGeneralPage.getLeftMenu().moveToCompositionScreen(); + + CanvasManager canvasManager = CanvasManager.getCanvasManager(); + CompositionPage.searchForElement(PortMirroringEnum.PMC_ELEMENT_IN_PALLETE.getValue()); + CanvasElement portMirroringConfigurationElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMC_ELEMENT_IN_PALLETE.getValue()); + + ConnectionWizardPopUpObject connectionWizardPopUpObjectVMME = new ConnectionWizardPopUpObject("", "", + PortMirroringEnum.PM_REQ_TYPE.getValue(), PortMirroringEnum.PMC1_SOURCE_CAP.getValue()); + + getExtendTest().log(Status.INFO, "Connect VMME to PMC again"); + canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSourceName, CircleSize.SERVICE, portMirroringConfigurationElement, + CircleSize.NORMATIVE, connectionWizardPopUpObjectVMME); + + getExtendTest().log(Status.INFO, "Connect VMME to PMC again"); + canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSourceName, CircleSize.SERVICE, portMirroringConfigurationElement, + CircleSize.NORMATIVE, connectionWizardPopUpObjectVMME); + + getExtendTest().log(Status.INFO, "Validating 4 links between elements exist"); + ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 4); + + getExtendTest().log(Status.INFO, "Adding second PMCP to composition"); + CompositionPage.searchForElement(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue()); + CanvasElement portMirroringConfigurationByPolicyElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue()); + + ConnectionWizardPopUpObject connectionWizardPopUpObjectVMME_PMCP = new ConnectionWizardPopUpObject("", + "", + PortMirroringEnum.PM_REQ_TYPE.getValue(), + PortMirroringEnum.PMCP_SOURCE_CAP.getValue()); + + getExtendTest().log(Status.INFO, "Connect VMME to PMCP again"); + canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSourceName, CircleSize.SERVICE, portMirroringConfigurationByPolicyElement, + CircleSize.NORMATIVE, connectionWizardPopUpObjectVMME_PMCP); + + getExtendTest().log(Status.INFO, "Connect VMME to PMCP again"); + canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSourceName, CircleSize.SERVICE, portMirroringConfigurationByPolicyElement, + CircleSize.NORMATIVE, connectionWizardPopUpObjectVMME_PMCP); + + serviceReqDetails.setVersion("0.1"); + getExtendTest().log(Status.INFO, "Validating 6 links between elements exist"); + ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 6); + } + + @Test + public void downloadArtifactFromPMCService() throws Throwable { + //Scenario of bug 362271 + PortMirrioringConfigurationObject portMirrioringConfigurationObject = PortMirroringUtils.createPortMirriongConfigurationStructure(); + ServiceReqDetails serviceReqDetails = portMirrioringConfigurationObject.getServiceReqDetails(); + + GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.MainMenuButtonsFromInsideFrame.HOME_BUTTON.getValue()).click(); + GeneralUIUtils.ultimateWait(); + GeneralUIUtils.findComponentAndClick(serviceReqDetails.getName()); + + ServiceGeneralPage.getLeftMenu().moveToToscaArtifactsScreen(); + + GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.ToscaArtifactsScreenEnum.TOSCA_MODEL.getValue()); + File latestFilefromDir = org.openecomp.sdc.ci.tests.utilities.FileHandling.getLastModifiedFileNameFromDir(); + String actualToscaModelFilename = latestFilefromDir.getName(); + + GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.ToscaArtifactsScreenEnum.TOSCA_TEMPLATE.getValue()); + latestFilefromDir = org.openecomp.sdc.ci.tests.utilities.FileHandling.getLastModifiedFileNameFromDir(); + String actualToscaTemplateFilename = latestFilefromDir.getName(); + + String expectedToscaModelFilename = String.format("service-%s-csar.csar", serviceReqDetails.getName()); + String expectedToscaTemplateFilename = String.format("service-%s-template.yml", serviceReqDetails.getName()); + + getExtendTest().log(Status.INFO, "Validating tosca artifact downloaded successfully"); + AssertJUnit.assertTrue(actualToscaModelFilename.equalsIgnoreCase(expectedToscaModelFilename)); + AssertJUnit.assertTrue(actualToscaTemplateFilename.equalsIgnoreCase(expectedToscaTemplateFilename)); + } + + @Test + public void checkoutMirroringConfigurationServiceProxyAndDeletePMC() throws Throwable { + PortMirrioringConfigurationObject portMirrioringConfigurationObject = PortMirroringUtils.createPortMirriongConfigurationStructure(); + ServiceReqDetails serviceReqDetails = portMirrioringConfigurationObject.getServiceReqDetails(); + Service service = portMirrioringConfigurationObject.getService(); + CanvasElement portMirroringConfigurationElement = portMirrioringConfigurationObject.getPortMirroringConfigurationElement(); + + serviceReqDetails.setVersion("0.1"); + getExtendTest().log(Status.INFO, "Validating links between elements were created"); + ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 2); + + getExtendTest().log(Status.INFO, String.format("Going to certify the Service")); + service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft(); + + getExtendTest().log(Status.INFO, String.format("Checkout Port Mirroring Service")); + service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft(); + + GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.MainMenuButtonsFromInsideFrame.HOME_BUTTON.getValue()).click(); + GeneralUIUtils.ultimateWait(); + HomeUtils.findComponentAndClickByVersion(service.getName(), "1.1"); + + ServiceGeneralPage.getLeftMenu().moveToCompositionScreen(); + CanvasManager canvasManager = CanvasManager.getCanvasManager(); + GeneralUIUtils.ultimateWait(); + canvasManager.clickOnCanvasPosition(portMirroringConfigurationElement.getLocation().getLeft(), portMirroringConfigurationElement.getLocation().getRight()); + getExtendTest().log(Status.INFO, String.format("Delete element %s", portMirroringConfigurationElement.getElementType())); + GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.CompositionRightPanel.DELETE_ITEM.getValue()); + GeneralUIUtils.clickOnElementByTestId("OK"); + + PortMirroringVerificator.validateElementName(service.getName()); + getExtendTest().log(Status.INFO, "Validating 0 links after delete the port mirroring element"); + serviceReqDetails.setVersion("1.1"); + ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 0); + + getExtendTest().log(Status.INFO, String.format("Going to certify the Service")); + service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft(); + + getExtendTest().log(Status.INFO, String.format("Service is certified")); + Boolean distributeAndValidateService = AtomicOperationUtils.distributeAndValidateService(service); + getExtendTest().log(Status.INFO, String.format("Distribute and validate the Service")); + AssertJUnit.assertTrue("Distribution status is " + distributeAndValidateService, distributeAndValidateService); + } + + @Test + public void updatePortMirroringServiceInstance() throws Throwable { + + PortMirrioringConfigurationObject portMirrioringConfigurationObject = PortMirroringUtils.createPortMirriongConfigurationStructure(); + Service service = portMirrioringConfigurationObject.getService(); + CanvasElement vmmeCanvasElement = portMirrioringConfigurationObject.getServiceElementVmmeSourceName(); + + getExtendTest().log(Status.INFO, String.format("Going to certify the Service")); + service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft(); + + Service serviceContainerVmme_Source = portMirrioringConfigurationObject.getServiceContainerVmme_Source(); + getExtendTest().log(Status.INFO, String.format("Checkout the vmme Service")); + serviceContainerVmme_Source = (Service) AtomicOperationUtils.changeComponentState(serviceContainerVmme_Source, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft(); + getExtendTest().log(Status.INFO, String.format("Going to certify the vmme Service")); + serviceContainerVmme_Source = (Service) AtomicOperationUtils.changeComponentState(serviceContainerVmme_Source, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft(); + + getExtendTest().log(Status.INFO, String.format("Checkout Port Mirroring Service")); + service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft(); + + GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.MainMenuButtonsFromInsideFrame.HOME_BUTTON.getValue()).click(); + GeneralUIUtils.ultimateWait(); + HomeUtils.findComponentAndClickByVersion(service.getName(), "1.1"); + + ServiceGeneralPage.getLeftMenu().moveToCompositionScreen(); + CanvasManager canvasManager = CanvasManager.getCanvasManager(); + + getExtendTest().log(Status.INFO, String.format("Change vmme source %s instance to version 2.0", serviceContainerVmme_Source.getName())); + CompositionPage.changeComponentVersion(canvasManager, vmmeCanvasElement, "2.0",false); + + getExtendTest().log(Status.INFO, String.format("Going to certify the Service")); service = (Service) AtomicOperationUtils.changeComponentState(service, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft(); - getExtendTest().log(Status.INFO, String.format("Certify the Service")); - return new ServiceContainer(service,resource,vendorSoftwareProductObject,amdocsLicenseMembers); + getExtendTest().log(Status.INFO, String.format("Service is certified")); + Boolean distributeAndValidateService = AtomicOperationUtils.distributeAndValidateService(service); + getExtendTest().log(Status.INFO, String.format("Distribute and validate the Service")); + AssertJUnit.assertTrue("Distribution status is " + distributeAndValidateService, distributeAndValidateService); } + @Test + public void updateLinkPropertiesPortMirroringService() throws Throwable { + + ServiceReqDetails serviceReqDetails = ElementFactory.getDefaultService(); + getExtendTest().log(Status.INFO, String.format("Creating container service %s", serviceReqDetails.getName())); + Service service = AtomicOperationUtils.createCustomService(serviceReqDetails, UserRoleEnum.DESIGNER, true).left().value(); + + String filePath = FileHandling.getPortMirroringRepositoryPath(); + ServiceContainer serviceContainerVmme_Source = PortMirroringUtils.createServiceFromHeatFile(filePath, "2016-227_vmme_vmme_30_1610_e2e.zip"); + + String vmmeSourceName = serviceContainerVmme_Source.getService().getName(); + + CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG); + GeneralUIUtils.findComponentAndClick(service.getName()); + + ServiceGeneralPage.getLeftMenu().moveToCompositionScreen(); + CanvasManager canvasManager = CanvasManager.getCanvasManager(); + + CompositionPage.searchForElement(vmmeSourceName); + CanvasElement serviceElementVmmeSource = canvasManager.createElementOnCanvas(vmmeSourceName); + + CompositionPage.searchForElement(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue()); + CanvasElement portMirroringConfigurationByPolicyElement = canvasManager.createElementOnCanvas(PortMirroringEnum.PMCP_ELEMENT_IN_PALLETE.getValue()); + + ImmutablePair<Integer, Integer> linkLocation = canvasManager.calcMidOfLink(serviceElementVmmeSource.getLocation(), portMirroringConfigurationByPolicyElement.getLocation()); + + ConnectionWizardPopUpObject connectionWizardPopUpObjectVMME = new ConnectionWizardPopUpObject("", + "", + PortMirroringEnum.PM_REQ_TYPE.getValue(), + PortMirroringEnum.PMCP_SOURCE_CAP.getValue()); + + canvasManager.linkElementsAndSelectCapReqTypeAndCapReqName(serviceElementVmmeSource, + CircleSize.SERVICE, + portMirroringConfigurationByPolicyElement, + CircleSize.NORMATIVE, + connectionWizardPopUpObjectVMME); + + CanvasElement linkBetweenPMCP_VMME = new CanvasElement("Link", linkLocation); + + serviceReqDetails.setVersion("0.1"); + getExtendTest().log(Status.INFO, "Validating link between elements was created"); + ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 1); + + canvasManager.openLinkPopupReqsCapsConnection(linkBetweenPMCP_VMME); + + getExtendTest().log(Status.INFO, "Fill link properties with data"); + GeneralUIUtils.setTextInElementByXpath(PortMirroringEnum.NETWORK_ROLE_XPATH.getValue(),PortMirroringEnum.NETWORK_ROLE_VALUE.getValue()); + GeneralUIUtils.setTextInElementByXpath(PortMirroringEnum.NFC_TYPE_XPATH.getValue(),PortMirroringEnum.NFC_TYPE_VALUE.getValue()); + GeneralUIUtils.setTextInElementByXpath(PortMirroringEnum.PPS_CAPACITY_XPATH.getValue(),PortMirroringEnum.PPS_CAPACITY_VALUE.getValue()); + GeneralUIUtils.setTextInElementByXpath(PortMirroringEnum.NF_TYPE_XPATH.getValue(),PortMirroringEnum.NF_TYPE_VALUE.getValue()); + GeneralUIUtils.ultimateWait(); + + if(true){ + throw new SkipException("Open bug 373765, Can't update link property on Port Mirroring connection"); + } + + canvasManager.clickSaveOnLinkPopup(); + Thread.sleep(3000); //Temp solution. Don't remove. + canvasManager.openLinkPopupReqsCapsConnection(linkBetweenPMCP_VMME); + + PortMirroringVerificator.validateLinkProperties(); + } + + @Test + public void restorePortMirroringServiceLink() throws Throwable { + //Scenario is taken from bug 361475 - Second Scenario + PortMirrioringConfigurationObject portMirrioringConfigurationObject = PortMirroringUtils.createPortMirriongConfigurationStructure(); + ServiceReqDetails serviceReqDetails = portMirrioringConfigurationObject.getServiceReqDetails(); + Service service = portMirrioringConfigurationObject.getService(); + CanvasElement vmmeCanvasElement = portMirrioringConfigurationObject.getServiceElementVmmeSourceName(); + Service serviceContainerVmme_Source = portMirrioringConfigurationObject.getServiceContainerVmme_Source(); + + getExtendTest().log(Status.INFO, String.format("Checkout the vmme Service")); + serviceContainerVmme_Source = (Service) AtomicOperationUtils.changeComponentState(serviceContainerVmme_Source, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft(); + getExtendTest().log(Status.INFO, String.format("Going to certify the vmme Service")); + serviceContainerVmme_Source = (Service) AtomicOperationUtils.changeComponentState(serviceContainerVmme_Source, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft(); + + GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.MainMenuButtonsFromInsideFrame.HOME_BUTTON.getValue()).click(); + GeneralUIUtils.ultimateWait(); + HomeUtils.findComponentAndClick(service.getName()); + + ServiceGeneralPage.getLeftMenu().moveToCompositionScreen(); + CanvasManager canvasManager = CanvasManager.getCanvasManager(); + + getExtendTest().log(Status.INFO, String.format("Changing vmme source %s instance to version 2.0", serviceContainerVmme_Source.getName())); + CompositionPage.changeComponentVersion(canvasManager, vmmeCanvasElement, "2.0",false); + + getExtendTest().log(Status.INFO, "Validating 1 link exist after change version to the vmme service (Newer version)"); + ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 2); + + getExtendTest().log(Status.INFO, String.format("Changing vmme source %s instance to version 1.0", serviceContainerVmme_Source.getName())); + CompositionPage.changeComponentVersion(canvasManager, vmmeCanvasElement, "1.0",false); + + ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 2); + } + + @Test + public void restoreServiceVersionOnContainerService() throws Throwable { + //Scenario is taken from bug 361475 - First Scenario + PortMirrioringConfigurationObject portMirrioringConfigurationObject = PortMirroringUtils.createPortMirriongConfigurationStructure(); + ServiceReqDetails serviceReqDetails = portMirrioringConfigurationObject.getServiceReqDetails(); + Service service = portMirrioringConfigurationObject.getService(); + CanvasElement vmmeCanvasElement = portMirrioringConfigurationObject.getServiceElementVmmeSourceName(); + Service serviceContainerVmme_Source = portMirrioringConfigurationObject.getServiceContainerVmme_Source(); + Service serviceContainerVprobe_Vprobe_Collector = portMirrioringConfigurationObject.getServiceContainerVprobe_Collector(); + CanvasElement vprobeCanvasElement = portMirrioringConfigurationObject.getServiceElementVprobeCollector(); + + + getExtendTest().log(Status.INFO, String.format("Checkout the vmme Service")); + serviceContainerVmme_Source = (Service) AtomicOperationUtils.changeComponentState(serviceContainerVmme_Source, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, true).getLeft(); + getExtendTest().log(Status.INFO, String.format("Going to certify the vmme Service")); + serviceContainerVmme_Source = (Service) AtomicOperationUtils.changeComponentState(serviceContainerVmme_Source, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft(); + + GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.MainMenuButtonsFromInsideFrame.HOME_BUTTON.getValue()).click(); + GeneralUIUtils.ultimateWait(); + HomeUtils.findComponentAndClick(service.getName()); + + ServiceGeneralPage.getLeftMenu().moveToCompositionScreen(); + CanvasManager canvasManager = CanvasManager.getCanvasManager(); + + canvasManager.linkElements(vmmeCanvasElement, CircleSize.SERVICE, vprobeCanvasElement, CircleSize.SERVICE); + + getExtendTest().log(Status.INFO, String.format("Changing vmme source %s instance to version 2.0", serviceContainerVmme_Source.getName())); + CompositionPage.changeComponentVersion(canvasManager, vmmeCanvasElement, "2.0",false); + + getExtendTest().log(Status.INFO, "Validating 1 link exist after change version to the vmme service (Newer version)"); + ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 3); + + getExtendTest().log(Status.INFO, String.format("Changing vmme source %s instance to version 1.0", serviceContainerVmme_Source.getName())); + CompositionPage.changeComponentVersion(canvasManager, vmmeCanvasElement, "1.0",false); + + ServiceVerificator.verifyLinkCreated(serviceReqDetails, getUser(), 3); + } + + @Override + protected UserRoleEnum getRole() { + return UserRoleEnum.DESIGNER; + } } |