5a13b67667dd9ea9eca650fa26e7276ada01483f
[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.frontend.ci.tests.datatypes.DataTestIdEnum;
25 import org.onap.sdc.backend.ci.tests.datatypes.ResourceReqDetails;
26 import org.onap.sdc.backend.ci.tests.datatypes.enums.NormativeTypesEnum;
27 import org.onap.sdc.backend.ci.tests.datatypes.enums.ResourceCategoryEnum;
28 import org.onap.sdc.frontend.ci.tests.pages.GeneralPageElements;
29 import org.onap.sdc.frontend.ci.tests.pages.HomePage;
30 import org.onap.sdc.frontend.ci.tests.pages.PropertiesAssignmentPage;
31 import org.onap.sdc.frontend.ci.tests.pages.PropertyNameBuilder;
32 import org.onap.sdc.frontend.ci.tests.utilities.FileHandling;
33 import org.onap.sdc.frontend.ci.tests.utilities.GeneralUIUtils;
34 import org.onap.sdc.frontend.ci.tests.utilities.ResourceUIUtils;
35 import org.onap.sdc.backend.ci.tests.utils.general.ElementFactory;
36 import org.onap.sdc.frontend.ci.tests.verificator.PropertiesAssignmentVerificator;
37 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
38 import org.onap.sdc.backend.ci.tests.datatypes.enums.UserRoleEnum;
39 import org.onap.sdc.frontend.ci.tests.execute.setup.SetupCDTest;
40 import org.onap.sdc.frontend.ci.tests.pages.ResourceGeneralPage;
41 import org.testng.AssertJUnit;
42 import org.testng.annotations.BeforeClass;
43 import org.testng.annotations.BeforeMethod;
44 import org.testng.annotations.Test;
45
46
47 public class PropertiesAssignment extends SetupCDTest {
48
49     private static String filePath;
50     private static String csarFile = "PCRF_OS_FIXED.csar";
51     private static String csarFile1 = "437285.csar";
52
53     @BeforeClass
54     public void beforeClass() {
55         filePath = FileHandling.getFilePath("");
56     }
57
58     @BeforeMethod
59     public void beforeTest() {
60         System.out.println("File repository is : " + filePath);
61         getExtendTest().log(Status.INFO, "File repository is : " + filePath);
62     }
63
64
65     //VF - Simple Properties Tests
66     @Test
67     public void declareAndDeleteInputVfTest() throws Exception {
68
69         String csarTestFile = csarFile;
70         String componentName = "abstract_psm";
71         String propertyName = "service_template_filter";
72
73         ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
74         resourceMetaData.setVersion("0.1");
75         ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, csarTestFile, getUser());
76
77
78         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
79         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
80         PropertiesAssignmentPage.findSearchBoxAndClick(propertyName);
81         PropertiesAssignmentPage.clickOnDeclareButton();
82         GeneralUIUtils.ultimateWait();
83         AssertJUnit.assertTrue(PropertiesAssignmentPage.isPropertyChecked(propertyName));
84
85         PropertiesAssignmentPage.clickOnInputTab();
86         PropertiesAssignmentPage.findInput(componentName, propertyName);
87         PropertiesAssignmentPage.clickOnDeleteInputButton();
88         PropertiesAssignmentPage.clickOnDeleteInputDialogConfirmationButton();
89         PropertiesAssignmentPage.clickOnPropertiesTab();
90         PropertiesAssignmentPage.findProperty(propertyName);
91         AssertJUnit.assertFalse(PropertiesAssignmentPage.isPropertyChecked(propertyName));
92
93
94     }
95
96
97     @Test
98     public void editAndSaveSimplePropertyValueTest() throws Exception {
99
100         String csarTestFile = csarFile;
101         String componentName = "abstract_psm";
102         String propertyNameString = PropertyNameBuilder.buildSimpleField("nfc_function");
103         String propertyNameInt = PropertyNameBuilder.buildSimpleField("index_value");
104         String propertyValueString = "abc";
105         String propertyValueInt = "123";
106
107         //Create VF
108         ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType(
109                 "ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
110         resourceMetaData.setVersion("0.1");
111         ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, csarTestFile, getUser());
112
113         //Navigate to Properties Assignment screen, edit simple properties values and save
114         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
115         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
116         PropertiesAssignmentPage.editPropertyValue(propertyNameString, propertyValueString);
117         PropertiesAssignmentPage.editPropertyValue(propertyNameInt, propertyValueInt);
118         PropertiesAssignmentPage.clickOnSaveButton();
119
120         //Verify that properties values are saved
121         HomePage.navigateToHomePage();
122         GeneralUIUtils.findComponentAndClick(resourceMetaData.getName());
123         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
124         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
125         PropertiesAssignmentVerificator.validatePropertyValue(propertyNameString, propertyValueString);
126         PropertiesAssignmentVerificator.validatePropertyValue(propertyNameInt, propertyValueInt);
127     }
128
129     @Test
130     public void editAndSaveBooleanPropertyValueTest() throws Exception {
131
132         String csarTestFile = csarFile;
133         String componentName = "oam_volume_0";
134         String propertyNameTrue = "value-prop-read_only";
135         String propertyValueTrue = "TRUE";
136         String propertyNameFalse = "value-prop-delete_on_termination";
137         String propertyValueFalse = "FALSE";
138
139         //Create VF
140         ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
141         resourceMetaData.setVersion("0.1");
142         ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, csarTestFile, getUser());
143
144         //Navigate to Properties Assignment screen, edit simple properties values and save from a dialog
145         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
146         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
147         PropertiesAssignmentPage.selectBooleanPropertyValue(propertyNameTrue, propertyValueTrue);
148         PropertiesAssignmentPage.selectBooleanPropertyValue(propertyNameFalse, propertyValueFalse);
149         PropertiesAssignmentPage.clickOnSaveButton();
150
151         //Verify that properties values are saved
152         ResourceGeneralPage.getLeftMenu().moveToDeploymentViewScreen();
153         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
154         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
155         PropertiesAssignmentVerificator.validateBooleanPropertyValue(propertyNameTrue, propertyValueTrue);
156         PropertiesAssignmentVerificator.validateBooleanPropertyValue(propertyNameFalse, propertyValueFalse);
157     }
158
159     @Test
160     public void editAndSavePopupPropertyValueTest() throws Exception {
161 //        Internal bug 391466
162 //            Popup Property: value editing is done in a popup text field, opened by clicking Edit button
163 //        Example: subnetpoolid property
164
165         String csarTestFile = csarFile1;
166         String componentName = "abstract_cif";
167         String propertyName = "port_cif_imsli_port_subnetpoolid";
168         String propertyValue = "updated by designer";
169
170         //Create VF
171         ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType(
172                 "ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
173         resourceMetaData.setVersion("0.1");
174         ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, csarTestFile, getUser());
175
176         //Navigate to Properties Assignment screen, edit popup property value and save
177         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
178         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
179         PropertiesAssignmentPage.clickOnEditButton(propertyName);
180         PropertiesAssignmentPage.editPropertyValue(PropertyNameBuilder.buildSimpleField(propertyName), propertyValue);
181         PropertiesAssignmentPage.clickOnSetButton();
182         PropertiesAssignmentPage.clickOnSaveButton();
183
184         //Verify that popup property value is saved
185         ResourceGeneralPage.getLeftMenu().moveToDeploymentViewScreen();
186         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
187         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
188         PropertiesAssignmentPage.clickOnEditButton(propertyName);
189         PropertiesAssignmentVerificator.validatePropertyValue(PropertyNameBuilder.buildSimpleField(propertyName), propertyValue);
190
191     }
192
193
194     @Test
195     public void editAndDiscardSimplePropertyValueTest() throws Exception {
196
197         String csarTestFile = csarFile;
198         String componentName = "abstract_psm";
199         String propertyNameString = "value-prop-nfc_function";
200         String propertyNameInt = "value-prop-index_value";
201         String propertyValueString = "abc";
202         String propertyValueInt = "123";
203         String propertyOrigValueString = "";
204         String propertyOrigValueInt = "0";
205
206         //Create VF
207         ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
208         resourceMetaData.setVersion("0.1");
209         ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, csarTestFile, getUser());
210
211         //Navigate to Properties Assignment screen, edit simple properties values and discard changes
212         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
213         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
214         PropertiesAssignmentPage.editPropertyValue(propertyNameString, propertyValueString);
215         PropertiesAssignmentPage.editPropertyValue(propertyNameInt, propertyValueInt);
216         PropertiesAssignmentPage.clickOnDiscardButton();
217
218         //Verify that properties values are not saved
219         HomePage.navigateToHomePage();
220         GeneralUIUtils.findComponentAndClick(resourceMetaData.getName());
221         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
222         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
223         PropertiesAssignmentVerificator.validatePropertyValue(propertyNameString, propertyOrigValueString);
224         PropertiesAssignmentVerificator.validatePropertyValue(propertyNameInt, propertyOrigValueInt);
225     }
226
227     @Test
228     public void editAndSaveSimplePropertyFromDialogTest() throws Exception {
229
230         String csarTestFile = csarFile;
231         String componentName = "abstract_psm";
232         String propertyNameString = "value-prop-nfc_function";
233         String propertyNameInt = "value-prop-index_value";
234         String propertyValueString = "abc";
235         String propertyValueInt = "123";
236
237         //Create VF
238         ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
239         resourceMetaData.setVersion("0.1");
240         ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, csarTestFile, getUser());
241
242         //Navigate to Properties Assignment screen, edit simple properties values and save from a dialog
243         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
244         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
245         PropertiesAssignmentPage.editPropertyValue(propertyNameString, propertyValueString);
246         PropertiesAssignmentPage.editPropertyValue(propertyNameInt, propertyValueInt);
247         PropertiesAssignmentPage.clickOnInputTab();
248         PropertiesAssignmentPage.clickOnDialogCancelButton();
249
250         //Verify that properties values are not removed
251         PropertiesAssignmentVerificator.validatePropertyValue(propertyNameString, propertyValueString);
252         PropertiesAssignmentVerificator.validatePropertyValue(propertyNameInt, propertyValueInt);
253
254         PropertiesAssignmentPage.clickOnInputTab();
255         PropertiesAssignmentPage.clickOnDialogSaveButton();
256
257         //Verify that properties values are saved
258         HomePage.navigateToHomePage();
259         GeneralUIUtils.findComponentAndClick(resourceMetaData.getName());
260         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
261         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
262         PropertiesAssignmentVerificator.validatePropertyValue(propertyNameString, propertyValueString);
263         PropertiesAssignmentVerificator.validatePropertyValue(propertyNameInt, propertyValueInt);
264     }
265
266
267     @Test
268     public void editAndDiscardSimplePropertyFromDialogTest() throws Exception {
269
270         String csarTestFile = csarFile;
271         String componentName = "abstract_psm";
272         String propertyNameString = "value-prop-nfc_function";
273         String propertyNameInt = "value-prop-index_value";
274         String propertyValueString = "abc";
275         String propertyValueInt = "123";
276         String propertyOrigValueString = "";
277         String propertyOrigValueInt = "0";
278
279         //Create VF
280         ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
281         resourceMetaData.setVersion("0.1");
282         ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, csarTestFile, getUser());
283
284         //Navigate to Properties Assignment screen, edit simple properties values and save from a dialog
285         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
286         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
287         PropertiesAssignmentPage.editPropertyValue(propertyNameString, propertyValueString);
288         PropertiesAssignmentPage.editPropertyValue(propertyNameInt, propertyValueInt);
289         PropertiesAssignmentPage.clickOnInputTab();
290         PropertiesAssignmentPage.clickOnDialogCancelButton();
291
292         ///Verify that properties values are not removed
293         PropertiesAssignmentVerificator.validatePropertyValue(propertyNameString, propertyValueString);
294         PropertiesAssignmentVerificator.validatePropertyValue(propertyNameInt, propertyValueInt);
295
296         PropertiesAssignmentPage.clickOnInputTab();
297         PropertiesAssignmentPage.clickOnDialogDiscardButton();
298
299         //Verify that properties values are saved
300         HomePage.navigateToHomePage();
301         GeneralUIUtils.findComponentAndClick(resourceMetaData.getName());
302         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
303         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
304         PropertiesAssignmentVerificator.validatePropertyValue(propertyNameString, propertyOrigValueString);
305         PropertiesAssignmentVerificator.validatePropertyValue(propertyNameInt, propertyOrigValueInt);
306     }
307
308
309     @Test
310     public void editAndSaveInputValueTest() throws Exception {
311
312         String csarTestFile = csarFile;
313         String componentName = "abstract_psm";
314         String propertyNameString = "value-input-nf_type";
315         String propertyNameFloat = "value-input-pcm_volume_size_0";
316         String propertyNameBoolean = "value-input-multi_stage_design";
317         String propertyValueString = "POLICY";
318         String propertyValueFloat = "80.1";
319         String propertyValueBoolean = "TRUE";
320
321         //Create VF
322         ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
323         resourceMetaData.setVersion("0.1");
324         ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, csarTestFile, getUser());
325
326         //Navigate to Properties Assignment screen - Inputs
327         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
328         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
329         PropertiesAssignmentPage.clickOnInputTab();
330
331         //Verify that Save button is disabled when inserting invalid value into Input field
332         PropertiesAssignmentPage.editPropertyValue(propertyNameFloat, propertyValueString);
333         AssertJUnit.assertTrue(PropertiesAssignmentPage.isButtonDisabled(DataTestIdEnum.PropertiesAssignmentScreen.SAVE_BUTTON.getValue()));
334
335         //Insert valid values for different Input types and save
336         PropertiesAssignmentPage.editPropertyValue(propertyNameFloat, propertyValueFloat);
337         PropertiesAssignmentPage.editPropertyValue(propertyNameString, propertyValueString);
338         PropertiesAssignmentPage.selectBooleanPropertyValue(propertyNameBoolean, propertyValueBoolean);
339         PropertiesAssignmentPage.clickOnSaveButton();
340
341         //Verify that input values are saved after changing VF version
342         ResourceGeneralPage.clickCheckinButton(resourceMetaData.getName());
343         GeneralUIUtils.findComponentAndClick(resourceMetaData.getName());
344         GeneralPageElements.clickCheckoutButton();
345         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
346         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
347         PropertiesAssignmentPage.clickOnInputTab();
348         PropertiesAssignmentVerificator.validatePropertyValue(propertyNameString, propertyValueString);
349         PropertiesAssignmentVerificator.validatePropertyValue(propertyNameFloat, propertyValueFloat);
350         PropertiesAssignmentVerificator.validateBooleanPropertyValue(propertyNameBoolean, propertyValueBoolean);
351     }
352
353     //VF - List and Map Properties Tests
354
355     @Test
356     public void editAndSaveListPropertyValueTest() throws Exception {
357
358         String csarTestFile = csarFile;
359         String componentName = "abstract_pps";
360         String propertyName = "compute_pps_user_data_format";
361         String propertyListValueZero = "RAW";
362         String propertyListValueOne = "property-value-one";
363         String propertyListValueTwo = "property-value-two";
364
365
366         //Create VF
367         ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
368         resourceMetaData.setVersion("0.1");
369         ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, csarTestFile, getUser());
370
371         //Navigate to Properties Assignment screen, edit "list of strings" properties values and save
372         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
373         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
374         PropertiesAssignmentPage.clickOnAddValueToList(propertyName);
375         PropertiesAssignmentPage.editPropertyValue(PropertyNameBuilder.buildIndexedField(propertyName, 1), propertyListValueOne);
376         PropertiesAssignmentPage.clickOnAddValueToList(propertyName);
377         PropertiesAssignmentPage.editPropertyValue(PropertyNameBuilder.buildIndexedField(propertyName, 2), propertyListValueTwo);
378         PropertiesAssignmentPage.clickOnSaveButton();
379         PropertiesAssignmentPage.clickODeleteValueFromList(propertyName, 1);
380         PropertiesAssignmentPage.clickOnSaveButton();
381
382         //Verify that properties values are saved
383         ResourceGeneralPage.clickCheckinButton(resourceMetaData.getName());
384         GeneralUIUtils.findComponentAndClick(resourceMetaData.getName());
385         GeneralPageElements.clickCheckoutButton();
386         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
387         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
388         PropertiesAssignmentVerificator.validatePropertyValue(PropertyNameBuilder.buildIndexedField(propertyName, 0), propertyListValueZero);
389         PropertiesAssignmentVerificator.validatePropertyValue(PropertyNameBuilder.buildIndexedField(propertyName, 1), propertyListValueTwo);
390
391
392         //Declare property as input, delete input
393         PropertiesAssignmentPage.findSearchBoxAndClick(propertyName);
394         PropertiesAssignmentPage.clickOnDeclareButton();
395         AssertJUnit.assertTrue(PropertiesAssignmentPage.isPropertyChecked(propertyName));
396
397         PropertiesAssignmentPage.clickOnInputTab();
398         PropertiesAssignmentPage.findInput(componentName, propertyName);
399         PropertiesAssignmentPage.clickOnDeleteInputButton();
400         PropertiesAssignmentPage.clickOnDeleteInputDialogConfirmationButton();
401         PropertiesAssignmentPage.clickOnPropertiesTab();
402         PropertiesAssignmentPage.findProperty(propertyName);
403         AssertJUnit.assertFalse(PropertiesAssignmentPage.isPropertyChecked(propertyName));
404     }
405
406     @Test
407     public void editAndSaveListOfComplexPropertyValueTest() throws Exception {
408
409         //External Defect 437285 - PLEASE DON'T DELETE THE TEST!!!!
410
411         String csarTestFile = csarFile1;
412         String componentName = "abstract_cdi";
413         String propertyName = "port_cdi_imscore_port_ip_requirements";
414         String nestedPropertyName = "ip_count";
415         String propertyListValue = "12345";
416
417         //Create VF
418         ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
419         resourceMetaData.setVersion("0.1");
420         ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, csarTestFile, getUser());
421
422         //Navigate to Properties Assignment screen, edit "list of strings" properties values and save
423         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
424         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
425         PropertiesAssignmentPage.clickOnAddValueToList(propertyName);
426         PropertiesAssignmentPage.editPropertyValue(PropertyNameBuilder.buildIComplexListField(propertyName, nestedPropertyName, 1), propertyListValue);
427         PropertiesAssignmentPage.clickOnSaveButton();
428         PropertiesAssignmentPage.clickOnExpandButton(propertyName, 1);
429         PropertiesAssignmentPage.deletePropertyValue(PropertyNameBuilder.buildIComplexListField(propertyName, nestedPropertyName, 1));
430         PropertiesAssignmentPage.clickOnSaveButton();
431
432         //Verify that properties values are saved
433         HomePage.navigateToHomePage();
434         GeneralUIUtils.findComponentAndClick(resourceMetaData.getName());
435         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
436         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
437         PropertiesAssignmentPage.clickOnExpandButton(propertyName, 1);
438         PropertiesAssignmentVerificator.validatePropertyValue(PropertyNameBuilder.buildIComplexListField(propertyName, nestedPropertyName, 1), "");
439
440
441     }
442
443
444     @Test
445     public void editAndSaveMapPropertyValueTest() throws Exception {
446
447         String csarTestFile = csarFile;
448         String componentName = "oam_volume_0";
449         String propertyName = "metadata";
450         String propertyMapKeyOne = "KEY1";
451         String propertyMapValueOne = "property-value-one";
452         String propertyMapKeyTwo = "KEY2";
453         String propertyMapValueTwo = "property-value-two";
454
455         //Create VF
456         ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
457         resourceMetaData.setVersion("0.1");
458         ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, csarTestFile, getUser());
459
460         //Navigate to Properties Assignment screen, edit "map of strings" properties values and save
461         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
462         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
463         PropertiesAssignmentPage.clickOnAddValueToList(propertyName);
464         PropertiesAssignmentPage.editPropertyValue(PropertyNameBuilder.buildIndexedField(propertyName, 0), propertyMapValueOne);
465
466
467         //Verify that Save and Declare buttons are disabled when leaving Key value empty
468         AssertJUnit.assertTrue(PropertiesAssignmentPage.isButtonDisabled(DataTestIdEnum.PropertiesAssignmentScreen.SAVE_BUTTON.getValue()));
469         AssertJUnit.assertTrue(PropertiesAssignmentPage.isButtonDisabled(DataTestIdEnum.PropertiesAssignmentScreen.DECLARE_BUTTON.getValue()));
470
471         PropertiesAssignmentPage.editPropertyValue(PropertyNameBuilder.buildIndexedKeyField(propertyName, 0), propertyMapKeyOne);
472         PropertiesAssignmentPage.clickOnSaveButton();
473         PropertiesAssignmentPage.clickOnAddValueToList(propertyName);
474         PropertiesAssignmentPage.editPropertyValue(PropertyNameBuilder.buildIndexedKeyField(propertyName, 1), propertyMapKeyTwo);
475         PropertiesAssignmentPage.editPropertyValue(PropertyNameBuilder.buildIndexedField(propertyName, 1), propertyMapValueTwo);
476         PropertiesAssignmentPage.clickODeleteValueFromList(propertyName, 0);
477         PropertiesAssignmentPage.clickOnSaveButton();
478
479         //Verify that properties values are saved
480         ResourceGeneralPage.clickCheckinButton(resourceMetaData.getName());
481         GeneralUIUtils.findComponentAndClick(resourceMetaData.getName());
482         GeneralPageElements.clickCheckoutButton();
483         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
484         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
485         PropertiesAssignmentVerificator.validatePropertyValue(PropertyNameBuilder.buildIndexedKeyField(propertyName, 0), propertyMapKeyTwo);
486         PropertiesAssignmentVerificator.validatePropertyValue(PropertyNameBuilder.buildIndexedField(propertyName, 0), propertyMapValueTwo);
487
488         //Declare property as input, delete input
489         PropertiesAssignmentPage.findSearchBoxAndClick(propertyName);
490         PropertiesAssignmentPage.clickOnDeclareButton();
491         AssertJUnit.assertTrue(PropertiesAssignmentPage.isPropertyChecked(propertyName));
492
493         PropertiesAssignmentPage.clickOnInputTab();
494         PropertiesAssignmentPage.findInput(componentName, propertyName);
495         PropertiesAssignmentPage.clickOnDeleteInputButton();
496         PropertiesAssignmentPage.clickOnDeleteInputDialogConfirmationButton();
497         PropertiesAssignmentPage.clickOnPropertiesTab();
498         PropertiesAssignmentPage.findProperty(propertyName);
499         AssertJUnit.assertFalse(PropertiesAssignmentPage.isPropertyChecked(propertyName));
500     }
501
502
503     //VF - Complex Properties Tests
504     @Test
505     public void editAndSaveComplexPropertyValueTest() throws Exception {
506
507         String csarTestFile = csarFile;
508         String componentName = "abstract_psm";
509         String propertyName = "service_template_filter";
510         String propertyNameString = "substitute_service_template";
511         String propertyNameInt = "index_value";
512         String propertyNameBoolean = "scaling_enabled";
513         String propertyValueString = "Modified_psmServiceTemplate.yaml";
514         String propertyValueInt = "2147483647";
515         String propertyValueBoolean = "FALSE";
516
517         //Create VF
518         ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
519         resourceMetaData.setVersion("0.1");
520         ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, csarTestFile, getUser());
521
522         //Navigate to Properties Assignment screen, edit simple properties values and save
523         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
524         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
525         PropertiesAssignmentPage.editPropertyValue(PropertyNameBuilder.buildIComplexField(propertyName, propertyNameString), propertyValueString);
526         PropertiesAssignmentPage.editPropertyValue(PropertyNameBuilder.buildIComplexField(propertyName, propertyNameInt), propertyValueInt);
527         PropertiesAssignmentPage.selectBooleanPropertyValue(PropertyNameBuilder.buildIComplexField(propertyName, propertyNameBoolean), propertyValueBoolean);
528         PropertiesAssignmentPage.clickOnSaveButton();
529
530         //Verify that properties values are saved
531         ResourceGeneralPage.clickCheckinButton(resourceMetaData.getName());
532         GeneralUIUtils.findComponentAndClick(resourceMetaData.getName());
533         GeneralPageElements.clickCheckoutButton();
534         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
535         PropertiesAssignmentPage.clickOnComponentInComposition(componentName);
536         PropertiesAssignmentVerificator.validatePropertyValue(PropertyNameBuilder.buildIComplexField(propertyName, propertyNameString), propertyValueString);
537         PropertiesAssignmentVerificator.validatePropertyValue(PropertyNameBuilder.buildIComplexField(propertyName, propertyNameInt), propertyValueInt);
538         PropertiesAssignmentVerificator.validateBooleanPropertyValue(PropertyNameBuilder.buildIComplexField(propertyName, propertyNameBoolean), propertyValueBoolean);
539
540         //Select complex property and declare as input
541         PropertiesAssignmentPage.findSearchBoxAndClick(propertyName);
542         PropertiesAssignmentPage.clickOnDeclareButton();
543         PropertiesAssignmentVerificator.validatePropertyValue(PropertyNameBuilder.buildSimpleField(propertyName), PropertyNameBuilder.buildVfDeclaredPropValue(componentName, propertyName));
544     }
545
546
547     //VF - Filter Tests
548     @Test
549     public void filterAllVfTest() throws Exception {
550         final int propertiesCountFilter = 22;
551         int propertiesCountWithoutFilter;
552
553         String csarTestFile = csarFile;
554         String propertyName = "name";
555         String propertyLocation = DataTestIdEnum.PropertiesAssignmentScreen.PROPERTY_NAME_COLUMN.getValue();
556
557         ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
558         resourceMetaData.setVersion("0.1");
559         ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, csarTestFile, getUser());
560
561
562         ResourceGeneralPage.getLeftMenu().moveToPropertiesAssignmentScreen();
563         //Count current properties number before filter is applied
564         propertiesCountWithoutFilter = GeneralUIUtils.getWebElementsListByContainsClassName(propertyLocation).size();
565         PropertiesAssignmentPage.clickOnFilterButton();
566         PropertiesAssignmentPage.clickOnFilterAllCheckbox();
567         PropertiesAssignmentPage.findFilterBoxAndClick(propertyName);
568         PropertiesAssignmentPage.clickOnFilterApplyButton();
569         PropertiesAssignmentVerificator.validateFilteredPropertiesCount(propertiesCountFilter, propertyLocation);
570
571         PropertiesAssignmentPage.clickOnFilterClearAllButton();
572         PropertiesAssignmentVerificator.validateFilteredPropertiesCount(propertiesCountWithoutFilter, propertyLocation);
573     }
574
575     @Override
576     protected UserRoleEnum getRole() {
577         return UserRoleEnum.DESIGNER;
578     }
579
580 }
581