2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.ci.tests.execute.sanity;
23 import java.awt.AWTException;
25 import java.util.ArrayList;
26 import java.util.Arrays;
27 import java.util.HashMap;
28 import java.util.List;
31 import org.openecomp.sdc.be.dao.api.ActionStatus;
32 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
33 import org.openecomp.sdc.be.model.LifecycleStateEnum;
34 import org.openecomp.sdc.be.model.Resource;
35 import org.openecomp.sdc.ci.tests.datatypes.ArtifactInfo;
36 import org.openecomp.sdc.ci.tests.datatypes.CanvasElement;
37 import org.openecomp.sdc.ci.tests.datatypes.CanvasManager;
38 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum;
39 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.InformationalArtifactsPlaceholders;
40 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.LeftPanelCanvasItems;
41 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.ResourceMetadataEnum;
42 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.ToscaArtifactsScreenEnum;
43 import org.openecomp.sdc.ci.tests.datatypes.LifeCycleStateEnum;
44 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
45 import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
46 import org.openecomp.sdc.ci.tests.datatypes.enums.NormativeTypesEnum;
47 import org.openecomp.sdc.ci.tests.datatypes.enums.PropertyTypeEnum;
48 import org.openecomp.sdc.ci.tests.datatypes.enums.ResourceCategoryEnum;
49 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
50 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
51 import org.openecomp.sdc.ci.tests.execute.setup.AttFtpClient;
52 import org.openecomp.sdc.ci.tests.execute.setup.SetupCDTest;
53 import org.openecomp.sdc.ci.tests.pages.CompositionPage;
54 import org.openecomp.sdc.ci.tests.pages.DeploymentArtifactPage;
55 import org.openecomp.sdc.ci.tests.pages.GeneralPageElements;
56 import org.openecomp.sdc.ci.tests.pages.InformationalArtifactPage;
57 import org.openecomp.sdc.ci.tests.pages.InputsPage;
58 import org.openecomp.sdc.ci.tests.pages.PropertiesPage;
59 import org.openecomp.sdc.ci.tests.pages.ResourceGeneralPage;
60 import org.openecomp.sdc.ci.tests.pages.TesterOperationPage;
61 import org.openecomp.sdc.ci.tests.pages.ToscaArtifactsPage;
62 import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaDefinition;
63 import org.openecomp.sdc.ci.tests.utilities.ArtifactUIUtils;
64 import org.openecomp.sdc.ci.tests.utilities.FileHandling;
65 import org.openecomp.sdc.ci.tests.utilities.GeneralUIUtils;
66 import org.openecomp.sdc.ci.tests.utilities.OnboardingUtils;
67 import org.openecomp.sdc.ci.tests.utilities.PropertiesUIUtils;
68 import org.openecomp.sdc.ci.tests.utilities.ResourceUIUtils;
69 import org.openecomp.sdc.ci.tests.utilities.RestCDUtils;
70 import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
71 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
72 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
73 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
74 import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
75 import org.openecomp.sdc.ci.tests.verificator.ServiceVerificator;
76 import org.openecomp.sdc.ci.tests.verificator.VfModuleVerificator;
77 import org.openecomp.sdc.ci.tests.verificator.VfVerificator;
78 import org.openqa.selenium.By;
79 import org.openqa.selenium.WebElement;
80 import org.testng.AssertJUnit;
81 import org.testng.SkipException;
82 import org.testng.annotations.BeforeClass;
83 import org.testng.annotations.BeforeMethod;
84 import org.testng.annotations.Test;
86 import com.aventstack.extentreports.Status;
87 import com.clearspring.analytics.util.Pair;
90 public class Vf extends SetupCDTest {
92 private String filePath;
94 public void beforeClass(){
95 filePath = System.getProperty("filepath");
96 if (filePath == null && System.getProperty("os.name").contains("Windows")) {
97 filePath = FileHandling.getResourcesFilesPath();
99 else if(filePath.isEmpty() && !System.getProperty("os.name").contains("Windows")){
100 filePath = FileHandling.getBasePath() + File.separator + "Files" + File.separator;
105 public void beforeTest(){
106 System.out.println("File repository is : " + filePath);
107 getExtendTest().log(Status.INFO, "File repository is : " + filePath);
112 public void updateVF() throws Exception {
115 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
116 ResourceUIUtils.createResource(resourceMetaData, getUser());
119 ResourceReqDetails updatedResource = new ResourceReqDetails();
120 updatedResource.setName("ciUpdatedName");
121 updatedResource.setDescription("kuku");
122 updatedResource.setVendorName("updatedVendor");
123 updatedResource.setVendorRelease("updatedRelease");
124 updatedResource.setContactId("ab0001");
125 updatedResource.setCategories(resourceMetaData.getCategories());
126 updatedResource.setVersion("0.1");
127 updatedResource.setResourceType(ResourceTypeEnum.VF.getValue());
128 List<String> newTags = resourceMetaData.getTags();
129 newTags.remove(resourceMetaData.getName());
130 newTags.add(updatedResource.getName());
131 updatedResource.setTags(newTags);
132 ResourceUIUtils.updateResource(updatedResource, getUser());
134 VfVerificator.verifyVFMetadataInUI(updatedResource);
135 VfVerificator.verifyVFUpdated(updatedResource, getUser());
139 public void vfcLinkedToComputeInVfFlow() throws Exception {
140 String fileName = "vFW_VFC2.yml";
141 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
144 ResourceUIUtils.importVfc(atomicResourceMetaData, filePath, fileName, getUser());
145 ResourceGeneralPage.clickSubmitForTestingButton(atomicResourceMetaData.getName());
147 reloginWithNewRole(UserRoleEnum.TESTER);
148 GeneralUIUtils.findComponentAndClick(atomicResourceMetaData.getName());
149 TesterOperationPage.certifyComponent(atomicResourceMetaData.getName());
151 reloginWithNewRole(UserRoleEnum.DESIGNER);
152 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
153 ResourceUIUtils.createResource(vfMetaData, getUser());
155 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
156 CanvasManager canvasManager = CanvasManager.getCanvasManager();
157 CompositionPage.searchForElement(String.format("%s %s", LeftPanelCanvasItems.COMPUTE.getValue() , "1.0"));
158 CanvasElement computeElement = canvasManager.createElementOnCanvas(LeftPanelCanvasItems.COMPUTE);
159 CompositionPage.searchForElement(atomicResourceMetaData.getName());
160 CanvasElement cpElement = canvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
161 AssertJUnit.assertNotNull(cpElement);
162 ServiceVerificator.verifyNumOfComponentInstances(vfMetaData, "0.1", 2, getUser());
163 canvasManager.linkElements(cpElement, computeElement);
165 vfMetaData.setVersion("0.1");
166 VfVerificator.verifyLinkCreated(vfMetaData, getUser(), 1);
169 ResourceRestUtils.deleteResourceByNameAndVersion(atomicResourceMetaData.getName(), "1.0");
175 public void addUpdateDeleteDeploymentArtifactToVfTest() throws Exception {
176 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
177 ResourceUIUtils.createResource(vfMetaData, getUser());
179 ResourceGeneralPage.getLeftMenu().moveToDeploymentArtifactScreen();
181 List<ArtifactInfo> deploymentArtifactList = new ArrayList<ArtifactInfo>();
182 deploymentArtifactList.add(new ArtifactInfo(filePath, "asc_heat 0 2.yaml", "kuku", "artifact1", "OTHER"));
183 deploymentArtifactList.add(new ArtifactInfo(filePath, "sample-xml-alldata-1-1.xml", "cuku", "artifact2", "YANG_XML"));
184 for (ArtifactInfo deploymentArtifact : deploymentArtifactList) {
185 DeploymentArtifactPage.clickAddNewArtifact();
186 ArtifactUIUtils.fillAndAddNewArtifactParameters(deploymentArtifact);
188 AssertJUnit.assertTrue("artifact table does not contain artifacts uploaded", DeploymentArtifactPage.checkElementsCountInTable(deploymentArtifactList.size()));
190 String newDescription = "new description";
191 DeploymentArtifactPage.clickEditArtifact(deploymentArtifactList.get(0).getArtifactLabel());
192 DeploymentArtifactPage.artifactPopup().insertDescription(newDescription);
193 DeploymentArtifactPage.artifactPopup().clickDoneButton();
194 String actualArtifactDescription = DeploymentArtifactPage.getArtifactDescription(deploymentArtifactList.get(0).getArtifactLabel());
195 AssertJUnit.assertTrue("artifact description is not updated", newDescription.equals(actualArtifactDescription));
197 DeploymentArtifactPage.clickDeleteArtifact(deploymentArtifactList.get(0).getArtifactLabel());
198 DeploymentArtifactPage.clickOK();
199 AssertJUnit.assertTrue("artifact "+ deploymentArtifactList.get(0).getArtifactLabel() + "is not deleted", DeploymentArtifactPage.checkElementsCountInTable(deploymentArtifactList.size() - 1));
201 AssertJUnit.assertTrue("artifact "+ deploymentArtifactList.get(1).getArtifactLabel() + "is not displayed", DeploymentArtifactPage.clickOnArtifactDescription(deploymentArtifactList.get(1).getArtifactLabel()).isDisplayed());
206 public void addUpdateDeleteInformationalArtifact() throws Exception {
207 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
208 ResourceUIUtils.createResource(vfMetaData, getUser());
210 ResourceGeneralPage.getLeftMenu().moveToInformationalArtifactScreen();
212 ArtifactInfo informationalArtifact = new ArtifactInfo(filePath, "asc_heat 0 2.yaml", "kuku", "artifact1", "OTHER");
213 InformationalArtifactPage.clickAddNewArtifact();
214 ArtifactUIUtils.fillAndAddNewArtifactParameters(informationalArtifact);
216 AssertJUnit.assertTrue("artifact table does not contain artifacts uploaded", InformationalArtifactPage.checkElementsCountInTable(1));
218 String newDescription = "new description";
219 InformationalArtifactPage.clickEditArtifact(informationalArtifact.getArtifactLabel());
220 InformationalArtifactPage.artifactPopup().insertDescription(newDescription);
221 InformationalArtifactPage.artifactPopup().clickDoneButton();
222 String actualArtifactDescription = InformationalArtifactPage.getArtifactDescription(informationalArtifact.getArtifactLabel());
223 AssertJUnit.assertTrue("artifact description is not updated", newDescription.equals(actualArtifactDescription));
225 InformationalArtifactPage.clickDeleteArtifact(informationalArtifact.getArtifactLabel());
226 InformationalArtifactPage.clickOK();
227 AssertJUnit.assertTrue("artifact "+ informationalArtifact.getArtifactLabel() + "is not deleted", InformationalArtifactPage.checkElementsCountInTable(0));
232 public void addPropertiesToVfcInstanceInVfTest() throws Exception {
235 throw new SkipException("Open bug 292047");
238 String fileName = "vFW_VFC.yml";
239 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
242 ResourceUIUtils.importVfc(atomicResourceMetaData, filePath, fileName, getUser());
243 ResourceGeneralPage.clickCheckinButton(atomicResourceMetaData.getName());
245 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
246 ResourceUIUtils.createResource(vfMetaData, getUser());
248 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
249 CanvasManager vfCanvasManager = CanvasManager.getCanvasManager();
250 CompositionPage.searchForElement(atomicResourceMetaData.getName());
251 CanvasElement vfcElement = vfCanvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
253 vfCanvasManager.clickOnCanvaElement(vfcElement);
254 CompositionPage.showPropertiesAndAttributesTab();
255 List<WebElement> properties = CompositionPage.getProperties();
256 String propertyValue = "abc123";
257 for (int i = 0; i < 2; i++) {
258 WebElement findElement = properties.get(i).findElement(By.className("i-sdc-designer-sidebar-section-content-item-property-and-attribute-label"));
260 PropertiesPage.getPropertyPopup().insertPropertyDefaultValue(propertyValue);
261 PropertiesPage.getPropertyPopup().clickSave();
264 findElement = properties.get(i).findElement(By.className("i-sdc-designer-sidebar-section-content-item-property-value"));
265 AssertJUnit.assertTrue(findElement.getText().equals(propertyValue));
269 ResourceRestUtils.deleteResourceByNameAndVersion(atomicResourceMetaData.getName(), "0.1");
274 public void changeInstanceVersionTest() throws Exception{
276 ResourceReqDetails atomicResourceMetaData = null;
277 ResourceReqDetails vfMetaData = null;
278 CanvasManager vfCanvasManager;
279 CanvasElement vfcElement = null;
280 String fileName = "vFW_VFC3.yml";
282 atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
283 ResourceUIUtils.importVfc(atomicResourceMetaData, filePath, fileName, getUser());
284 ResourceGeneralPage.clickSubmitForTestingButton(atomicResourceMetaData.getName());
286 vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
287 ResourceUIUtils.createResource(vfMetaData, getUser());
288 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
289 vfCanvasManager = CanvasManager.getCanvasManager();
290 CompositionPage.searchForElement(atomicResourceMetaData.getName());
291 vfcElement = vfCanvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
294 CompositionPage.clickSubmitForTestingButton(vfMetaData.getName());
298 String errorMessage = GeneralUIUtils.getWebElementByClassName("w-sdc-modal-caption").getText();
299 String checkUIResponseOnError = ErrorValidationUtils.checkUIResponseOnError(ActionStatus.VALIDATED_RESOURCE_NOT_FOUND.name());
300 AssertJUnit.assertTrue(errorMessage.contains(checkUIResponseOnError));
303 reloginWithNewRole(UserRoleEnum.TESTER);
304 GeneralUIUtils.findComponentAndClick(atomicResourceMetaData.getName());
305 TesterOperationPage.certifyComponent(atomicResourceMetaData.getName());
307 reloginWithNewRole(UserRoleEnum.DESIGNER);
308 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
309 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
310 vfCanvasManager = CanvasManager.getCanvasManager();
311 CompositionPage.changeComponentVersion(vfCanvasManager, vfcElement, "1.0");
314 VfVerificator.verifyInstanceVersion(vfMetaData, getUser(), atomicResourceMetaData.getName(), "1.0");
318 ResourceRestUtils.deleteResourceByNameAndVersion(atomicResourceMetaData.getName(), "1.0");
323 // future removed from ui
324 @Test(enabled = false)
325 public void addUpdateDeleteSimplePropertiesToVfTest() throws Exception{
326 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
327 ResourceUIUtils.createResource(vfMetaData, getUser());
329 ResourceGeneralPage.getLeftMenu().moveToPropertiesScreen();
330 List<PropertyTypeEnum> propertyList = Arrays.asList(PropertyTypeEnum.STRING, PropertyTypeEnum.INTEGER);
331 int propertiesCount = PropertiesPage.getElemenetsFromTable().size();
332 for (PropertyTypeEnum prop : propertyList){
333 PropertiesUIUtils.addNewProperty(prop);
335 AssertJUnit.assertTrue(GeneralUIUtils.checkElementsCountInTable(propertiesCount + propertyList.size(), () -> PropertiesPage.getElemenetsFromTable()));
336 VfVerificator.verifyPropertiesInUI(propertyList);
337 PropertiesPage.verifyTotalProperitesField(propertiesCount + propertyList.size());
340 PropertyTypeEnum prop = propertyList.get(0);
341 prop.setDescription("updatedDescription");
342 prop.setValue("value");
343 PropertiesUIUtils.updateProperty(prop);
345 PropertiesPage.clickDeletePropertyArtifact(prop.getName());
346 AssertJUnit.assertTrue(GeneralUIUtils.checkElementsCountInTable(propertiesCount + propertyList.size() - 1, () -> PropertiesPage.getElemenetsFromTable()));
349 // future removed from ui
350 @Test(enabled = false)
351 public void vfcInstancesInputScreenTest() throws Exception{
352 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
353 ResourceUIUtils.createResource(vfMetaData, getUser());
355 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
356 CanvasManager vfCanvasManager = CanvasManager.getCanvasManager();
358 Map<String, String> elementsIntancesMap = new HashMap<String, String>();
359 for (LeftPanelCanvasItems element : Arrays.asList(LeftPanelCanvasItems.DATABASE, LeftPanelCanvasItems.BLOCK_STORAGE)){
360 CanvasElement elementOnCanvas = vfCanvasManager.createElementOnCanvas(element);
361 vfCanvasManager.clickOnCanvaElement(elementOnCanvas);
362 String selectedInstanceName = CompositionPage.getSelectedInstanceName();
363 elementsIntancesMap.put(selectedInstanceName, element.getValue());
366 CompositionPage.moveToInputsScreen();
367 int canvasElementsSize = vfCanvasManager.getCanvasElements().size();
368 AssertJUnit.assertTrue("Instances count is not as expected: " + canvasElementsSize, InputsPage.checkElementsCountInTable(canvasElementsSize));
370 for (String element : elementsIntancesMap.keySet()){
371 String resourceName = elementsIntancesMap.get(element);
372 ResourceReqDetails resource = new ResourceReqDetails();
373 resource.setName(resourceName);
374 resource.setVersion("1.0");
375 resource.setResourceType(ResourceTypeEnum.VFC.toString());
376 RestResponse restResponse = RestCDUtils.getResource(resource, getUser());
377 Map<String, String> propertiesNameTypeJson = ResponseParser.getPropertiesNameType(restResponse);
379 List<WebElement> propertyRowsFromTable = InputsPage.getInstancePropertiesList(element);
380 AssertJUnit.assertTrue("Some properties are missing in table. Instance name is : " + element, propertyRowsFromTable.size() == propertiesNameTypeJson.size());
381 VfVerificator.verifyVfInputs(element, propertiesNameTypeJson, propertyRowsFromTable);
383 GeneralUIUtils.clickOnElementByText(element);
390 public void addAllInformationalArtifactPlaceholdersInVfTest() throws Exception{
392 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
393 ResourceUIUtils.createResource(vfMetaData, getUser());
395 ResourceGeneralPage.getLeftMenu().moveToInformationalArtifactScreen();
397 for(InformationalArtifactsPlaceholders informArtifact : InformationalArtifactsPlaceholders.values()){
398 ArtifactUIUtils.fillPlaceHolderInformationalArtifact(informArtifact, filePath,"asc_heat 0 2.yaml", informArtifact.getValue());
401 AssertJUnit.assertTrue(InformationalArtifactPage.checkElementsCountInTable(InformationalArtifactsPlaceholders.values().length));
405 public void verifyToscaArtifactsExist() throws Exception{
406 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
407 ResourceUIUtils.createResource(vfMetaData, getUser());
409 final int numOfToscaArtifacts = 2;
410 ResourceGeneralPage.getLeftMenu().moveToToscaArtifactsScreen();
411 AssertJUnit.assertTrue(ToscaArtifactsPage.checkElementsCountInTable(numOfToscaArtifacts));
413 for(int i = 0; i < numOfToscaArtifacts; i++){
414 String typeFromScreen = ToscaArtifactsPage.getArtifactType(i);
415 AssertJUnit.assertTrue(typeFromScreen.equals(ArtifactTypeEnum.TOSCA_CSAR.getType()) || typeFromScreen.equals(ArtifactTypeEnum.TOSCA_TEMPLATE.getType()));
418 ToscaArtifactsPage.clickSubmitForTestingButton(vfMetaData.getName());
419 VfVerificator.verifyToscaArtifactsInfo(vfMetaData, getUser());
423 public void testDownload() throws Exception{
424 // ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
425 // ResourceUIUtils.createResource(vfMetaData, getUser());
427 // final int numOfToscaArtifacts = 2;
428 // ResourceGeneralPage.getLeftMenu().moveToToscaArtifactsScreen();
429 // assertTrue(ToscaArtifactsPage.checkElementsCountInTable(numOfToscaArtifacts));
430 // GeneralUIUtils.clickOnElementByTestId("download-Tosca Model");
431 // System.out.println("download me");
433 AttFtpClient attFtpClient = AttFtpClient.getInstance();
435 File retrieveLastModifiedFileFromFTP = attFtpClient.retrieveLastModifiedFileFromFTP();
436 attFtpClient.deleteFilesFromFTPserver();
440 public void vfCertificationTest() throws Exception{
441 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
442 ResourceUIUtils.createResource(vfMetaData, getUser());
444 String vfName = vfMetaData.getName();
446 ResourceGeneralPage.clickCheckinButton(vfName);
447 GeneralUIUtils.findComponentAndClick(vfName);
448 ResourceGeneralPage.clickSubmitForTestingButton(vfName);
450 reloginWithNewRole(UserRoleEnum.TESTER);
451 GeneralUIUtils.findComponentAndClick(vfName);
452 TesterOperationPage.certifyComponent(vfName);
454 vfMetaData.setVersion("1.0");
455 VfVerificator.verifyVFLifecycle(vfMetaData, getUser(), LifecycleStateEnum.CERTIFIED);
457 reloginWithNewRole(UserRoleEnum.DESIGNER);
458 GeneralUIUtils.findComponentAndClick(vfName);
459 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CERTIFIED);
463 public void deleteVfCheckedoutTest() throws Exception{
464 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
465 ResourceUIUtils.createResource(vfMetaData, getUser());
467 GeneralPageElements.clickTrashButtonAndConfirm();
469 vfMetaData.setVersion("0.1");
470 VfVerificator.verifyVfDeleted(vfMetaData, getUser());
474 public void revertVfMetadataTest() throws Exception{
475 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
476 ResourceUIUtils.createResource(vfMetaData, getUser());
478 ResourceReqDetails vfRevertDetails = new ResourceReqDetails();
479 vfRevertDetails.setName("ciUpdatedName");
480 vfRevertDetails.setDescription("kuku");
481 vfRevertDetails.setCategories(vfMetaData.getCategories());
482 vfRevertDetails.setVendorName("updatedVendor");
483 vfRevertDetails.setVendorRelease("updatedRelease");
484 ResourceUIUtils.fillResourceGeneralInformationPage(vfRevertDetails, getUser(), false);
486 GeneralPageElements.clickRevertButton();
488 VfVerificator.verifyVFMetadataInUI(vfMetaData);
493 public void addDeploymentArtifactInCompositionScreenTest() throws Exception{
494 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
495 ResourceUIUtils.createResource(vfMetaData, getUser());
497 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
499 ArtifactInfo artifact = new ArtifactInfo(filePath, "Heat-File.yaml", "kuku", "artifact3","OTHER");
500 CompositionPage.showDeploymentArtifactTab();
501 CompositionPage.clickAddArtifactButton();
502 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
504 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className("i-sdc-designer-sidebar-section-content-item-artifact"));
505 AssertJUnit.assertEquals(1, actualArtifactList.size());
508 // future removed from ui
509 @Test(enabled = false)
510 public void addPropertyInCompositionScreenTest() throws Exception{
511 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
512 ResourceUIUtils.createResource(vfMetaData, getUser());
514 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
516 CompositionPage.showPropertiesAndAttributesTab();
517 List<PropertyTypeEnum> propertyList = Arrays.asList(PropertyTypeEnum.STRING, PropertyTypeEnum.INTEGER);
518 int propertiesCount = CompositionPage.getProperties().size();
519 for (PropertyTypeEnum prop : propertyList){
520 PropertiesUIUtils.addNewProperty(prop);
522 AssertJUnit.assertTrue(GeneralUIUtils.checkElementsCountInTable(propertiesCount + propertyList.size(), () -> CompositionPage.getProperties()));
526 public void addDeploymentArtifactAndVerifyInCompositionScreen() throws Exception{
527 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
528 ResourceUIUtils.createResource(vfMetaData, getUser());
530 ResourceGeneralPage.getLeftMenu().moveToDeploymentArtifactScreen();
532 ArtifactInfo deploymentArtifact = new ArtifactInfo(filePath, "asc_heat 0 2.yaml", "kuku", "artifact1", "OTHER");
533 DeploymentArtifactPage.clickAddNewArtifact();
534 ArtifactUIUtils.fillAndAddNewArtifactParameters(deploymentArtifact);
535 AssertJUnit.assertTrue(DeploymentArtifactPage.checkElementsCountInTable(1));
537 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
539 CompositionPage.showDeploymentArtifactTab();
540 List<WebElement> deploymentArtifactsFromScreen = CompositionPage.getDeploymentArtifacts();
541 AssertJUnit.assertTrue(1 == deploymentArtifactsFromScreen.size());
543 String actualArtifactFileName = deploymentArtifactsFromScreen.get(0).getText();
544 AssertJUnit.assertTrue("asc_heat-0-2.yaml".equals(actualArtifactFileName));
548 public void checkoutVfTest() throws Exception{
549 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
550 ResourceUIUtils.createResource(vfMetaData, getUser());
552 ResourceGeneralPage.clickCheckinButton(vfMetaData.getName());
553 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
554 GeneralPageElements.clickCheckoutButton();
556 vfMetaData.setVersion("0.2");
557 VfVerificator.verifyVFLifecycle(vfMetaData, getUser(), LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
558 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CHECKOUT);
560 ResourceGeneralPage.clickSubmitForTestingButton(vfMetaData.getName());
562 reloginWithNewRole(UserRoleEnum.TESTER);
563 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
564 TesterOperationPage.certifyComponent(vfMetaData.getName());
566 reloginWithNewRole(UserRoleEnum.DESIGNER);
567 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
568 ResourceGeneralPage.clickCheckoutButton();
570 vfMetaData.setVersion("1.1");
571 vfMetaData.setUniqueId(null);
572 VfVerificator.verifyVFLifecycle(vfMetaData, getUser(), LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
573 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CHECKOUT);
577 public void deleteInstanceFromVfCanvas() throws Exception{
578 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
579 ResourceUIUtils.createResource(vfMetaData, getUser());
581 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
582 CanvasManager vfCanvasManager = CanvasManager.getCanvasManager();
583 CanvasElement computeElement = vfCanvasManager.createElementOnCanvas(LeftPanelCanvasItems.COMPUTE);
584 CanvasElement portElement = vfCanvasManager.createElementOnCanvas(LeftPanelCanvasItems.PORT);
586 vfCanvasManager.clickOnCanvaElement(computeElement);
587 vfCanvasManager.deleteElementFromCanvas(computeElement);
589 VfVerificator.verifyNumOfComponentInstances(vfMetaData, 1, getUser());
593 public void changeInstanceNameInVfTest() throws Exception{
594 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
595 ResourceUIUtils.createResource(vfMetaData, getUser());
597 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
598 CanvasManager vfCanvasManager = CanvasManager.getCanvasManager();
599 CanvasElement computeElement = vfCanvasManager.createElementOnCanvas(LeftPanelCanvasItems.COMPUTE);
601 String updatedInstanceName = "updatedName";
602 vfCanvasManager.updateElementNameInCanvas(computeElement, updatedInstanceName);
604 String actualSelectedInstanceName = CompositionPage.getSelectedInstanceName();
605 AssertJUnit.assertTrue(updatedInstanceName.equals(actualSelectedInstanceName));
610 public void submitVfForTestingWithNonCertifiedAsset() throws Exception{
611 String fileName = "vFW_VFC4.yml";
613 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
614 ResourceUIUtils.importVfc(atomicResourceMetaData, filePath, fileName, getUser());
615 ResourceGeneralPage.clickSubmitForTestingButton(atomicResourceMetaData.getName());
617 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
618 ResourceUIUtils.createResource(vfMetaData, getUser());
619 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
620 CanvasManager canvasManager = CanvasManager.getCanvasManager();
621 CompositionPage.searchForElement(atomicResourceMetaData.getName());
622 canvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
625 CompositionPage.clickSubmitForTestingButton(vfMetaData.getName());
629 String errorMessage = GeneralUIUtils.getWebElementByClassName("w-sdc-modal-caption").getText();
630 String checkUIResponseOnError = ErrorValidationUtils.checkUIResponseOnError(ActionStatus.VALIDATED_RESOURCE_NOT_FOUND.name());
631 AssertJUnit.assertTrue(errorMessage.contains(checkUIResponseOnError));
634 ResourceRestUtils.deleteResourceByNameAndVersion(atomicResourceMetaData.getName(), "0.1");
639 public void isDisabledAndReadOnlyInCheckin() throws Exception{
640 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
641 ResourceUIUtils.createResource(vfMetaData, getUser());
642 ResourceGeneralPage.clickCheckinButton(vfMetaData.getName());
643 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
645 ResourceMetadataEnum[] fieldsForCheck = {ResourceMetadataEnum.RESOURCE_NAME,
646 ResourceMetadataEnum.DESCRIPTION, ResourceMetadataEnum.VENDOR_NAME, ResourceMetadataEnum.VENDOR_RELEASE,
647 ResourceMetadataEnum.CONTACT_ID};
649 for (ResourceMetadataEnum field: fieldsForCheck){
650 AssertJUnit.assertTrue(GeneralUIUtils.isElementReadOnly(field.getValue()));
653 AssertJUnit.assertTrue(GeneralUIUtils.isElementDisabled(ResourceMetadataEnum.CATEGORY.getValue()));
654 AssertJUnit.assertTrue(GeneralUIUtils.isElementDisabled(DataTestIdEnum.LifeCyleChangeButtons.CREATE.getValue()));
658 public void exportToscaWithModulePropertiesVFTest() throws AWTException, Exception {
659 String vnfFile = "2016-042_vmsp_pxmc_30_1607_e2e.zip";
660 Pair<String, Map<String, String>> vsp=OnboardingUtils.onboardAndValidate(Onboard.getFilePath(), vnfFile, getUser());
661 String vspName = vsp.left;
662 ResourceGeneralPage.clickSubmitForTestingButton(vsp.left);
663 Resource resource = AtomicOperationUtils.getResourceObjectByNameAndVersion(UserRoleEnum.DESIGNER, vspName, "0.1");
664 VfModuleVerificator.validateSpecificModulePropertiesFromRequest(resource);
668 public void exportToscaWithModulePropertiesTemplateCheckVFTest() throws AWTException, Exception {
669 String vnfFile = "2016-042_vmsp_pxmc_30_1607_e2e.zip";
670 OnboardingUtils.onboardAndValidate(Onboard.getFilePath(), vnfFile, getUser());
671 ResourceGeneralPage.getLeftMenu().moveToToscaArtifactsScreen();
672 GeneralUIUtils.clickOnElementByTestId(ToscaArtifactsScreenEnum.TOSCA_MODEL.getValue());
673 File latestFilefromDir = FileHandling.getLastModifiedFileFromDir();
674 ToscaDefinition toscaDefinition = VfModuleVerificator.getToscaTemplate(latestFilefromDir.getAbsolutePath());
675 VfModuleVerificator.validateSpecificModulePropertiesFromFile(toscaDefinition);
679 protected UserRoleEnum getRole() {
680 return UserRoleEnum.DESIGNER;