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 static org.testng.AssertJUnit.assertTrue;
26 import java.util.ArrayList;
27 import java.util.Arrays;
28 import java.util.HashMap;
29 import java.util.List;
32 import org.openecomp.sdc.be.dao.api.ActionStatus;
33 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
34 import org.openecomp.sdc.be.model.LifecycleStateEnum;
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.LifeCycleStateEnum;
40 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
41 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.InformationalArtifactsPlaceholders;
42 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.LeftPanelCanvasItems;
43 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.ResourceMetadataEnum;
44 import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
45 import org.openecomp.sdc.ci.tests.datatypes.enums.NormativeTypesEnum;
46 import org.openecomp.sdc.ci.tests.datatypes.enums.PropertyTypeEnum;
47 import org.openecomp.sdc.ci.tests.datatypes.enums.ResourceCategoryEnum;
48 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
49 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
50 import org.openecomp.sdc.ci.tests.execute.setup.SetupCDTest;
51 import org.openecomp.sdc.ci.tests.pages.CompositionPage;
52 import org.openecomp.sdc.ci.tests.pages.DeploymentArtifactPage;
53 import org.openecomp.sdc.ci.tests.pages.DeploymentPage;
54 import org.openecomp.sdc.ci.tests.pages.GeneralPageElements;
55 import org.openecomp.sdc.ci.tests.pages.InformationalArtifactPage;
56 import org.openecomp.sdc.ci.tests.pages.InputsPage;
57 import org.openecomp.sdc.ci.tests.pages.PropertiesPage;
58 import org.openecomp.sdc.ci.tests.pages.ResourceGeneralPage;
59 import org.openecomp.sdc.ci.tests.pages.TesterOperationPage;
60 import org.openecomp.sdc.ci.tests.pages.ToscaArtifactsPage;
61 import org.openecomp.sdc.ci.tests.utilities.ArtifactUIUtils;
62 import org.openecomp.sdc.ci.tests.utilities.FileHandling;
63 import org.openecomp.sdc.ci.tests.utilities.GeneralUIUtils;
64 import org.openecomp.sdc.ci.tests.utilities.PropertiesUIUtils;
65 import org.openecomp.sdc.ci.tests.utilities.ResourceUIUtils;
66 import org.openecomp.sdc.ci.tests.utilities.RestCDUtils;
67 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
68 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
69 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
70 import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
71 import org.openecomp.sdc.ci.tests.verificator.ServiceVerificator;
72 import org.openecomp.sdc.ci.tests.verificator.VfVerificator;
73 import org.openqa.selenium.By;
74 import org.openqa.selenium.WebElement;
75 import org.testng.Assert;
76 import org.testng.SkipException;
77 import org.testng.annotations.BeforeMethod;
78 import org.testng.annotations.Test;
80 import com.aventstack.extentreports.Status;
82 public class ImportDCAE extends SetupCDTest {
84 private String filePath;
86 public void beforeTest(){
87 filePath = System.getProperty("filepath");
89 if (filePath == null && System.getProperty("os.name").contains("Windows")) {
90 filePath = FileHandling.getResourcesFilesPath();
93 else if(filePath.isEmpty() && !System.getProperty("os.name").contains("Windows")){
94 filePath = FileHandling.getBasePath() + File.separator + "Files" + File.separator;
99 public void updateDCAEAsset() throws Exception {
100 ResourceReqDetails resourceMetaData = createDCAEAsset();
103 ResourceReqDetails updatedResource = new ResourceReqDetails();
104 updatedResource.setName("ciUpdatedNameImportDCAE");
105 updatedResource.setDescription("kuku");
106 updatedResource.setVendorName("updatedVendor");
107 updatedResource.setVendorRelease("updatedRelease");
108 updatedResource.setContactId("ab0001");
109 updatedResource.setCategories(resourceMetaData.getCategories());
110 updatedResource.setVersion("0.1");
111 List<String> newTags = resourceMetaData.getTags();
112 newTags.remove(resourceMetaData.getName());
113 newTags.add(updatedResource.getName());
114 updatedResource.setTags(newTags);
115 ResourceUIUtils.updateResource(updatedResource, getUser());
117 VfVerificator.verifyVFMetadataInUI(updatedResource);
118 VfVerificator.verifyVFUpdated(updatedResource, getUser());
122 public void vfcLinkedToComputeInDCAEAssetFlowTest() throws Exception {
123 String fileName = "importVFC_VFC14.yml";
124 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
127 ResourceUIUtils.importVfc(atomicResourceMetaData, filePath, fileName, getUser());
128 ResourceGeneralPage.clickSubmitForTestingButton(atomicResourceMetaData.getName());
130 reloginWithNewRole(UserRoleEnum.TESTER);
131 GeneralUIUtils.findComponentAndClick(atomicResourceMetaData.getName());
132 TesterOperationPage.certifyComponent(atomicResourceMetaData.getName());
134 reloginWithNewRole(UserRoleEnum.DESIGNER);
135 ResourceReqDetails resourceMetaData = createDCAEAsset();
137 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
138 CanvasManager canvasManager = CanvasManager.getCanvasManager();
139 CanvasElement computeElement = canvasManager.createElementOnCanvas(LeftPanelCanvasItems.COMPUTE);
140 CompositionPage.searchForElement(atomicResourceMetaData.getName());
141 CanvasElement cpElement = canvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
142 Assert.assertNotNull(cpElement);
143 ServiceVerificator.verifyNumOfComponentInstances(resourceMetaData, "0.1", 4, getUser());
145 canvasManager.linkElements(cpElement, computeElement);
147 resourceMetaData.setVersion("0.1");
148 VfVerificator.verifyLinkCreated(resourceMetaData, getUser(), 1);
151 ResourceRestUtils.deleteResourceByNameAndVersion(atomicResourceMetaData.getName(), "1.0");
157 public void addUpdateDeleteDeploymentArtifactToDCAEAssetTest() throws Exception {
159 ResourceGeneralPage.getLeftMenu().moveToDeploymentArtifactScreen();
161 List<ArtifactInfo> deploymentArtifactList = new ArrayList<ArtifactInfo>();
162 deploymentArtifactList.add(new ArtifactInfo(filePath, "asc_heat 0 2.yaml", "kuku", "artifact1", "OTHER"));
163 deploymentArtifactList.add(new ArtifactInfo(filePath, "sample-xml-alldata-1-1.xml", "cuku", "artifact2", "YANG_XML"));
164 for (ArtifactInfo deploymentArtifact : deploymentArtifactList) {
165 DeploymentArtifactPage.clickAddNewArtifact();
166 ArtifactUIUtils.fillAndAddNewArtifactParameters(deploymentArtifact);
168 assertTrue("artifact table does not contain artifacts uploaded", DeploymentArtifactPage.checkElementsCountInTable(deploymentArtifactList.size()));
170 String newDescription = "new description";
171 DeploymentArtifactPage.clickEditArtifact(deploymentArtifactList.get(0).getArtifactLabel());
172 DeploymentArtifactPage.artifactPopup().insertDescription(newDescription);
173 DeploymentArtifactPage.artifactPopup().clickDoneButton();
174 String actualArtifactDescription = DeploymentArtifactPage.getArtifactDescription(deploymentArtifactList.get(0).getArtifactLabel());
175 assertTrue("artifact description is not updated", newDescription.equals(actualArtifactDescription));
177 DeploymentArtifactPage.clickDeleteArtifact(deploymentArtifactList.get(0).getArtifactLabel());
178 DeploymentArtifactPage.clickOK();
179 assertTrue("artifact "+ deploymentArtifactList.get(0).getArtifactLabel() + "is not deleted", DeploymentArtifactPage.checkElementsCountInTable(deploymentArtifactList.size() - 1));
181 assertTrue("artifact "+ deploymentArtifactList.get(1).getArtifactLabel() + "is not displayed", DeploymentArtifactPage.clickOnArtifactDescription(deploymentArtifactList.get(1).getArtifactLabel()).isDisplayed());
185 public void addUpdateDeleteInformationalArtifactDCAEAssetTest() throws Exception {
187 ResourceGeneralPage.getLeftMenu().moveToInformationalArtifactScreen();
189 ArtifactInfo informationalArtifact = new ArtifactInfo(filePath, "asc_heat 0 2.yaml", "kuku", "artifact1", "OTHER");
190 InformationalArtifactPage.clickAddNewArtifact();
191 ArtifactUIUtils.fillAndAddNewArtifactParameters(informationalArtifact);
193 assertTrue("artifact table does not contain artifacts uploaded", InformationalArtifactPage.checkElementsCountInTable(1));
195 String newDescription = "new description";
196 InformationalArtifactPage.clickEditArtifact(informationalArtifact.getArtifactLabel());
197 InformationalArtifactPage.artifactPopup().insertDescription(newDescription);
198 InformationalArtifactPage.artifactPopup().clickDoneButton();
199 String actualArtifactDescription = InformationalArtifactPage.getArtifactDescription(informationalArtifact.getArtifactLabel());
200 assertTrue("artifact description is not updated", newDescription.equals(actualArtifactDescription));
202 InformationalArtifactPage.clickDeleteArtifact(informationalArtifact.getArtifactLabel());
203 InformationalArtifactPage.clickOK();
204 assertTrue("artifact "+ informationalArtifact.getArtifactLabel() + "is not deleted", InformationalArtifactPage.checkElementsCountInTable(0));
208 public void addPropertiesToVfcInstanceInDCAEAssetTest() throws Exception {
209 String fileName = "importVFC_VFC15.yml";
210 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
213 ResourceUIUtils.importVfc(atomicResourceMetaData, filePath, fileName, getUser());
214 ResourceGeneralPage.clickCheckinButton(atomicResourceMetaData.getName());
218 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
219 CanvasManager vfCanvasManager = CanvasManager.getCanvasManager();
220 CompositionPage.searchForElement(atomicResourceMetaData.getName());
221 CanvasElement vfcElement = vfCanvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
223 vfCanvasManager.clickOnCanvaElement(vfcElement);
224 CompositionPage.showPropertiesAndAttributesTab();
225 List<WebElement> properties = CompositionPage.getProperties();
226 String propertyValue = "abc123";
227 for (int i = 0; i < 2; i++) {
228 WebElement findElement = properties.get(i).findElement(By.className("i-sdc-designer-sidebar-section-content-item-property-and-attribute-label"));
230 PropertiesPage.getPropertyPopup().insertPropertyDefaultValue(propertyValue);
231 PropertiesPage.getPropertyPopup().clickSave();
233 findElement = properties.get(i).findElement(By.className("i-sdc-designer-sidebar-section-content-item-property-value"));
234 assertTrue(findElement.getText().equals(propertyValue));
238 ResourceRestUtils.deleteResourceByNameAndVersion(atomicResourceMetaData.getName(), "0.1");
243 public void changeInstanceVersionDCAEAssetTest() throws Exception{
244 ResourceReqDetails atomicResourceMetaData = null;
245 ResourceReqDetails vfMetaData = null;
246 CanvasManager vfCanvasManager;
247 CanvasElement vfcElement = null;
248 String fileName = "importVFC_VFC16.yml";
250 atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
251 ResourceUIUtils.importVfc(atomicResourceMetaData, filePath, fileName, getUser());
252 ResourceGeneralPage.clickSubmitForTestingButton(atomicResourceMetaData.getName());
254 vfMetaData = createDCAEAsset();
255 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
256 vfCanvasManager = CanvasManager.getCanvasManager();
257 CompositionPage.searchForElement(atomicResourceMetaData.getName());
258 vfcElement = vfCanvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
260 CompositionPage.clickSubmitForTestingButton(vfMetaData.getName());
264 String errorMessage = GeneralUIUtils.getWebElementByClassName("w-sdc-modal-caption").getText();
265 String checkUIResponseOnError = ErrorValidationUtils.checkUIResponseOnError(ActionStatus.VALIDATED_RESOURCE_NOT_FOUND.name());
266 Assert.assertTrue(errorMessage.contains(checkUIResponseOnError));
269 reloginWithNewRole(UserRoleEnum.TESTER);
270 GeneralUIUtils.findComponentAndClick(atomicResourceMetaData.getName());
271 TesterOperationPage.certifyComponent(atomicResourceMetaData.getName());
273 reloginWithNewRole(UserRoleEnum.DESIGNER);
274 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
275 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
276 vfCanvasManager = CanvasManager.getCanvasManager();
277 CompositionPage.changeComponentVersion(vfCanvasManager, vfcElement, "1.0");
280 VfVerificator.verifyInstanceVersion(vfMetaData, getUser(), atomicResourceMetaData.getName(), "1.0");
284 ResourceRestUtils.deleteResourceByNameAndVersion(atomicResourceMetaData.getName(), "1.0");
289 // future removed from ui
290 @Test(enabled = false)
291 public void addUpdateDeleteSimplePropertiesToDCAEAssetTest() throws Exception{
294 ResourceGeneralPage.getLeftMenu().moveToPropertiesScreen();
295 List<PropertyTypeEnum> propertyList = Arrays.asList(PropertyTypeEnum.STRING, PropertyTypeEnum.INTEGER);
296 int propertiesCount = PropertiesPage.getElemenetsFromTable().size();
297 for (PropertyTypeEnum prop : propertyList){
298 PropertiesUIUtils.addNewProperty(prop);
300 assertTrue(GeneralUIUtils.checkElementsCountInTable(propertiesCount + propertyList.size(), () -> PropertiesPage.getElemenetsFromTable()));
301 VfVerificator.verifyPropertiesInUI(propertyList);
302 PropertiesPage.verifyTotalProperitesField(propertiesCount + propertyList.size());
304 PropertyTypeEnum prop = propertyList.get(0);
305 prop.setDescription("updatedDescription");
306 prop.setValue("value");
307 PropertiesUIUtils.updateProperty(prop);
309 PropertiesPage.clickDeletePropertyArtifact(prop.getName());
310 assertTrue(GeneralUIUtils.checkElementsCountInTable(propertiesCount + propertyList.size() - 1, () -> PropertiesPage.getElemenetsFromTable()));
313 // future removed from ui
314 @Test(enabled = false)
315 public void DCAEAssetInstancesInputScreenTest() throws Exception{
318 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
319 CanvasManager vfCanvasManager = CanvasManager.getCanvasManager();
321 Map<String, String> elementsIntancesMap = new HashMap<String, String>();
322 for (LeftPanelCanvasItems element : Arrays.asList(LeftPanelCanvasItems.DATABASE)){
323 CanvasElement elementOnCanvas = vfCanvasManager.createElementOnCanvas(element);
324 vfCanvasManager.clickOnCanvaElement(elementOnCanvas);
325 String selectedInstanceName = CompositionPage.getSelectedInstanceName();
326 elementsIntancesMap.put(selectedInstanceName, element.getValue());
329 CompositionPage.moveToInputsScreen();
330 int canvasElementsSize = vfCanvasManager.getCanvasElements().size() + 2;
331 List<String> inputsNamesFromTable = InputsPage.getVFCInstancesNamesFromTable();
332 assertTrue(String.format("Instances count is not as Expected: %s Actual: %s", canvasElementsSize, inputsNamesFromTable.size()), inputsNamesFromTable.size() == canvasElementsSize);
334 for (String instanceName :inputsNamesFromTable){
335 String resourceName = instanceName.split(" ")[0];
336 ResourceReqDetails resource = new ResourceReqDetails();
337 resource.setName(resourceName);
338 resource.setVersion("1.0");
339 if (resourceName.equals("Port")){
340 resource.setResourceType(ResourceTypeEnum.CP.toString());
342 resource.setResourceType(ResourceTypeEnum.VFC.toString());
344 RestResponse restResponse = RestCDUtils.getResource(resource, getUser());
345 Map<String, String> propertiesNameTypeJson = ResponseParser.getPropertiesNameType(restResponse);
347 List<WebElement> propertyRowsFromTable = InputsPage.getInstancePropertiesList(resourceName);
348 assertTrue("Some properties are missing in table. Instance name is : " + resourceName, propertyRowsFromTable.size() == propertiesNameTypeJson.size());
349 VfVerificator.verifyVfInputs(instanceName, propertiesNameTypeJson, propertyRowsFromTable);
351 GeneralUIUtils.clickOnElementByText(resourceName);
356 public void addAllInformationalArtifactPlaceholdersInDCAEAssetTest() throws Exception{
358 ResourceGeneralPage.getLeftMenu().moveToInformationalArtifactScreen();
360 for(InformationalArtifactsPlaceholders informArtifact : InformationalArtifactsPlaceholders.values()){
361 ArtifactUIUtils.fillPlaceHolderInformationalArtifact(informArtifact, filePath,"asc_heat 0 2.yaml", informArtifact.getValue());
364 assertTrue(InformationalArtifactPage.checkElementsCountInTable(InformationalArtifactsPlaceholders.values().length));
368 public void verifyToscaArtifactsExistDCAEAssetTest() throws Exception{
369 ResourceReqDetails vfMetaData = createDCAEAsset();
371 final int numOfToscaArtifacts = 2;
372 ResourceGeneralPage.getLeftMenu().moveToToscaArtifactsScreen();
373 assertTrue(ToscaArtifactsPage.checkElementsCountInTable(numOfToscaArtifacts));
375 for(int i = 0; i < numOfToscaArtifacts; i++){
376 String typeFromScreen = ToscaArtifactsPage.getArtifactType(i);
377 assertTrue(typeFromScreen.equals(ArtifactTypeEnum.TOSCA_CSAR.getType()) || typeFromScreen.equals(ArtifactTypeEnum.TOSCA_TEMPLATE.getType()));
380 ToscaArtifactsPage.clickSubmitForTestingButton(vfMetaData.getName());
381 VfVerificator.verifyToscaArtifactsInfo(vfMetaData, getUser());
385 public void DCAEAssetCertificationTest() throws Exception{
386 ResourceReqDetails vfMetaData = createDCAEAsset();
388 String vfName = vfMetaData.getName();
390 ResourceGeneralPage.clickCheckinButton(vfName);
391 GeneralUIUtils.findComponentAndClick(vfName);
392 ResourceGeneralPage.clickSubmitForTestingButton(vfName);
394 reloginWithNewRole(UserRoleEnum.TESTER);
395 GeneralUIUtils.findComponentAndClick(vfName);
396 TesterOperationPage.certifyComponent(vfName);
398 vfMetaData.setVersion("1.0");
399 VfVerificator.verifyVFLifecycle(vfMetaData, getUser(), LifecycleStateEnum.CERTIFIED);
401 reloginWithNewRole(UserRoleEnum.DESIGNER);
402 GeneralUIUtils.findComponentAndClick(vfName);
403 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CERTIFIED);
407 public void deleteDCAEAssetCheckedoutTest() throws Exception{
408 ResourceReqDetails vfMetaData = createDCAEAsset();
410 GeneralPageElements.clickTrashButtonAndConfirm();
412 vfMetaData.setVersion("0.1");
413 VfVerificator.verifyVfDeleted(vfMetaData, getUser());
417 public void revertDCAEAssetMetadataTest() throws Exception{
418 ResourceReqDetails vfMetaData = createDCAEAsset();
420 ResourceReqDetails vfRevertDetails = new ResourceReqDetails();
421 vfRevertDetails.setName("ciUpdatedName");
422 vfRevertDetails.setDescription("kuku");
423 vfRevertDetails.setCategories(vfMetaData.getCategories());
424 vfRevertDetails.setVendorName("updatedVendor");
425 vfRevertDetails.setVendorRelease("updatedRelease");
426 ResourceUIUtils.fillResourceGeneralInformationPage(vfRevertDetails, getUser(), false);
428 GeneralPageElements.clickRevertButton();
430 VfVerificator.verifyVFMetadataInUI(vfMetaData);
434 public void addDeploymentArtifactInCompositionScreenDCAEAssetTest() throws Exception{
437 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
439 ArtifactInfo artifact = new ArtifactInfo(filePath, "Heat-File.yaml", "kuku", "artifact3","OTHER");
440 CompositionPage.showDeploymentArtifactTab();
441 CompositionPage.clickAddArtifactButton();
442 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
444 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className("i-sdc-designer-sidebar-section-content-item-artifact"));
445 Assert.assertEquals(1, actualArtifactList.size());
448 // future removed from ui
449 @Test(enabled = false)
450 public void addPropertyInCompositionScreenDCAEAssetTest() throws Exception{
453 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
455 CompositionPage.showPropertiesAndAttributesTab();
456 List<PropertyTypeEnum> propertyList = Arrays.asList(PropertyTypeEnum.STRING, PropertyTypeEnum.INTEGER);
457 int propertiesCount = CompositionPage.getProperties().size();
458 for (PropertyTypeEnum prop : propertyList){
459 PropertiesUIUtils.addNewProperty(prop);
461 assertTrue(GeneralUIUtils.checkElementsCountInTable(propertiesCount + propertyList.size(), () -> CompositionPage.getProperties()));
465 public void addDeploymentArtifactAndVerifyInCompositionScreenDCAEAssetTest() throws Exception{
468 ResourceGeneralPage.getLeftMenu().moveToDeploymentArtifactScreen();
470 ArtifactInfo deploymentArtifact = new ArtifactInfo(filePath, "asc_heat 0 2.yaml", "kuku", "artifact1", "OTHER");
471 DeploymentArtifactPage.clickAddNewArtifact();
472 ArtifactUIUtils.fillAndAddNewArtifactParameters(deploymentArtifact);
473 assertTrue(DeploymentArtifactPage.checkElementsCountInTable(1));
475 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
477 CompositionPage.showDeploymentArtifactTab();
478 List<WebElement> deploymentArtifactsFromScreen = CompositionPage.getDeploymentArtifacts();
479 assertTrue(1 == deploymentArtifactsFromScreen.size());
481 String actualArtifactFileName = deploymentArtifactsFromScreen.get(0).getText();
482 assertTrue("asc_heat-0-2.yaml".equals(actualArtifactFileName));
486 public void checkoutDCAEAssetTest() throws Exception{
487 ResourceReqDetails vfMetaData = createDCAEAsset();
489 ResourceGeneralPage.clickCheckinButton(vfMetaData.getName());
490 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
491 GeneralPageElements.clickCheckoutButton();
493 vfMetaData.setVersion("0.2");
494 VfVerificator.verifyVFLifecycle(vfMetaData, getUser(), LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
495 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CHECKOUT);
497 ResourceGeneralPage.clickSubmitForTestingButton(vfMetaData.getName());
499 reloginWithNewRole(UserRoleEnum.TESTER);
500 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
501 TesterOperationPage.certifyComponent(vfMetaData.getName());
503 reloginWithNewRole(UserRoleEnum.DESIGNER);
504 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
505 ResourceGeneralPage.clickCheckoutButton();
507 vfMetaData.setVersion("1.1");
508 vfMetaData.setUniqueId(null);
509 VfVerificator.verifyVFLifecycle(vfMetaData, getUser(), LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
510 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CHECKOUT);
514 public void deleteInstanceFromDCAEAssetCanvas() throws Exception{
515 ResourceReqDetails vfMetaData = createDCAEAsset();
517 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
518 CanvasManager vfCanvasManager = CanvasManager.getCanvasManager();
519 CanvasElement computeElement = CompositionPage.addElementToCanvasScreen(LeftPanelCanvasItems.COMPUTE, vfCanvasManager);
521 vfCanvasManager.clickOnCanvaElement(computeElement);
522 vfCanvasManager.deleteElementFromCanvas(computeElement);
524 VfVerificator.verifyNumOfComponentInstances(vfMetaData, 2, getUser());
528 public void changeInstanceNameInDCAEAssetTest() throws Exception{
531 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
532 CanvasManager vfCanvasManager = CanvasManager.getCanvasManager();
533 CanvasElement computeElement = CompositionPage.addElementToCanvasScreen(LeftPanelCanvasItems.COMPUTE, vfCanvasManager);
535 String updatedInstanceName = "updatedName";
536 vfCanvasManager.updateElementNameInCanvas(computeElement, updatedInstanceName);
538 String actualSelectedInstanceName = CompositionPage.getSelectedInstanceName();
539 assertTrue(updatedInstanceName.equals(actualSelectedInstanceName));
543 public void submitDCAEAssetForTestingWithNonCertifiedAsset() throws Exception{
544 String fileName = "importVFC_VFC17.yml";
546 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VFC, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
547 ResourceUIUtils.importVfc(atomicResourceMetaData, filePath, fileName, getUser());
548 ResourceGeneralPage.clickSubmitForTestingButton(atomicResourceMetaData.getName());
550 ResourceReqDetails vfMetaData = createDCAEAsset();
551 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
552 CanvasManager canvasManager = CanvasManager.getCanvasManager();
553 CompositionPage.addElementToCanvasScreen(atomicResourceMetaData.getName(), canvasManager);
556 CompositionPage.clickSubmitForTestingButton(vfMetaData.getName());
560 String errorMessage = GeneralUIUtils.getWebElementByClassName("w-sdc-modal-caption").getText();
561 String checkUIResponseOnError = ErrorValidationUtils.checkUIResponseOnError(ActionStatus.VALIDATED_RESOURCE_NOT_FOUND.name());
562 Assert.assertTrue(errorMessage.contains(checkUIResponseOnError));
565 ResourceRestUtils.deleteResourceByNameAndVersion(atomicResourceMetaData.getName(), "0.1");
570 public void isDisabledAndReadOnlyInCheckinDCAEAssetTest() throws Exception{
571 ResourceReqDetails vfMetaData = createDCAEAsset();
572 ResourceGeneralPage.clickCheckinButton(vfMetaData.getName());
573 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
575 ResourceMetadataEnum[] fieldsForCheck = {ResourceMetadataEnum.RESOURCE_NAME,
576 ResourceMetadataEnum.DESCRIPTION,
577 ResourceMetadataEnum.VENDOR_NAME,
578 ResourceMetadataEnum.VENDOR_RELEASE,
579 ResourceMetadataEnum.CONTACT_ID,
580 ResourceMetadataEnum.CATEGORY,
581 ResourceMetadataEnum.TAGS};
583 for (ResourceMetadataEnum field: fieldsForCheck){
584 VfVerificator.verifyIsElementDisabled(field.getValue(), field.name());
586 VfVerificator.verifyIsElementDisabled(DataTestIdEnum.LifeCyleChangeButtons.CREATE.getValue(), DataTestIdEnum.LifeCyleChangeButtons.CREATE.name());
590 public void removeFileFromGeneralPageDCAEAssetTest() throws Exception{
591 String fileName2 = "service_input_test_VF2.csar";
592 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
593 ResourceUIUtils.importVfFromCsarNoCreate(resourceMetaData, filePath, fileName2, getUser());
594 GeneralPageElements.clickDeleteFile();
597 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.GeneralElementsEnum.CREATE_BUTTON.getValue(), 30);
606 public void activityLogDCAEAssetTest() throws Exception{
609 ResourceGeneralPage.getLeftMenu().moveToInformationalArtifactScreen();
611 ArtifactInfo informationalArtifact = new ArtifactInfo(filePath, "asc_heat 0 2.yaml", "kuku", "artifact1", "OTHER");
612 InformationalArtifactPage.clickAddNewArtifact();
613 ArtifactUIUtils.fillAndAddNewArtifactParameters(informationalArtifact);
615 ResourceGeneralPage.getLeftMenu().moveToActivityLogScreen();
617 int numberOfRows = GeneralUIUtils.getElementsByCSS("div[class^='flex-container']").size();
618 assertTrue("Wrong rows number, should be 2", numberOfRows == 2);
622 public void checkinCheckoutChangeDeleteVersionDCAEAssetTest() throws Exception{
623 ResourceReqDetails atomicResourceMetaData = createDCAEAsset();
625 ResourceGeneralPage.clickCheckinButton(atomicResourceMetaData.getName());
626 GeneralUIUtils.findComponentAndClick(atomicResourceMetaData.getName());
627 GeneralPageElements.clickCheckoutButton();
628 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CHECKOUT);
630 GeneralPageElements.selectVersion("V0.1");
631 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CHECKIN);
632 GeneralUIUtils.clickJSOnElementByText("latest version");
634 GeneralPageElements.clickTrashButtonAndConfirm();
635 GeneralUIUtils.findComponentAndClick(atomicResourceMetaData.getName());
636 String actualVersion = GeneralUIUtils.getSelectedElementFromDropDown(DataTestIdEnum.GeneralElementsEnum.VERSION_HEADER.getValue()).getText();
637 assertTrue("Expected version: V0.1, Actual version: " + actualVersion, actualVersion.equals("V0.1"));
641 public void badFileDCAEAssetTest() throws Exception {
642 String customFileName = "badVF.csar";
643 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
645 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, customFileName, getUser());
649 String errorMessage = GeneralUIUtils.getWebElementByClassName("w-sdc-modal-caption").getText();
650 String checkUIResponseOnError = ErrorValidationUtils.checkUIResponseOnError(ActionStatus.CSAR_INVALID.name());
651 SetupCDTest.getExtendTest().log(Status.INFO, String.format("Validating error messdge..."));
652 Assert.assertTrue(errorMessage.contains(checkUIResponseOnError));
657 public void validContactAfterCreateDCAEAssetTest() throws Exception{
658 String fileName2 = "service_input_test_VF2.csar";
659 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
660 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
661 SetupCDTest.getExtendTest().log(Status.INFO, String.format("Validating that userID equal to user that was logged in..."));
662 assertTrue("wrong userId", resourceMetaData.getContactId().equals(ResourceGeneralPage.getContactIdText()));
665 public ResourceReqDetails createDCAEAsset() throws Exception{
666 String fileName2 = "service_input_test_VF2.csar";
667 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
668 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
669 resourceMetaData.setVersion("0.1");
670 return resourceMetaData;
674 protected UserRoleEnum getRole() {
675 return UserRoleEnum.DESIGNER;