1 package org.openecomp.sdc.uici.tests.execute.vf;
3 import static org.openecomp.sdc.common.datastructure.FunctionalInterfaces.retryMethodOnException;
4 import static org.testng.AssertJUnit.assertEquals;
5 import static org.testng.AssertJUnit.assertTrue;
7 import java.io.IOException;
9 import java.util.concurrent.Callable;
11 import org.apache.http.HttpStatus;
12 import org.openecomp.sdc.uici.tests.datatypes.CanvasElement;
13 import org.openecomp.sdc.uici.tests.datatypes.CanvasManager;
14 import org.openecomp.sdc.uici.tests.datatypes.CreateAndUpdateStepsEnum;
15 import org.openecomp.sdc.uici.tests.datatypes.DataTestIdEnum;
16 import org.openecomp.sdc.uici.tests.datatypes.DataTestIdEnum.LeftPanelCanvasItems;
17 import org.openecomp.sdc.uici.tests.execute.base.SetupCDTest;
18 import org.openecomp.sdc.uici.tests.utilities.ArtifactUIUtils;
19 import org.openecomp.sdc.uici.tests.utilities.FileHandling;
20 import org.openecomp.sdc.uici.tests.utilities.GeneralUIUtils;
21 import org.openecomp.sdc.uici.tests.utilities.ResourceUIUtils;
22 import org.openecomp.sdc.uici.tests.utilities.RestCDUtils;
23 import org.openecomp.sdc.uici.tests.utilities.ServiceUIUtils;
24 import org.openecomp.sdc.uici.tests.verificator.ServiceVerificator;
25 import org.openecomp.sdc.uici.tests.verificator.VfVerificator;
26 import org.openqa.selenium.WebElement;
27 import org.testng.annotations.Test;
29 import org.openecomp.sdc.be.model.LifecycleStateEnum;
30 import org.openecomp.sdc.be.model.User;
31 import org.openecomp.sdc.ci.tests.datatypes.ArtifactReqDetails;
32 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
33 import org.openecomp.sdc.ci.tests.datatypes.ResourceRespJavaObject;
34 import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
35 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
36 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
37 import org.openecomp.sdc.ci.tests.utils.general.Convertor;
38 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
39 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
41 public class VfBasicTests extends SetupCDTest {
44 public void testImportVfTableColumns() {
45 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.OnBoardingTable.OPEN_MODAL_BUTTON.getValue()).click();
47 assertTrue(GeneralUIUtils
48 .getWebElementWaitForVisible(DataTestIdEnum.OnBoardingTable.VENDOR_HEADER_COL.getValue()) != null);
49 assertTrue(GeneralUIUtils
50 .getWebElementWaitForVisible(DataTestIdEnum.OnBoardingTable.NAME_HEADER_COL.getValue()) != null);
51 assertTrue(GeneralUIUtils
52 .getWebElementWaitForVisible(DataTestIdEnum.OnBoardingTable.CATEGORY_HEADER_COL.getValue()) != null);
54 assertTrue(GeneralUIUtils
55 .getWebElementWaitForVisible(DataTestIdEnum.OnBoardingTable.VERSION_HEADER_COL.getValue()) != null);
58 private void testsToChangeSomeParametersValues(){
59 //open parameters form
60 GeneralUIUtils.moveToHTMLElementByDataTestId(DataTestIdEnum.Artifatcs.BASE_CMUI_LAB1_ARTIFACT_ITEM.getValue());
61 GeneralUIUtils.getWebElementWaitForClickable(DataTestIdEnum.Artifatcs.OPEN_EDIT_PROPERTIES_FORM_OF_BASE_CMUI_LAB1.getValue()).click();
62 //edit values for parameter without default value and for parameter with default
63 String valueForFirstParam="111";
64 String newValueForSecondParam="222";
65 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.EnvParametersForm.VALUE_FIELD_OF_AVAILABILITY_ZONE_0.getValue()).sendKeys(valueForFirstParam);
66 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.EnvParametersForm.VALUE_FIELD_OF_CMAUI_FLAVOR.getValue()).clear();
67 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.EnvParametersForm.VALUE_FIELD_OF_CMAUI_FLAVOR.getValue()).sendKeys(newValueForSecondParam);
69 GeneralUIUtils.getWebElementWaitForClickable(DataTestIdEnum.EnvParametersForm.SAVE_BUTTON.getValue()).click();
70 GeneralUIUtils.waitForLoader();
72 GeneralUIUtils.moveToHTMLElementByDataTestId(DataTestIdEnum.Artifatcs.BASE_CMUI_LAB1_ARTIFACT_ITEM.getValue());
73 GeneralUIUtils.getWebElementWaitForClickable(DataTestIdEnum.Artifatcs.OPEN_EDIT_PROPERTIES_FORM_OF_BASE_CMUI_LAB1.getValue()).click();
74 //check if values were changed
75 assertTrue("The parameter value without default was not changed.",
76 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.EnvParametersForm.VALUE_FIELD_OF_AVAILABILITY_ZONE_0.getValue()).getAttribute("value").equals(valueForFirstParam));
77 assertTrue("The parameter value with default was not changed.",
78 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.EnvParametersForm.VALUE_FIELD_OF_CMAUI_FLAVOR.getValue()).getAttribute("value").equals(newValueForSecondParam));
79 //delete the value of the parameter without default
80 GeneralUIUtils.getWebElementWaitForClickable(DataTestIdEnum.EnvParametersForm.DELETE_AVAILABILITY_ZONE_0.getValue()).click();
81 boolean isThereDefaultValue=!GeneralUIUtils.getWebElementWaitForClickable(DataTestIdEnum.EnvParametersForm.DEFAULT_VALUE_COLMN_OF_CMAUI_FLAVOR.getValue()).getText().isEmpty();
82 if(isThereDefaultValue){
83 //revert the value of the parameter with default
84 GeneralUIUtils.getWebElementWaitForClickable(DataTestIdEnum.EnvParametersForm.REVERET_CMAUI_FLAVOR.getValue()).click();
87 GeneralUIUtils.getWebElementWaitForClickable(DataTestIdEnum.EnvParametersForm.SAVE_BUTTON.getValue()).click();
88 GeneralUIUtils.waitForLoader();
90 GeneralUIUtils.moveToHTMLElementByDataTestId(DataTestIdEnum.Artifatcs.BASE_CMUI_LAB1_ARTIFACT_ITEM.getValue());
91 GeneralUIUtils.getWebElementWaitForClickable(DataTestIdEnum.Artifatcs.OPEN_EDIT_PROPERTIES_FORM_OF_BASE_CMUI_LAB1.getValue()).click();
92 //check if values were changed
93 assertTrue("The parameter value without default was not deleted.",
94 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.EnvParametersForm.VALUE_FIELD_OF_AVAILABILITY_ZONE_0.getValue()).getAttribute("value").equals(""));
95 if(isThereDefaultValue){
96 String theDefaultValue="m1.large";
97 assertTrue("The parameter value with default was not reverted.",
98 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.EnvParametersForm.VALUE_FIELD_OF_CMAUI_FLAVOR.getValue()).getAttribute("value").equals(theDefaultValue));
103 public void testVFiUpdateHeatENVParameters() throws Exception {
105 String filePath = FileHandling.getResourcesFilesPath();
106 String fileName = "vmmc_work.csar";
107 ResourceReqDetails importVfResourceInUI = ResourceUIUtils.importVfInUIWithoutCheckin(getUser(), filePath,
109 GeneralUIUtils.closeNotificatin();
110 GeneralUIUtils.checkIn();
111 GeneralUIUtils.closeNotificatin();
113 ServiceReqDetails createServiceInUI = ServiceUIUtils.createServiceInUI(getUser());
114 ServiceVerificator.verifyServiceCreated(createServiceInUI, getUser());
116 GeneralUIUtils.moveToStep(CreateAndUpdateStepsEnum.COMPOSITION);
117 //drag vf into canvas
118 CanvasManager canvasManager = CanvasManager.getCanvasManager();
119 CanvasElement canvasElement = canvasManager.createElementOnCanvas(importVfResourceInUI.getName());
120 canvasManager.selectElementFromCanvas(canvasElement);
121 GeneralUIUtils.waitForLoader();
122 //go to deployment artifacts tab
123 GeneralUIUtils.getWebElementWaitForClickable(DataTestIdEnum.RightBar.DEPLOYMENT_ARTIFACTS.getValue()).click();
124 //test change parameters
125 testsToChangeSomeParametersValues();
129 public void testVFUpdateHeatENVParameters() throws Exception {
131 String filePath = FileHandling.getResourcesFilesPath();
132 String fileName = "vmmc_work.csar";
133 ResourceReqDetails importVfResourceInUI = ResourceUIUtils.importVfInUIWithoutCheckin(getUser(), filePath,
135 //go to deployment artifacts
136 GeneralUIUtils.moveToStep(CreateAndUpdateStepsEnum.DEPLOYMENT_ARTIFACT);
137 //test change parameters
138 testsToChangeSomeParametersValues();
142 public void testUpdateVfCreatedFromCsar() throws Exception {
144 String filePath = FileHandling.getResourcesFilesPath();
145 String fileName = "Sample_CSAR.csar";
146 ResourceReqDetails importVfResourceInUI = ResourceUIUtils.importVfInUIWithoutCheckin(getUser(), filePath,
149 fileName = "Sample_CSAR2.csar";
150 ResourceUIUtils.updateVfCsar(filePath, fileName);
151 VfVerificator.verifyNumOfComponentInstances(importVfResourceInUI, 4);
155 public void testImportVf() {
156 String filePath = FileHandling.getResourcesFilesPath();
157 String fileName = "Sample_CSAR.csar";
158 ResourceReqDetails importVfResourceInUI = ResourceUIUtils.importVfInUI(getUser(), filePath, fileName);
159 GeneralUIUtils.waitForLoader();
160 assertTrue(RestCDUtils.getResource(importVfResourceInUI).getErrorCode() == HttpStatus.SC_OK);
164 public void testCreateVf() {
165 ResourceReqDetails createResourceInUI = ResourceUIUtils.createResourceInUI(getUser());
166 assertTrue(RestCDUtils.getResource(createResourceInUI).getErrorCode() == HttpStatus.SC_OK);
170 public void testDeleteInstanceFromCanvas() {
171 ResourceReqDetails createResourceInUI = ResourceUIUtils.createResourceInUI(getUser());
172 GeneralUIUtils.moveToStep(CreateAndUpdateStepsEnum.COMPOSITION);
174 CanvasManager canvasManager = CanvasManager.getCanvasManager();
176 canvasManager.createElementOnCanvas(LeftPanelCanvasItems.BLOCK_STORAGE);
177 CanvasElement computeElement = canvasManager.createElementOnCanvas(LeftPanelCanvasItems.COMPUTE);
178 VfVerificator.verifyNumOfComponentInstances(createResourceInUI, 2);
179 canvasManager.deleteElementFromCanvas(computeElement);
180 VfVerificator.verifyNumOfComponentInstances(createResourceInUI, 1);
185 public void testUpdateInstanceAttributeValue() {
186 // creare vfc with attrs
187 String filePath = FileHandling.getResourcesFilesPath();
188 String fileName = "VFCWithAttributes.yml";
189 ResourceReqDetails importVfcResourceInUI = ResourceUIUtils.importVfcInUI(getUser(), filePath, fileName);
190 GeneralUIUtils.checkIn();
192 ResourceReqDetails createResourceInUI = ResourceUIUtils.createResourceInUI(getUser());
193 GeneralUIUtils.moveToStep(CreateAndUpdateStepsEnum.COMPOSITION);
195 CanvasManager canvasManager = CanvasManager.getCanvasManager();
196 CanvasElement canvasElement = canvasManager.createElementOnCanvas(importVfcResourceInUI.getName());
197 canvasManager.selectElementFromCanvas(canvasElement);
198 // edit value of vfc attr
199 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.RightBar.PROPERTIES_AND_ATTRIBUTES.getValue())
201 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.RightBar.MYATTR_ATTR_FROM_LIST.getValue()).click();
203 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.AttributeForm.DEFAULT_VAL_FIELD.getValue())
205 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.AttributeForm.DONE_BUTTON.getValue()).click();
206 String newValue = GeneralUIUtils
207 .getWebElementWaitForVisible(DataTestIdEnum.RightBar.MYATTR_ATTR_VALUE_FROM_LIST.getValue()).getText();
208 assertEquals("2", newValue);
211 @Test(enabled = false)
212 public void testAddInfomratinalArtifact() throws Exception {
213 ResourceReqDetails createResourceInUI = ResourceUIUtils.createResourceInUI(getUser());
215 GeneralUIUtils.moveToStep(CreateAndUpdateStepsEnum.INFORMATION_ARTIFACT);
217 ArtifactReqDetails informationalArtifact = ElementFactory.getDefaultArtifact();
218 final String FILE_PATH = System.getProperty("user.dir") + "\\src\\main\\resources\\Files\\";
219 final String FILE_NAME = "Valid_tosca_Mycompute.yml";
221 ArtifactUIUtils.addInformationArtifact(informationalArtifact, FILE_PATH + FILE_NAME,
222 DataTestIdEnum.InformationalArtifatcs.FEATURES);
223 ArtifactUIUtils.addInformationArtifact(informationalArtifact, FILE_PATH + FILE_NAME,
224 DataTestIdEnum.InformationalArtifatcs.CAPACITY);
226 RestResponse getResourceResponse = RestCDUtils.getResource(createResourceInUI);
227 assertEquals("Did not succeed to get resource after create", HttpStatus.SC_OK,
228 getResourceResponse.getErrorCode().intValue());
230 Map<String, Map<String, Object>> artifactsListFromResponse = ArtifactUIUtils
231 .getArtifactsListFromResponse(getResourceResponse.getResponse(), "artifacts");
232 Map<String, Object> map = artifactsListFromResponse.get("Features");
234 assertTrue(artifactsListFromResponse.size() >= 2);
239 public void testVfCertification() throws IOException {
241 ResourceReqDetails createResourceInUI = ResourceUIUtils.createResourceInUI(getUser());
242 assertTrue(RestCDUtils.getResource(createResourceInUI).getErrorCode() == HttpStatus.SC_OK);
244 // Submit For Testing Process
245 GeneralUIUtils.submitForTestingElement(createResourceInUI.getName());
248 quitAndReLogin(UserRoleEnum.TESTER);
249 ResourceUIUtils.testAndAcceptElement(createResourceInUI);
252 GeneralUIUtils.waitForLoader();
253 VfVerificator.verifyResourceIsCertified(createResourceInUI);
258 public void testDeploymentArtifactForVFi() {
259 User user = getUser();
261 ResourceReqDetails createResourceInUI = ResourceUIUtils.createResourceInUI(user);
262 GeneralUIUtils.checkIn();
263 GeneralUIUtils.waitForLoader();
265 GeneralUIUtils.clickOnCreateEntityFromDashboard(DataTestIdEnum.Dashboard.BUTTON_ADD_SERVICE.getValue());
266 ResourceUIUtils.defineResourceName("serv");
267 GeneralUIUtils.defineDescription("description");
268 GeneralUIUtils.waitForLoader();
269 ResourceUIUtils.defineResourceCategory("Mobility", "selectGeneralCategory");
270 ResourceUIUtils.defineProjectCode("012345");
271 GeneralUIUtils.clickSaveButton();
272 GeneralUIUtils.waitForLoader();
273 GeneralUIUtils.moveToStep(CreateAndUpdateStepsEnum.COMPOSITION);
274 GeneralUIUtils.waitForLoader();
276 CanvasManager canvasManager = CanvasManager.getCanvasManager();
277 CanvasElement canvasElement = canvasManager.createElementOnCanvas(createResourceInUI.getName());
278 canvasManager.selectElementFromCanvas(canvasElement);
279 GeneralUIUtils.waitForLoader();
281 GeneralUIUtils.getWebElementWaitForClickable(DataTestIdEnum.RightBar.DEPLOYMENT_ARTIFACTS.getValue()).click();
282 GeneralUIUtils.getWebElementWaitForClickable(DataTestIdEnum.RightBar.ADD_ARTIFACT_BUTTON.getValue()).click();
283 String newArtifactLabel = "newArtifact";
284 ArtifactReqDetails details = new ArtifactReqDetails("new_atifact", "DCAE_INVENTORY_EVENT", "desc", "",
286 ResourceUIUtils.fillinDeploymentArtifactFormAndClickDone(details,
287 FileHandling.getResourcesFilesPath() + "yamlSample.yml");
288 assertTrue(GeneralUIUtils.isElementPresent("artifact_Display_Name-" + newArtifactLabel));
290 GeneralUIUtils.getWebElementWaitForClickable("artifact_Display_Name-" + newArtifactLabel).click();
291 String newFileName = "yamlSample2.yml";
292 retryMethodOnException(
293 () -> GeneralUIUtils.getWebElementByDataTestId(DataTestIdEnum.GeneralSection.BROWSE_BUTTON.getValue())
294 .sendKeys(FileHandling.getResourcesFilesPath() + newFileName));
295 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.ModalItems.DONE.getValue()).click();
296 GeneralUIUtils.waitForLoader();
297 assertEquals(newFileName,
298 GeneralUIUtils.getWebElementWaitForVisible(DataTestIdEnum.RightBar.ARTIFACT_NAME.getValue()).getText());
300 GeneralUIUtils.moveToHTMLElementByDataTestId("artifact_Display_Name-" + newArtifactLabel);
301 GeneralUIUtils.getWebElementWaitForClickable(DataTestIdEnum.RightBar.DELETE_ARTIFACT_BUTTON.getValue()).click();
302 GeneralUIUtils.getWebElementWaitForClickable(DataTestIdEnum.ModalItems.OK.getValue()).click();
303 GeneralUIUtils.waitForLoader();
304 assertTrue(!GeneralUIUtils.isElementPresent("artifact_Display_Name-" + newArtifactLabel));
308 public void testDisplayVfModuleProperies() {
309 //create vf with components instances properties
310 ResourceReqDetails importedVf = ResourceUIUtils.importVfInUI(getUser(), FileHandling.getResourcesFilesPath(),
312 GeneralUIUtils.waitForLoader(40);
313 GeneralUIUtils.moveToStep(CreateAndUpdateStepsEnum.DEPLOYMENT);
314 GeneralUIUtils.getWebElementWaitForClickable("hierarchy-module-0-title").click();
315 assertTrue(GeneralUIUtils.isElementPresent(DataTestIdEnum.DeploymentSection.MODULE_PROPERTIES_HEADER_LIST.getValue()));
318 protected ArtifactReqDetails defineInformationalArtifact() throws IOException, Exception {
319 return ElementFactory.getDefaultArtifact();
322 protected ResourceRespJavaObject buildResourceJavaObject(ResourceReqDetails resource, RestResponse restResponse,
324 ResourceRespJavaObject resourceObject = new ResourceRespJavaObject();
325 resourceObject = Convertor.constructFieldsForRespValidation(resource, resource.getVersion(), user);
326 resourceObject.setLifecycleState((LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT).toString());
327 resourceObject.setAbstractt("false");
328 resourceObject.setIcon(resource.getIcon().replace(" ", ""));
329 resourceObject.setUniqueId(ResponseParser.getUniqueIdFromResponse(restResponse));
330 return resourceObject;