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.*;
36 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.InformationalArtifactsPlaceholders;
37 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.LeftPanelCanvasItems;
38 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.ResourceMetadataEnum;
39 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.ToscaArtifactsScreenEnum;
40 import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
41 import org.openecomp.sdc.ci.tests.datatypes.enums.NormativeTypesEnum;
42 import org.openecomp.sdc.ci.tests.datatypes.enums.PropertyTypeEnum;
43 import org.openecomp.sdc.ci.tests.datatypes.enums.ResourceCategoryEnum;
44 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
45 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
46 import org.openecomp.sdc.ci.tests.execute.setup.AttFtpClient;
47 import org.openecomp.sdc.ci.tests.execute.setup.SetupCDTest;
48 import org.openecomp.sdc.ci.tests.pages.CompositionPage;
49 import org.openecomp.sdc.ci.tests.pages.DeploymentArtifactPage;
50 import org.openecomp.sdc.ci.tests.pages.GeneralPageElements;
51 import org.openecomp.sdc.ci.tests.pages.InformationalArtifactPage;
52 import org.openecomp.sdc.ci.tests.pages.InputsPage;
53 import org.openecomp.sdc.ci.tests.pages.PropertiesPage;
54 import org.openecomp.sdc.ci.tests.pages.ResourceGeneralPage;
55 import org.openecomp.sdc.ci.tests.pages.TesterOperationPage;
56 import org.openecomp.sdc.ci.tests.pages.ToscaArtifactsPage;
57 import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaDefinition;
58 import org.openecomp.sdc.ci.tests.utilities.*;
59 import org.openecomp.sdc.ci.tests.utilities.OnboardingUiUtils;
60 import org.openecomp.sdc.ci.tests.utils.ToscaParserUtils;
61 import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
62 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
63 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
64 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
65 import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
66 import org.openecomp.sdc.ci.tests.verificator.ServiceVerificator;
67 import org.openecomp.sdc.ci.tests.verificator.VfModuleVerificator;
68 import org.openecomp.sdc.ci.tests.verificator.VfVerificator;
69 import org.openqa.selenium.By;
70 import org.openqa.selenium.WebElement;
71 import org.testng.AssertJUnit;
72 import org.testng.SkipException;
73 import org.testng.annotations.BeforeClass;
74 import org.testng.annotations.BeforeMethod;
75 import org.testng.annotations.Test;
77 import com.aventstack.extentreports.Status;
78 import com.clearspring.analytics.util.Pair;
81 public class Vf extends SetupCDTest {
83 private String filePath;
85 public void beforeClass(){
86 filePath = FileHandling.getFilePath("");
90 public void beforeTest(){
91 System.out.println("File repository is : " + filePath);
92 getExtendTest().log(Status.INFO, "File repository is : " + filePath);
97 public void updateVF() throws Exception {
100 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
101 ResourceUIUtils.createVF(resourceMetaData, getUser());
104 ResourceReqDetails updatedResource = new ResourceReqDetails();
105 updatedResource.setName(ElementFactory.getResourcePrefix() + "UpdatedName" + resourceMetaData.getName());
106 updatedResource.setDescription("kuku");
107 updatedResource.setVendorName("updatedVendor");
108 updatedResource.setVendorRelease("updatedRelease");
109 updatedResource.setContactId("ab0001");
110 updatedResource.setCategories(resourceMetaData.getCategories());
111 updatedResource.setVersion("0.1");
112 updatedResource.setResourceType(ResourceTypeEnum.VF.getValue());
113 List<String> newTags = resourceMetaData.getTags();
114 newTags.remove(resourceMetaData.getName());
115 newTags.add(updatedResource.getName());
116 updatedResource.setTags(newTags);
117 ResourceUIUtils.updateResource(updatedResource, getUser());
119 VfVerificator.verifyVFMetadataInUI(updatedResource);
120 VfVerificator.verifyVFUpdated(updatedResource, getUser());
124 public void vfcLinkedToComputeInVfFlow() throws Exception {
125 String fileName = "vFW_VFC2.yml";
126 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
129 ResourceUIUtils.importVfc(atomicResourceMetaData, filePath, fileName, getUser());
130 ResourceGeneralPage.clickSubmitForTestingButton(atomicResourceMetaData.getName());
132 reloginWithNewRole(UserRoleEnum.TESTER);
133 GeneralUIUtils.findComponentAndClick(atomicResourceMetaData.getName());
134 TesterOperationPage.certifyComponent(atomicResourceMetaData.getName());
136 reloginWithNewRole(UserRoleEnum.DESIGNER);
137 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
138 ResourceUIUtils.createVF(vfMetaData, getUser());
140 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
141 CanvasManager canvasManager = CanvasManager.getCanvasManager();
142 CompositionPage.searchForElement(String.format("%s %s", LeftPanelCanvasItems.COMPUTE.getValue() , "1.0"));
143 CanvasElement computeElement = canvasManager.createElementOnCanvas(LeftPanelCanvasItems.COMPUTE);
144 CompositionPage.searchForElement(atomicResourceMetaData.getName());
145 CanvasElement cpElement = canvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
146 AssertJUnit.assertNotNull(cpElement);
147 ServiceVerificator.verifyNumOfComponentInstances(vfMetaData, "0.1", 2, getUser());
148 canvasManager.linkElements(cpElement, computeElement);
150 vfMetaData.setVersion("0.1");
151 VfVerificator.verifyLinkCreated(vfMetaData, getUser(), 1);
154 ResourceRestUtils.deleteResourceByNameAndVersion(atomicResourceMetaData.getName(), "1.0");
160 public void addUpdateDeleteDeploymentArtifactToVfTest() throws Exception {
161 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
162 ResourceUIUtils.createVF(vfMetaData, getUser());
164 ResourceGeneralPage.getLeftMenu().moveToDeploymentArtifactScreen();
166 List<ArtifactInfo> deploymentArtifactList = new ArrayList<ArtifactInfo>();
167 deploymentArtifactList.add(new ArtifactInfo(filePath, "asc_heat 0 2.yaml", "kuku", "artifact1", "OTHER"));
168 deploymentArtifactList.add(new ArtifactInfo(filePath, "sample-xml-alldata-1-1.xml", "cuku", "artifact2", "YANG_XML"));
169 for (ArtifactInfo deploymentArtifact : deploymentArtifactList) {
170 DeploymentArtifactPage.clickAddNewArtifact();
171 ArtifactUIUtils.fillAndAddNewArtifactParameters(deploymentArtifact);
173 AssertJUnit.assertTrue("artifact table does not contain artifacts uploaded", DeploymentArtifactPage.checkElementsCountInTable(deploymentArtifactList.size()));
175 String newDescription = "new description";
176 DeploymentArtifactPage.clickEditArtifact(deploymentArtifactList.get(0).getArtifactLabel());
177 DeploymentArtifactPage.artifactPopup().insertDescription(newDescription);
178 DeploymentArtifactPage.artifactPopup().clickDoneButton();
179 String actualArtifactDescription = DeploymentArtifactPage.getArtifactDescription(deploymentArtifactList.get(0).getArtifactLabel());
180 AssertJUnit.assertTrue("artifact description is not updated", newDescription.equals(actualArtifactDescription));
182 DeploymentArtifactPage.clickDeleteArtifact(deploymentArtifactList.get(0).getArtifactLabel());
183 DeploymentArtifactPage.clickOK();
184 AssertJUnit.assertTrue("artifact "+ deploymentArtifactList.get(0).getArtifactLabel() + "is not deleted", DeploymentArtifactPage.checkElementsCountInTable(deploymentArtifactList.size() - 1));
186 AssertJUnit.assertTrue("artifact "+ deploymentArtifactList.get(1).getArtifactLabel() + "is not displayed", DeploymentArtifactPage.clickOnArtifactDescription(deploymentArtifactList.get(1).getArtifactLabel()).isDisplayed());
191 public void addUpdateDeleteInformationalArtifact() throws Exception {
192 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
193 ResourceUIUtils.createVF(vfMetaData, getUser());
195 ResourceGeneralPage.getLeftMenu().moveToInformationalArtifactScreen();
197 ArtifactInfo informationalArtifact = new ArtifactInfo(filePath, "asc_heat 0 2.yaml", "kuku", "artifact1", "OTHER");
198 InformationalArtifactPage.clickAddNewArtifact();
199 ArtifactUIUtils.fillAndAddNewArtifactParameters(informationalArtifact);
201 AssertJUnit.assertTrue("artifact table does not contain artifacts uploaded", InformationalArtifactPage.checkElementsCountInTable(1));
203 String newDescription = "new description";
204 InformationalArtifactPage.clickEditArtifact(informationalArtifact.getArtifactLabel());
205 InformationalArtifactPage.artifactPopup().insertDescription(newDescription);
206 InformationalArtifactPage.artifactPopup().clickDoneButton();
207 String actualArtifactDescription = InformationalArtifactPage.getArtifactDescription(informationalArtifact.getArtifactLabel());
208 AssertJUnit.assertTrue("artifact description is not updated", newDescription.equals(actualArtifactDescription));
210 InformationalArtifactPage.clickDeleteArtifact(informationalArtifact.getArtifactLabel());
211 InformationalArtifactPage.clickOK();
212 AssertJUnit.assertTrue("artifact "+ informationalArtifact.getArtifactLabel() + "is not deleted", InformationalArtifactPage.checkElementsCountInTable(0));
217 public void addPropertiesToVfcInstanceInVfTest() throws Exception {
220 throw new SkipException("Open bug 373762, can't update properties on CP or VFC instance on Composition screen");
223 String fileName = "vFW_VFC.yml";
224 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
227 ResourceUIUtils.importVfc(atomicResourceMetaData, filePath, fileName, getUser());
228 ResourceGeneralPage.clickCheckinButton(atomicResourceMetaData.getName());
230 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
231 ResourceUIUtils.createVF(vfMetaData, getUser());
233 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
234 CanvasManager vfCanvasManager = CanvasManager.getCanvasManager();
235 CompositionPage.searchForElement(atomicResourceMetaData.getName());
236 CanvasElement vfcElement = vfCanvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
238 vfCanvasManager.clickOnCanvaElement(vfcElement);
239 CompositionPage.showPropertiesAndAttributesTab();
240 List<WebElement> properties = CompositionPage.getProperties();
241 String propertyValue = "abc123";
242 for (int i = 0; i < 2; i++) {
243 WebElement findElement = properties.get(i).findElement(By.className("i-sdc-designer-sidebar-section-content-item-property-and-attribute-label"));
245 PropertiesPage.getPropertyPopup().insertPropertyDefaultValue(propertyValue);
246 PropertiesPage.getPropertyPopup().clickSave();
249 findElement = properties.get(i).findElement(By.className("i-sdc-designer-sidebar-section-content-item-property-value"));
250 AssertJUnit.assertTrue(findElement.getText().equals(propertyValue));
254 ResourceRestUtils.deleteResourceByNameAndVersion(atomicResourceMetaData.getName(), "0.1");
259 public void changeInstanceVersionTest() throws Exception{
261 ResourceReqDetails atomicResourceMetaData = null;
262 ResourceReqDetails vfMetaData = null;
263 CanvasManager vfCanvasManager;
264 CanvasElement vfcElement = null;
265 String fileName = "vFW_VFC3.yml";
267 atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
268 ResourceUIUtils.importVfc(atomicResourceMetaData, filePath, fileName, getUser());
269 ResourceGeneralPage.clickSubmitForTestingButton(atomicResourceMetaData.getName());
271 vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
272 ResourceUIUtils.createVF(vfMetaData, getUser());
273 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
274 vfCanvasManager = CanvasManager.getCanvasManager();
275 CompositionPage.searchForElement(atomicResourceMetaData.getName());
276 vfcElement = vfCanvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
279 CompositionPage.clickSubmitForTestingButton(vfMetaData.getName());
283 String errorMessage = GeneralUIUtils.getWebElementByClassName("w-sdc-modal-caption").getText();
284 String checkUIResponseOnError = ErrorValidationUtils.checkUIResponseOnError(ActionStatus.VALIDATED_RESOURCE_NOT_FOUND.name());
285 AssertJUnit.assertTrue(errorMessage.contains(checkUIResponseOnError));
288 reloginWithNewRole(UserRoleEnum.TESTER);
289 GeneralUIUtils.findComponentAndClick(atomicResourceMetaData.getName());
290 TesterOperationPage.certifyComponent(atomicResourceMetaData.getName());
292 reloginWithNewRole(UserRoleEnum.DESIGNER);
293 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
294 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
295 vfCanvasManager = CanvasManager.getCanvasManager();
296 CompositionPage.changeComponentVersion(vfCanvasManager, vfcElement, "1.0");
299 VfVerificator.verifyInstanceVersion(vfMetaData, getUser(), atomicResourceMetaData.getName(), "1.0");
303 ResourceRestUtils.deleteResourceByNameAndVersion(atomicResourceMetaData.getName(), "1.0");
308 // future removed from ui
309 @Test(enabled = false)
310 public void addUpdateDeleteSimplePropertiesToVfTest() throws Exception{
311 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
312 ResourceUIUtils.createVF(vfMetaData, getUser());
314 ResourceGeneralPage.getLeftMenu().moveToPropertiesScreen();
315 List<PropertyTypeEnum> propertyList = Arrays.asList(PropertyTypeEnum.STRING, PropertyTypeEnum.INTEGER);
316 int propertiesCount = PropertiesPage.getElemenetsFromTable().size();
317 for (PropertyTypeEnum prop : propertyList){
318 PropertiesUIUtils.addNewProperty(prop);
320 AssertJUnit.assertTrue(GeneralUIUtils.checkElementsCountInTable(propertiesCount + propertyList.size(), () -> PropertiesPage.getElemenetsFromTable()));
321 VfVerificator.verifyPropertiesInUI(propertyList);
322 PropertiesPage.verifyTotalProperitesField(propertiesCount + propertyList.size());
325 PropertyTypeEnum prop = propertyList.get(0);
326 prop.setDescription("updatedDescription");
327 prop.setValue("value");
328 PropertiesUIUtils.updateProperty(prop);
330 PropertiesPage.clickDeletePropertyArtifact(prop.getName());
331 AssertJUnit.assertTrue(GeneralUIUtils.checkElementsCountInTable(propertiesCount + propertyList.size() - 1, () -> PropertiesPage.getElemenetsFromTable()));
334 // future removed from ui
335 @Test(enabled = false)
336 public void vfcInstancesInputScreenTest() throws Exception{
337 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
338 ResourceUIUtils.createVF(vfMetaData, getUser());
340 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
341 CanvasManager vfCanvasManager = CanvasManager.getCanvasManager();
343 Map<String, String> elementsIntancesMap = new HashMap<String, String>();
344 for (LeftPanelCanvasItems element : Arrays.asList(LeftPanelCanvasItems.DATABASE, LeftPanelCanvasItems.BLOCK_STORAGE)){
345 CanvasElement elementOnCanvas = vfCanvasManager.createElementOnCanvas(element);
346 vfCanvasManager.clickOnCanvaElement(elementOnCanvas);
347 String selectedInstanceName = CompositionPage.getSelectedInstanceName();
348 elementsIntancesMap.put(selectedInstanceName, element.getValue());
351 CompositionPage.moveToInputsScreen();
352 int canvasElementsSize = vfCanvasManager.getCanvasElements().size();
353 AssertJUnit.assertTrue("Instances count is not as expected: " + canvasElementsSize, InputsPage.checkElementsCountInTable(canvasElementsSize));
355 for (String element : elementsIntancesMap.keySet()){
356 String resourceName = elementsIntancesMap.get(element);
357 ResourceReqDetails resource = new ResourceReqDetails();
358 resource.setName(resourceName);
359 resource.setVersion("1.0");
360 resource.setResourceType(ResourceTypeEnum.VFC.toString());
361 RestResponse restResponse = RestCDUtils.getResource(resource, getUser());
362 Map<String, String> propertiesNameTypeJson = ResponseParser.getPropertiesNameType(restResponse);
364 List<WebElement> propertyRowsFromTable = InputsPage.getInstancePropertiesList(element);
365 AssertJUnit.assertTrue("Some properties are missing in table. Instance name is : " + element, propertyRowsFromTable.size() == propertiesNameTypeJson.size());
366 VfVerificator.verifyVfInputs(element, propertiesNameTypeJson, propertyRowsFromTable);
368 GeneralUIUtils.clickOnElementByText(element);
375 public void addAllInformationalArtifactPlaceholdersInVfTest() throws Exception{
377 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
378 ResourceUIUtils.createVF(vfMetaData, getUser());
380 ResourceGeneralPage.getLeftMenu().moveToInformationalArtifactScreen();
382 for(InformationalArtifactsPlaceholders informArtifact : InformationalArtifactsPlaceholders.values()){
383 ArtifactUIUtils.fillPlaceHolderInformationalArtifact(informArtifact, filePath,"asc_heat 0 2.yaml", informArtifact.getValue());
386 AssertJUnit.assertTrue(InformationalArtifactPage.checkElementsCountInTable(InformationalArtifactsPlaceholders.values().length));
390 public void verifyToscaArtifactsExist() throws Exception{
391 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
392 ResourceUIUtils.createVF(vfMetaData, getUser());
394 final int numOfToscaArtifacts = 2;
395 ResourceGeneralPage.getLeftMenu().moveToToscaArtifactsScreen();
396 AssertJUnit.assertTrue(ToscaArtifactsPage.checkElementsCountInTable(numOfToscaArtifacts));
398 for(int i = 0; i < numOfToscaArtifacts; i++){
399 String typeFromScreen = ToscaArtifactsPage.getArtifactType(i);
400 AssertJUnit.assertTrue(typeFromScreen.equals(ArtifactTypeEnum.TOSCA_CSAR.getType()) || typeFromScreen.equals(ArtifactTypeEnum.TOSCA_TEMPLATE.getType()));
403 ToscaArtifactsPage.clickSubmitForTestingButton(vfMetaData.getName());
404 VfVerificator.verifyToscaArtifactsInfo(vfMetaData, getUser());
408 public void testDownload() throws Exception{
409 // ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
410 // ResourceUIUtils.createResource(vfMetaData, getUser());
412 // final int numOfToscaArtifacts = 2;
413 // ResourceGeneralPage.getLeftMenu().moveToToscaArtifactsScreen();
414 // assertTrue(ToscaArtifactsPage.checkElementsCountInTable(numOfToscaArtifacts));
415 // GeneralUIUtils.clickOnElementByTestId("download-Tosca Model");
416 // System.out.println("download me");
418 AttFtpClient attFtpClient = AttFtpClient.getInstance();
420 File retrieveLastModifiedFileFromFTP = attFtpClient.retrieveLastModifiedFileFromFTP();
421 attFtpClient.deleteFilesFromFTPserver();
425 public void vfCertificationTest() throws Exception{
426 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
427 ResourceUIUtils.createVF(vfMetaData, getUser());
429 String vfName = vfMetaData.getName();
431 ResourceGeneralPage.clickCheckinButton(vfName);
432 GeneralUIUtils.findComponentAndClick(vfName);
433 ResourceGeneralPage.clickSubmitForTestingButton(vfName);
435 reloginWithNewRole(UserRoleEnum.TESTER);
436 GeneralUIUtils.findComponentAndClick(vfName);
437 TesterOperationPage.certifyComponent(vfName);
439 vfMetaData.setVersion("1.0");
440 VfVerificator.verifyVFLifecycle(vfMetaData, getUser(), LifecycleStateEnum.CERTIFIED);
442 reloginWithNewRole(UserRoleEnum.DESIGNER);
443 GeneralUIUtils.findComponentAndClick(vfName);
444 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CERTIFIED);
448 public void deleteVfCheckedoutTest() throws Exception{
449 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
450 ResourceUIUtils.createVF(vfMetaData, getUser());
452 GeneralPageElements.clickTrashButtonAndConfirm();
454 vfMetaData.setVersion("0.1");
455 VfVerificator.verifyVfDeleted(vfMetaData, getUser());
459 public void revertVfMetadataTest() throws Exception{
460 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
461 ResourceUIUtils.createVF(vfMetaData, getUser());
463 ResourceReqDetails vfRevertDetails = new ResourceReqDetails();
464 vfRevertDetails.setName("ciUpdatedName");
465 vfRevertDetails.setDescription("kuku");
466 vfRevertDetails.setCategories(vfMetaData.getCategories());
467 vfRevertDetails.setVendorName("updatedVendor");
468 vfRevertDetails.setVendorRelease("updatedRelease");
469 ResourceUIUtils.fillResourceGeneralInformationPage(vfRevertDetails, getUser(), false);
471 GeneralPageElements.clickRevertButton();
473 VfVerificator.verifyVFMetadataInUI(vfMetaData);
478 public void addDeploymentArtifactInCompositionScreenTest() throws Exception{
479 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
480 ResourceUIUtils.createVF(vfMetaData, getUser());
482 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
484 ArtifactInfo artifact = new ArtifactInfo(filePath, "Heat-File.yaml", "kuku", "artifact3","OTHER");
485 CompositionPage.showDeploymentArtifactTab();
486 CompositionPage.clickAddArtifactButton();
487 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
489 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className("i-sdc-designer-sidebar-section-content-item-artifact"));
490 AssertJUnit.assertEquals(1, actualArtifactList.size());
493 // future removed from ui
494 @Test(enabled = false)
495 public void addPropertyInCompositionScreenTest() throws Exception{
496 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
497 ResourceUIUtils.createVF(vfMetaData, getUser());
499 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
501 CompositionPage.showPropertiesAndAttributesTab();
502 List<PropertyTypeEnum> propertyList = Arrays.asList(PropertyTypeEnum.STRING, PropertyTypeEnum.INTEGER);
503 int propertiesCount = CompositionPage.getProperties().size();
504 for (PropertyTypeEnum prop : propertyList){
505 PropertiesUIUtils.addNewProperty(prop);
507 AssertJUnit.assertTrue(GeneralUIUtils.checkElementsCountInTable(propertiesCount + propertyList.size(), () -> CompositionPage.getProperties()));
511 public void addDeploymentArtifactAndVerifyInCompositionScreen() throws Exception{
512 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
513 ResourceUIUtils.createVF(vfMetaData, getUser());
515 ResourceGeneralPage.getLeftMenu().moveToDeploymentArtifactScreen();
517 ArtifactInfo deploymentArtifact = new ArtifactInfo(filePath, "asc_heat 0 2.yaml", "kuku", "artifact1", "OTHER");
518 DeploymentArtifactPage.clickAddNewArtifact();
519 ArtifactUIUtils.fillAndAddNewArtifactParameters(deploymentArtifact);
520 AssertJUnit.assertTrue(DeploymentArtifactPage.checkElementsCountInTable(1));
522 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
524 CompositionPage.showDeploymentArtifactTab();
525 List<WebElement> deploymentArtifactsFromScreen = CompositionPage.getDeploymentArtifacts();
526 AssertJUnit.assertTrue(1 == deploymentArtifactsFromScreen.size());
528 String actualArtifactFileName = deploymentArtifactsFromScreen.get(0).getText();
529 AssertJUnit.assertTrue("asc_heat-0-2.yaml".equals(actualArtifactFileName));
533 public void checkoutVfTest() throws Exception{
534 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
535 ResourceUIUtils.createVF(vfMetaData, getUser());
537 ResourceGeneralPage.clickCheckinButton(vfMetaData.getName());
538 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
539 GeneralPageElements.clickCheckoutButton();
541 vfMetaData.setVersion("0.2");
542 VfVerificator.verifyVFLifecycle(vfMetaData, getUser(), LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
543 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CHECKOUT);
545 ResourceGeneralPage.clickSubmitForTestingButton(vfMetaData.getName());
547 reloginWithNewRole(UserRoleEnum.TESTER);
548 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
549 TesterOperationPage.certifyComponent(vfMetaData.getName());
551 reloginWithNewRole(UserRoleEnum.DESIGNER);
552 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
553 ResourceGeneralPage.clickCheckoutButton();
555 vfMetaData.setVersion("1.1");
556 vfMetaData.setUniqueId(null);
557 VfVerificator.verifyVFLifecycle(vfMetaData, getUser(), LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
558 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CHECKOUT);
562 public void deleteInstanceFromVfCanvas() throws Exception{
563 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
564 ResourceUIUtils.createVF(vfMetaData, getUser());
566 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
567 CanvasManager vfCanvasManager = CanvasManager.getCanvasManager();
568 CanvasElement computeElement = vfCanvasManager.createElementOnCanvas(LeftPanelCanvasItems.COMPUTE);
569 CanvasElement portElement = vfCanvasManager.createElementOnCanvas(LeftPanelCanvasItems.PORT);
571 vfCanvasManager.clickOnCanvaElement(computeElement);
572 vfCanvasManager.deleteElementFromCanvas(computeElement);
574 VfVerificator.verifyNumOfComponentInstances(vfMetaData, 1, getUser());
578 public void changeInstanceNameInVfTest() throws Exception{
579 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
580 ResourceUIUtils.createVF(vfMetaData, getUser());
582 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
583 CanvasManager vfCanvasManager = CanvasManager.getCanvasManager();
584 CanvasElement computeElement = vfCanvasManager.createElementOnCanvas(LeftPanelCanvasItems.COMPUTE);
586 String updatedInstanceName = "updatedName";
587 vfCanvasManager.updateElementNameInCanvas(computeElement, updatedInstanceName);
589 String actualSelectedInstanceName = CompositionPage.getSelectedInstanceName();
590 AssertJUnit.assertTrue(updatedInstanceName.equals(actualSelectedInstanceName));
595 public void submitVfForTestingWithNonCertifiedAsset() throws Exception{
596 String fileName = "vFW_VFC4.yml";
598 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
599 ResourceUIUtils.importVfc(atomicResourceMetaData, filePath, fileName, getUser());
600 ResourceGeneralPage.clickSubmitForTestingButton(atomicResourceMetaData.getName());
602 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
603 ResourceUIUtils.createVF(vfMetaData, getUser());
604 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
605 CanvasManager canvasManager = CanvasManager.getCanvasManager();
606 CompositionPage.searchForElement(atomicResourceMetaData.getName());
607 canvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
610 CompositionPage.clickSubmitForTestingButton(vfMetaData.getName());
614 String errorMessage = GeneralUIUtils.getWebElementByClassName("w-sdc-modal-caption").getText();
615 String checkUIResponseOnError = ErrorValidationUtils.checkUIResponseOnError(ActionStatus.VALIDATED_RESOURCE_NOT_FOUND.name());
616 AssertJUnit.assertTrue(errorMessage.contains(checkUIResponseOnError));
619 ResourceRestUtils.deleteResourceByNameAndVersion(atomicResourceMetaData.getName(), "0.1");
624 public void isDisabledAndReadOnlyInCheckin() throws Exception{
625 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
626 ResourceUIUtils.createVF(vfMetaData, getUser());
627 ResourceGeneralPage.clickCheckinButton(vfMetaData.getName());
628 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
630 ResourceMetadataEnum[] fieldsForCheck = {ResourceMetadataEnum.RESOURCE_NAME,
631 ResourceMetadataEnum.DESCRIPTION, ResourceMetadataEnum.VENDOR_NAME, ResourceMetadataEnum.VENDOR_RELEASE,
632 ResourceMetadataEnum.CONTACT_ID};
634 for (ResourceMetadataEnum field: fieldsForCheck){
635 AssertJUnit.assertTrue(GeneralUIUtils.isElementReadOnly(field.getValue()));
638 AssertJUnit.assertTrue(GeneralUIUtils.isElementDisabled(ResourceMetadataEnum.CATEGORY.getValue()));
639 AssertJUnit.assertTrue(GeneralUIUtils.isElementDisabled(DataTestIdEnum.LifeCyleChangeButtons.CREATE.getValue()));
643 public void exportToscaWithModulePropertiesVFTest() throws AWTException, Exception {
644 String vnfFile = "1-Vf-zrdm5bpxmc02-092017-(MOBILITY)_v2.0.zip";
645 ResourceReqDetails resourceReqDetails = ElementFactory.getDefaultResource();//getResourceReqDetails(ComponentConfigurationTypeEnum.DEFAULT);
646 Pair<String, VendorSoftwareProductObject> vsp= OnboardingUiUtils.onboardAndValidate(resourceReqDetails, FileHandling.getVnfRepositoryPath(), vnfFile, getUser());
647 String vspName = vsp.left;
648 ResourceGeneralPage.clickSubmitForTestingButton(vsp.left);
649 Resource resource = AtomicOperationUtils.getResourceObjectByNameAndVersion(UserRoleEnum.DESIGNER, vspName, "0.1");
650 VfModuleVerificator.validateSpecificModulePropertiesFromRequest(resource);
654 public void exportToscaWithModulePropertiesTemplateCheckVFTest() throws AWTException, Exception {
655 String vnfFile = "1-Vf-zrdm5bpxmc02-092017-(MOBILITY)_v2.0.zip";
656 ResourceReqDetails resourceReqDetails = ElementFactory.getDefaultResource();//getResourceReqDetails(ComponentConfigurationTypeEnum.DEFAULT);
657 OnboardingUiUtils.onboardAndValidate(resourceReqDetails, FileHandling.getVnfRepositoryPath(), vnfFile, getUser());
658 ResourceGeneralPage.getLeftMenu().moveToToscaArtifactsScreen();
659 GeneralUIUtils.clickOnElementByTestId(ToscaArtifactsScreenEnum.TOSCA_MODEL.getValue());
660 File latestFilefromDir = FileHandling.getLastModifiedFileNameFromDir();
661 ToscaDefinition toscaDefinition = ToscaParserUtils.parseToscaMainYamlToJavaObjectByCsarLocation(latestFilefromDir);
662 VfModuleVerificator.validateSpecificModulePropertiesFromFile(toscaDefinition);
668 protected UserRoleEnum getRole() {
669 return UserRoleEnum.DESIGNER;