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.onap.sdc.frontend.ci.tests.execute.sanity;
23 import com.aventstack.extentreports.Status;
24 import org.onap.sdc.backend.ci.tests.datatypes.enums.ArtifactTypeEnum;
25 import org.onap.sdc.backend.ci.tests.datatypes.enums.NormativeTypesEnum;
26 import org.onap.sdc.backend.ci.tests.utils.general.ElementFactory;
27 import org.onap.sdc.frontend.ci.tests.verificator.CustomizationUUIDVerificator;
28 import org.onap.sdc.frontend.ci.tests.verificator.ServiceVerificator;
29 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
30 import org.onap.sdc.frontend.ci.tests.datatypes.ArtifactInfo;
31 import org.onap.sdc.frontend.ci.tests.datatypes.CanvasElement;
32 import org.onap.sdc.frontend.ci.tests.datatypes.CanvasManager;
33 import org.onap.sdc.frontend.ci.tests.datatypes.DataTestIdEnum;
34 import org.onap.sdc.backend.ci.tests.datatypes.ResourceReqDetails;
35 import org.onap.sdc.backend.ci.tests.datatypes.ServiceReqDetails;
36 import org.onap.sdc.backend.ci.tests.datatypes.enums.UserRoleEnum;
37 import org.onap.sdc.frontend.ci.tests.execute.setup.SetupCDTest;
38 import org.onap.sdc.frontend.ci.tests.pages.CompositionPage;
39 import org.onap.sdc.frontend.ci.tests.pages.DeploymentArtifactPage;
40 import org.onap.sdc.frontend.ci.tests.pages.GeneralPageElements;
41 import org.onap.sdc.frontend.ci.tests.pages.HomePage;
42 import org.onap.sdc.frontend.ci.tests.pages.ResourceGeneralPage;
43 import org.onap.sdc.frontend.ci.tests.pages.ServiceGeneralPage;
44 import org.onap.sdc.frontend.ci.tests.utilities.ArtifactUIUtils;
45 import org.onap.sdc.frontend.ci.tests.utilities.FileHandling;
46 import org.onap.sdc.frontend.ci.tests.utilities.GeneralUIUtils;
47 import org.onap.sdc.frontend.ci.tests.utilities.ResourceUIUtils;
48 import org.onap.sdc.frontend.ci.tests.utilities.ServiceUIUtils;
49 import org.openqa.selenium.By;
50 import org.openqa.selenium.WebElement;
51 import org.testng.AssertJUnit;
52 import org.testng.annotations.BeforeMethod;
53 import org.testng.annotations.Test;
55 import java.util.ArrayList;
56 import java.util.List;
58 public class CustomizationUUID extends SetupCDTest {
60 private static final String DESCRIPTION = "kuku";
61 private static final String ARTIFACT_LABEL = "artifact3";
62 private static final String ARTIFACT_LABEL_UPDATE = "artifactUpdate";
63 private static final String GET_ARTIFACT_LIST_BY_CLASS_NAME = "i-sdc-designer-sidebar-section-content-item-artifact";
64 private static final String HEAT_FILE_YAML_NAME = "Heat-File.yaml";
65 private static final String HEAT_FILE_YAML_UPDATE_NAME = "Heat-File-Update.yaml";
66 private String filePath;
68 private CustomizationUUID() {
72 public void beforeTest() {
73 filePath = FileHandling.getFilePath("");
77 public void uniqueCustomizationUUIDforeachVFi() throws Exception {
80 ResourceReqDetails vfMetaData = createNewResourceWithArtifactCertifyState();
82 List customizationUUIDs = new ArrayList<String>();
83 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
84 ServiceUIUtils.createService(serviceMetadata);
87 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
88 CanvasManager canvasManager = CanvasManager.getCanvasManager();
89 CanvasElement VFiElement1 = addElemntToCanvas(vfMetaData, canvasManager);
90 CanvasElement VFiElement2 = addElemntToCanvas(vfMetaData, canvasManager);
91 CanvasElement VFiElement3 = addElemntToCanvas(vfMetaData, canvasManager);
94 ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
96 canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
97 addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement1);
98 addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement2);
99 addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement3);
101 ServiceGeneralPage.clickCheckoutButton();
102 canvasManager = CanvasManager.getCanvasManager();
103 CanvasElement VFiElement4 = addElemntToCanvas(vfMetaData, canvasManager);
104 CanvasElement VFiElement5 = addElemntToCanvas(vfMetaData, canvasManager);
105 CanvasElement VFiElement6 = addElemntToCanvas(vfMetaData, canvasManager);
107 ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
108 canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
109 addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement4);
110 addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement5);
111 addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement6);
113 CustomizationUUIDVerificator.validateCustomizationUUIDuniqueness(customizationUUIDs);
120 public void uniqueCustomizationUUIDafterArtifactCRUDofVFi() throws Exception {
123 ResourceReqDetails vfMetaData = createNewResourceWithArtifactCertifyState();
125 List customizationUUIDs = new ArrayList<>();
126 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
127 ServiceUIUtils.createService(serviceMetadata);
129 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
130 CanvasManager canvasManager = CanvasManager.getCanvasManager();
131 CanvasElement VFiElement1 = addElemntToCanvas(vfMetaData, canvasManager);
133 ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
135 canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
136 addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement1);
138 ServiceGeneralPage.clickCheckoutButton();
139 canvasManager = CanvasManager.getCanvasManager();
141 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL, ArtifactTypeEnum.SNMP_POLL.getType());
143 canvasManager.clickOnCanvaElement(VFiElement1);
144 CompositionPage.showDeploymentArtifactTab();
145 CompositionPage.clickAddArtifactButton();
146 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
149 ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
150 canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
151 addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement1);
154 ServiceGeneralPage.clickCheckoutButton();
155 canvasManager = CanvasManager.getCanvasManager();
156 canvasManager.clickOnCanvaElement(VFiElement1);
157 CompositionPage.showDeploymentArtifactTab();
158 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
159 GeneralUIUtils.hoverOnAreaByTestId(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.ARTIFACT_ITEM.getValue() + ARTIFACT_LABEL);
160 SetupCDTest.getExtendTest().log(Status.INFO, "Going to delete " + HEAT_FILE_YAML_NAME + " artifact" + " and check if deleted");
161 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.DELETE.getValue() + ARTIFACT_LABEL);
162 GeneralPageElements.clickOKButton();
165 ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
166 canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
167 addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement1);
170 CustomizationUUIDVerificator.validateCustomizationUUIDuniqueness(customizationUUIDs);
176 public void uniqueCustomizationUUIDchangeVFiVersion() throws Exception {
179 ResourceReqDetails vfMetaData = createNewResourceWithArtifactCertifyState();
181 List customizationUUIDs = new ArrayList<>();
182 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
183 ServiceUIUtils.createService(serviceMetadata);
185 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
186 CanvasManager canvasManager = CanvasManager.getCanvasManager();
187 CanvasElement VFiElement1 = addElemntToCanvas(vfMetaData, canvasManager);
189 ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
191 canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
192 addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement1);
194 HomePage.navigateToHomePage();
195 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
196 ResourceGeneralPage.clickCheckoutButton();
197 ResourceGeneralPage.clickCertifyButton(vfMetaData.getName());
200 canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
201 ServiceGeneralPage.clickCheckoutButton();
202 canvasManager = CanvasManager.getCanvasManager();
203 canvasManager.clickOnCanvaElement(VFiElement1);
204 CompositionPage.changeComponentVersion(canvasManager, VFiElement1, "2.0");
206 ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
207 canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
208 addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement1);
210 CustomizationUUIDVerificator.validateCustomizationUUIDuniqueness(customizationUUIDs);
216 public void uniqueCustomizationUUIDaddRelation() throws Exception {
219 ResourceReqDetails vfMetaData = createNewResourceWithArtifactCertifyState();
221 List customizationUUIDs = new ArrayList<>();
222 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
223 ServiceUIUtils.createService(serviceMetadata);
225 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
226 CanvasManager canvasManager = CanvasManager.getCanvasManager();
227 CanvasElement VFiElement1 = addElemntToCanvas(vfMetaData, canvasManager);
229 ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
231 canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
232 addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement1);
234 HomePage.navigateToHomePage();
235 GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
236 ResourceGeneralPage.clickCheckoutButton();
237 //TODO Andrey should click on certify button
238 ResourceGeneralPage.clickCertifyButton(vfMetaData.getName());
240 canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
241 ServiceGeneralPage.clickCheckoutButton();
242 canvasManager = CanvasManager.getCanvasManager();
243 CanvasElement contrailPortElement = canvasManager.createElementOnCanvas(DataTestIdEnum.LeftPanelCanvasItems.CONTRAIL_PORT);
244 canvasManager.linkElements(contrailPortElement, VFiElement1);
246 canvasManager.clickOnCanvaElement(VFiElement1);
249 ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
250 canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
251 addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement1);
253 CustomizationUUIDVerificator.validateCustomizationUUIDuniqueness(customizationUUIDs);
258 public CanvasManager findServiceAndNavigateToCanvas(ServiceReqDetails serviceMetadata) throws Exception {
259 CanvasManager canvasManager;
260 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
261 ServiceGeneralPage.getLeftMenu().moveToCompositionScreen();
262 canvasManager = CanvasManager.getCanvasManager();
263 return canvasManager;
266 public ResourceReqDetails createNewResourceWithArtifactCertifyState() throws Exception {
267 ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
268 ResourceUIUtils.createVF(vfMetaData, getUser());
270 ResourceGeneralPage.getLeftMenu().moveToDeploymentArtifactScreen();
272 List<ArtifactInfo> deploymentArtifactList = new ArrayList<>();
273 deploymentArtifactList.add(new ArtifactInfo(filePath, "asc_heat 0 2.yaml", "kuku", "artifact1", "OTHER"));
274 deploymentArtifactList.add(new ArtifactInfo(filePath, "sample-xml-alldata-1-1.xml", "cuku", "artifact2", "YANG_XML"));
275 for (ArtifactInfo deploymentArtifact : deploymentArtifactList) {
276 DeploymentArtifactPage.clickAddNewArtifact();
277 ArtifactUIUtils.fillAndAddNewArtifactParameters(deploymentArtifact);
279 AssertJUnit.assertTrue("artifact table does not contain artifacts uploaded", DeploymentArtifactPage.checkElementsCountInTable(deploymentArtifactList.size()));
281 String newDescription = "new description";
282 DeploymentArtifactPage.clickEditArtifact(deploymentArtifactList.get(0).getArtifactLabel());
283 DeploymentArtifactPage.artifactPopup().insertDescription(newDescription);
284 DeploymentArtifactPage.artifactPopup().clickDoneButton();
285 String actualArtifactDescription = DeploymentArtifactPage.getArtifactDescription(deploymentArtifactList.get(0).getArtifactLabel());
286 AssertJUnit.assertTrue("artifact description is not updated", newDescription.equals(actualArtifactDescription));
288 DeploymentArtifactPage.clickDeleteArtifact(deploymentArtifactList.get(0).getArtifactLabel());
289 DeploymentArtifactPage.clickOK();
291 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
293 CompositionPage.searchForElement(NormativeTypesEnum.COMPUTE.name());
294 CanvasManager canvasManagerVF = CanvasManager.getCanvasManager();
295 CanvasElement VFiElement1 = canvasManagerVF.createElementOnCanvas(DataTestIdEnum.LeftPanelCanvasItems.COMPUTE);
297 //TODO Andrey should click on certify button
298 ResourceGeneralPage.clickCertifyButton(vfMetaData.getName());
302 public void addCanvasElementToList(List customizationUUIDs, CanvasManager canvasManager, CanvasElement VFiElement1)
304 canvasManager.clickOnCanvaElement(VFiElement1);
305 WebElement VFi1customizationUUID = CompositionPage.getCustomizationUUID();
306 customizationUUIDs.add(VFi1customizationUUID.getText());
309 public CanvasElement addElemntToCanvas(ResourceReqDetails vfMetaData, CanvasManager canvasManager)
311 CompositionPage.searchForElement(vfMetaData.getName());
312 CanvasElement VFiElement1 = canvasManager.createElementOnCanvas(vfMetaData.getName());
316 public static void changeDeleteAndValidateVersionOnGeneralPage(String previousVersion, String currentVersion, String serviceName) throws Exception {
317 GeneralPageElements.selectVersion("V" + previousVersion);
318 ServiceVerificator.verifyVersionUI(previousVersion);
319 GeneralUIUtils.clickJSOnElementByText("latest version");
320 ServiceVerificator.verifyVersionUI(currentVersion);
321 GeneralPageElements.clickTrashButtonAndConfirm();
322 GeneralUIUtils.findComponentAndClick(serviceName);
323 ServiceVerificator.verifyVersionUI(previousVersion);
327 protected UserRoleEnum getRole() {
328 return UserRoleEnum.DESIGNER;