e829a571c5a4758f2410ab7d1f39fbe85a258de1
[sdc.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
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=========================================================
19  */
20
21 package org.onap.sdc.frontend.ci.tests.execute.sanity;
22
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;
54
55 import java.util.ArrayList;
56 import java.util.List;
57
58 public class CustomizationUUID extends SetupCDTest {
59
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;
67
68     private CustomizationUUID() {
69     }
70
71     @BeforeMethod
72     public void beforeTest() {
73         filePath = FileHandling.getFilePath("");
74     }
75
76     @Test
77     public void uniqueCustomizationUUIDforeachVFi() throws Exception {
78
79
80         ResourceReqDetails vfMetaData = createNewResourceWithArtifactCertifyState();
81
82         List customizationUUIDs = new ArrayList<String>();
83         ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
84         ServiceUIUtils.createService(serviceMetadata);
85
86
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);
92
93
94         ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
95
96         canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
97         addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement1);
98         addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement2);
99         addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement3);
100
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);
106
107         ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
108         canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
109         addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement4);
110         addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement5);
111         addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement6);
112
113         CustomizationUUIDVerificator.validateCustomizationUUIDuniqueness(customizationUUIDs);
114
115
116     }
117
118
119     @Test
120     public void uniqueCustomizationUUIDafterArtifactCRUDofVFi() throws Exception {
121
122
123         ResourceReqDetails vfMetaData = createNewResourceWithArtifactCertifyState();
124
125         List customizationUUIDs = new ArrayList<>();
126         ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
127         ServiceUIUtils.createService(serviceMetadata);
128
129         DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
130         CanvasManager canvasManager = CanvasManager.getCanvasManager();
131         CanvasElement VFiElement1 = addElemntToCanvas(vfMetaData, canvasManager);
132
133         ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
134
135         canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
136         addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement1);
137
138         ServiceGeneralPage.clickCheckoutButton();
139         canvasManager = CanvasManager.getCanvasManager();
140
141         ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL, ArtifactTypeEnum.SNMP_POLL.getType());
142
143         canvasManager.clickOnCanvaElement(VFiElement1);
144         CompositionPage.showDeploymentArtifactTab();
145         CompositionPage.clickAddArtifactButton();
146         ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
147
148
149         ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
150         canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
151         addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement1);
152
153
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();
163
164
165         ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
166         canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
167         addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement1);
168
169
170         CustomizationUUIDVerificator.validateCustomizationUUIDuniqueness(customizationUUIDs);
171
172     }
173
174
175     @Test
176     public void uniqueCustomizationUUIDchangeVFiVersion() throws Exception {
177
178
179         ResourceReqDetails vfMetaData = createNewResourceWithArtifactCertifyState();
180
181         List customizationUUIDs = new ArrayList<>();
182         ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
183         ServiceUIUtils.createService(serviceMetadata);
184
185         DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
186         CanvasManager canvasManager = CanvasManager.getCanvasManager();
187         CanvasElement VFiElement1 = addElemntToCanvas(vfMetaData, canvasManager);
188
189         ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
190
191         canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
192         addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement1);
193
194         HomePage.navigateToHomePage();
195         GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
196         ResourceGeneralPage.clickCheckoutButton();
197         ResourceGeneralPage.clickCertifyButton(vfMetaData.getName());
198
199
200         canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
201         ServiceGeneralPage.clickCheckoutButton();
202         canvasManager = CanvasManager.getCanvasManager();
203         canvasManager.clickOnCanvaElement(VFiElement1);
204         CompositionPage.changeComponentVersion(canvasManager, VFiElement1, "2.0");
205
206         ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
207         canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
208         addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement1);
209
210         CustomizationUUIDVerificator.validateCustomizationUUIDuniqueness(customizationUUIDs);
211
212     }
213
214
215     @Test
216     public void uniqueCustomizationUUIDaddRelation() throws Exception {
217
218
219         ResourceReqDetails vfMetaData = createNewResourceWithArtifactCertifyState();
220
221         List customizationUUIDs = new ArrayList<>();
222         ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
223         ServiceUIUtils.createService(serviceMetadata);
224
225         DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
226         CanvasManager canvasManager = CanvasManager.getCanvasManager();
227         CanvasElement VFiElement1 = addElemntToCanvas(vfMetaData, canvasManager);
228
229         ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
230
231         canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
232         addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement1);
233
234         HomePage.navigateToHomePage();
235         GeneralUIUtils.findComponentAndClick(vfMetaData.getName());
236         ResourceGeneralPage.clickCheckoutButton();
237         //TODO Andrey should click on certify button
238         ResourceGeneralPage.clickCertifyButton(vfMetaData.getName());
239
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);
245
246         canvasManager.clickOnCanvaElement(VFiElement1);
247
248
249         ServiceGeneralPage.clickCheckinButton(serviceMetadata.getName());
250         canvasManager = findServiceAndNavigateToCanvas(serviceMetadata);
251         addCanvasElementToList(customizationUUIDs, canvasManager, VFiElement1);
252
253         CustomizationUUIDVerificator.validateCustomizationUUIDuniqueness(customizationUUIDs);
254
255     }
256
257
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;
264     }
265
266     public ResourceReqDetails createNewResourceWithArtifactCertifyState() throws Exception {
267         ResourceReqDetails vfMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
268         ResourceUIUtils.createVF(vfMetaData, getUser());
269
270         ResourceGeneralPage.getLeftMenu().moveToDeploymentArtifactScreen();
271
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);
278         }
279         AssertJUnit.assertTrue("artifact table does not contain artifacts uploaded", DeploymentArtifactPage.checkElementsCountInTable(deploymentArtifactList.size()));
280
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));
287
288         DeploymentArtifactPage.clickDeleteArtifact(deploymentArtifactList.get(0).getArtifactLabel());
289         DeploymentArtifactPage.clickOK();
290
291         ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
292
293         CompositionPage.searchForElement(NormativeTypesEnum.COMPUTE.name());
294         CanvasManager canvasManagerVF = CanvasManager.getCanvasManager();
295         CanvasElement VFiElement1 = canvasManagerVF.createElementOnCanvas(DataTestIdEnum.LeftPanelCanvasItems.COMPUTE);
296
297         //TODO Andrey should click on certify button
298         ResourceGeneralPage.clickCertifyButton(vfMetaData.getName());
299         return vfMetaData;
300     }
301
302     public void addCanvasElementToList(List customizationUUIDs, CanvasManager canvasManager, CanvasElement VFiElement1)
303             throws Exception {
304         canvasManager.clickOnCanvaElement(VFiElement1);
305         WebElement VFi1customizationUUID = CompositionPage.getCustomizationUUID();
306         customizationUUIDs.add(VFi1customizationUUID.getText());
307     }
308
309     public CanvasElement addElemntToCanvas(ResourceReqDetails vfMetaData, CanvasManager canvasManager)
310             throws Exception {
311         CompositionPage.searchForElement(vfMetaData.getName());
312         CanvasElement VFiElement1 = canvasManager.createElementOnCanvas(vfMetaData.getName());
313         return VFiElement1;
314     }
315
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);
324     }
325
326     @Override
327     protected UserRoleEnum getRole() {
328         return UserRoleEnum.DESIGNER;
329     }
330
331 }