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