[sdc] update code of sdc
[sdc.git] / ui-ci / src / main / java / org / openecomp / sdc / ci / tests / execute / sanity / Service.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 static org.testng.AssertJUnit.assertTrue;
24
25 import java.awt.AWTException;
26 import java.io.File;
27 import java.util.Arrays;
28 import java.util.List;
29
30 import org.openecomp.sdc.be.dao.api.ActionStatus;
31 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
32 import org.openecomp.sdc.be.model.LifecycleStateEnum;
33 import org.openecomp.sdc.ci.tests.datatypes.ArtifactInfo;
34 import org.openecomp.sdc.ci.tests.datatypes.TopMenuButtonsEnum;
35 import org.openecomp.sdc.ci.tests.datatypes.CanvasElement;
36 import org.openecomp.sdc.ci.tests.datatypes.CanvasManager;
37 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum;
38 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.CompositionScreenEnum;
39 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.ServiceMetadataEnum;
40 import org.openecomp.sdc.ci.tests.datatypes.LifeCycleStateEnum;
41 import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
42 import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
43 import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
44 import org.openecomp.sdc.ci.tests.datatypes.enums.NormativeTypesEnum;
45 import org.openecomp.sdc.ci.tests.datatypes.enums.ResourceCategoryEnum;
46 import org.openecomp.sdc.ci.tests.datatypes.enums.ServiceCategoriesEnum;
47 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
48 import org.openecomp.sdc.ci.tests.execute.setup.SetupCDTest;
49 import org.openecomp.sdc.ci.tests.pages.CompositionPage;
50 import org.openecomp.sdc.ci.tests.pages.DeploymentArtifactPage;
51 import org.openecomp.sdc.ci.tests.pages.DeploymentPage;
52 import org.openecomp.sdc.ci.tests.pages.GeneralPageElements;
53 import org.openecomp.sdc.ci.tests.pages.InputsPage;
54 import org.openecomp.sdc.ci.tests.pages.ResourceGeneralPage;
55 import org.openecomp.sdc.ci.tests.pages.ServiceGeneralPage;
56 import org.openecomp.sdc.ci.tests.pages.TesterOperationPage;
57 import org.openecomp.sdc.ci.tests.utilities.ArtifactUIUtils;
58 import org.openecomp.sdc.ci.tests.utilities.CatalogUIUtilitis;
59 import org.openecomp.sdc.ci.tests.utilities.FileHandling;
60 import org.openecomp.sdc.ci.tests.utilities.GeneralUIUtils;
61 import org.openecomp.sdc.ci.tests.utilities.ResourceUIUtils;
62 import org.openecomp.sdc.ci.tests.utilities.ServiceUIUtils;
63 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
64 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
65 import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
66 import org.openecomp.sdc.ci.tests.verificator.DeploymentViewVerificator;
67 import org.openecomp.sdc.ci.tests.verificator.ServiceVerificator;
68 import org.openecomp.sdc.ci.tests.verificator.VfVerificator;
69 import org.openqa.selenium.By;
70 import org.openqa.selenium.WebElement;
71 import org.testng.AssertJUnit;
72 import org.testng.SkipException;
73 import org.testng.TestException;
74 import org.testng.annotations.BeforeMethod;
75 import org.testng.annotations.Test;
76
77 import com.aventstack.extentreports.Status;
78
79 public class Service extends SetupCDTest {
80         
81         private static final String DESCRIPTION = "kuku";
82         private static final String ARTIFACT_LABEL = "artifact3";
83         private static final String ARTIFACT_LABEL_UPDATE = "artifactUpdate";
84         private static final String GET_ARTIFACT_LIST_BY_CLASS_NAME = "i-sdc-designer-sidebar-section-content-item-artifact";
85         private static final String HEAT_FILE_YAML_NAME = "Heat-File.yaml";
86         private static final String HEAT_FILE_YAML_UPDATE_NAME = "Heat-File-Update.yaml";
87         private String filePath;
88         
89         @BeforeMethod
90         public void beforeTest(){
91                 filePath = FileHandling.getFilePath("");
92         }
93
94         
95         @Test
96         public void createService() throws Exception {          
97                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
98                 ServiceUIUtils.createService(serviceMetadata, getUser());       
99         }
100         
101         @Test
102         public void validDefaultContactAndTagAfterCreateService() throws Exception{
103                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
104                 ServiceUIUtils.createServiceWithDefaultTagAndUserId(serviceMetadata, getUser());
105                 
106                 assertTrue("wrong userId", getUser().getUserId().equals(ResourceGeneralPage.getContactIdText()));
107                 
108                 List<String> actualTags = Arrays.asList(ServiceGeneralPage.getTags());
109                 assertTrue("wrong tags", (actualTags.size() == 1) && actualTags.get(0).equals(serviceMetadata.getName()));
110         }
111         
112         @Test
113         public void updateService() throws Exception {
114                 // Create Service
115                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
116                 ServiceUIUtils.createService(serviceMetadata, getUser());
117                 
118         // Update Service
119                 ServiceGeneralPage.deleteOldTags(serviceMetadata);
120                 serviceMetadata.setName("ciUpdatedNameSanity");
121                 serviceMetadata.setDescription("updatedDescriptionSanity");
122                 serviceMetadata.setProjectCode("654321");
123                 serviceMetadata.setContactId("cs6543");
124                 serviceMetadata.getTags().addAll(Arrays.asList("updatedTag", "oneMoreUpdatedTag", "lastOne UpdatedTag"));
125                 ServiceUIUtils.setServiceCategory(serviceMetadata, ServiceCategoriesEnum.VOIP);
126                 ServiceUIUtils.fillServiceGeneralPage(serviceMetadata, getUser());
127                 GeneralPageElements.clickCreateButton();
128                 
129                 ServiceVerificator.verifyServiceUpdatedInUI(serviceMetadata);   
130         }
131         
132         @Test
133         public void deleteService() throws Exception {
134                 
135                 // create service
136                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
137                 ServiceUIUtils.createService(serviceMetadata, getUser());
138                 
139                 // Delete service
140                 //GeneralUIUtils.HighlightMyElement(GeneralUIUtils.getWebButton("delete_version"));
141                 GeneralPageElements.clickTrashButtonAndConfirm();
142                 
143                 // Verification
144                 CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG);
145                 CatalogUIUtilitis.catalogSearchBox(serviceMetadata.getName());
146                 ServiceVerificator.verifyServiceDeletedInUI(serviceMetadata);   
147         }
148         
149         @Test
150         public void checkoutServiceTest() throws Exception{
151                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
152                 ServiceUIUtils.createService(serviceMetadata, getUser());
153                 
154         ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
155                 
156                 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,"OTHER");
157                 CompositionPage.showDeploymentArtifactTab();
158                 CompositionPage.clickAddArtifactButton();
159                 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
160                 
161                 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
162                 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
163                 GeneralPageElements.clickCheckoutButton();
164                 
165                 serviceMetadata.setVersion("0.2");
166                 ServiceVerificator.verifyServiceLifecycle(serviceMetadata, getUser(), LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
167                 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CHECKOUT);
168                 ServiceVerificator.verifyVersionUI(serviceMetadata.getVersion());
169                 
170                 ResourceGeneralPage.clickSubmitForTestingButton(serviceMetadata.getName());
171                 
172                 reloginWithNewRole(UserRoleEnum.TESTER);
173                 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
174                 TesterOperationPage.certifyComponent(serviceMetadata.getName());
175                 
176                 reloginWithNewRole(UserRoleEnum.DESIGNER);
177                 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
178                 ResourceGeneralPage.clickCheckoutButton();
179                 
180                 serviceMetadata.setVersion("1.1");
181                 serviceMetadata.setUniqueId(null);
182                 ServiceVerificator.verifyServiceLifecycle(serviceMetadata, getUser(), LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
183                 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CHECKOUT);
184                 ServiceVerificator.verifyVersionUI(serviceMetadata.getVersion());
185         }
186         
187         @Test
188         public void submitServiceForTestingWithNonCertifiedAsset() throws Exception{
189
190                 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
191                 ResourceUIUtils.createResource(atomicResourceMetaData, getUser());
192                 ResourceGeneralPage.clickSubmitForTestingButton(atomicResourceMetaData.getName());
193                 
194                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
195                 ServiceUIUtils.createService(serviceMetadata, getUser());
196                 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
197                 CanvasManager canvasManager = CanvasManager.getCanvasManager();
198                 CompositionPage.searchForElement(atomicResourceMetaData.getName());
199                 canvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
200                 
201                 try{
202                         CompositionPage.clickSubmitForTestingButton(serviceMetadata.getName());
203                         assert(false);
204                 }
205                 catch(Exception e){
206                         String errorMessage = GeneralUIUtils.getWebElementByClassName("w-sdc-modal-caption").getText();
207                         String checkUIResponseOnError = ErrorValidationUtils.checkUIResponseOnError(ActionStatus.VALIDATED_RESOURCE_NOT_FOUND.name());
208                         assertTrue(errorMessage.contains(checkUIResponseOnError));      
209                 }
210                 finally{
211                         ResourceRestUtils.deleteResourceByNameAndVersion(atomicResourceMetaData.getName(), "0.1");
212                 }
213                 
214         }
215         
216         @Test
217         public void addDeploymentArtifactInCompositionScreenTest() throws Exception{
218                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
219                 ServiceUIUtils.createService(serviceMetadata, getUser());
220                 
221                 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
222                 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,"OTHER");
223                 CompositionPage.showDeploymentArtifactTab();
224                 CompositionPage.clickAddArtifactButton();
225                 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
226                 
227                 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
228                 AssertJUnit.assertEquals(1, actualArtifactList.size());
229                 
230                 for(WebElement actualArtifactFileName : CompositionPage.getAllAddedArtifacts()){
231                         assertTrue(HEAT_FILE_YAML_NAME.equals(actualArtifactFileName.getText()));
232                 }                               
233                 
234         }
235         
236         @Test
237         public void addInformationArtifactInCompositionScreenTest() throws Exception{
238                 String fileName        = HEAT_FILE_YAML_NAME;
239                 String descriptionText = DESCRIPTION;
240                 
241                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
242                 ServiceUIUtils.createService(serviceMetadata, getUser());
243                 
244                 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
245                 ArtifactInfo artifactInfo = new ArtifactInfo(filePath, fileName, descriptionText, ARTIFACT_LABEL,"OTHER");
246                 CompositionPage.showInformationArtifactTab();
247                 List<WebElement> beforeArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
248                 CompositionPage.clickAddArtifactButton();
249                 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifactInfo, CompositionPage.artifactPopup());
250                 
251                 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
252                 assertTrue(String.format("Wrong number of artifacts, Expected: %s Actual: %s", beforeArtifactList.size() + 1, actualArtifactList.size()),
253                                                                                                   (beforeArtifactList.size() + 1) == actualArtifactList.size());
254                 for(DataTestIdEnum.InformationalArtifactsService artifact: DataTestIdEnum.InformationalArtifactsService.values()){
255                         ArtifactUIUtils.fillPlaceHolderInformationalArtifact(artifact, filePath, fileName, descriptionText);
256                 }
257             int numberOfFiles = CompositionPage.getAllAddedArtifacts().size();
258             assertTrue(String.format("Wrong number of artifacts, Expected: %s Actual: %s", (beforeArtifactList.size() + 1), numberOfFiles), (beforeArtifactList.size() + 1) == numberOfFiles);
259             
260             for(WebElement actualArtifactFileName : CompositionPage.getAllAddedArtifacts()){
261                         assertTrue(fileName.equals(actualArtifactFileName.getText()));
262                 }
263             
264         }
265         
266         @Test
267         public void addAPIArtifactInCompositionScreenTest() throws Exception{
268                 
269                 if(true){
270                         throw new SkipException("Open bug 292017");                     
271                 }
272                 
273                 String fileName        = HEAT_FILE_YAML_NAME,
274                            descriptionText = DESCRIPTION,
275                        url             = "http://kuku.com";
276                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
277                 ServiceUIUtils.createService(serviceMetadata, getUser());
278                 
279                 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
280                 ArtifactInfo artifactInfo = new ArtifactInfo(filePath, fileName, descriptionText, ARTIFACT_LABEL,"OTHER");
281                 CompositionPage.showAPIArtifactTab();
282
283                 for(DataTestIdEnum.APIArtifactsService artifact: DataTestIdEnum.APIArtifactsService.values()){
284                         ArtifactUIUtils.fillPlaceHolderAPIArtifact(artifact, filePath, fileName, descriptionText, url);
285                 }
286             int numberOfFiles = CompositionPage.getAllAddedArtifacts().size(),
287             numberOfPlacehoders = DataTestIdEnum.APIArtifactsService.values().length;
288             assertTrue(String.format("Wrong file count, should be %s files", numberOfPlacehoders), numberOfPlacehoders  == numberOfFiles);
289             
290             for(WebElement actualArtifactFileName : CompositionPage.getAllAddedArtifacts()){
291                         assertTrue(fileName.equals(actualArtifactFileName.getText()));
292                 }
293         }
294         
295         @Test
296         public void ManagmentWorkflowTest() throws Exception{
297                 
298                 if(true){
299                         throw new SkipException("Open bug 287416");                     
300                 }
301                 
302                 String descriptionText     = DESCRIPTION,
303                            descriptionTextEdit = "kuku2";
304
305                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
306                 ServiceUIUtils.createService(serviceMetadata, getUser());
307                 
308                 ServiceGeneralPage.getServiceLeftMenu().moveToManagmentWorkflow();
309                 ServiceGeneralPage.fillAndAddNewWorkflow(descriptionText, descriptionText);
310                 ServiceVerificator.verifyManagmentWorkflow(descriptionText, descriptionText);
311                 
312                 ServiceGeneralPage.clickAddWorkflow();
313                 ServiceGeneralPage.fillAndAddNewWorkflow(descriptionTextEdit, descriptionTextEdit);
314         }
315         
316         @Test
317         public void deleteChangeVersionTest() throws Exception{
318                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
319                 ServiceUIUtils.createService(serviceMetadata, getUser());
320                 
321         ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
322                 
323                 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,"OTHER");
324                 CompositionPage.showDeploymentArtifactTab();
325                 CompositionPage.clickAddArtifactButton();
326                 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
327                 
328                 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
329                 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
330                 GeneralPageElements.clickCheckoutButton();
331                 
332                 changeDeleteAndValidateVersionOnGeneralPage("0.1", "0.2", serviceMetadata.getName());
333                 
334                 GeneralPageElements.clickCheckoutButton();              
335                 ResourceGeneralPage.clickSubmitForTestingButton(serviceMetadata.getName());
336                 
337                 reloginWithNewRole(UserRoleEnum.TESTER);
338                 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
339                 TesterOperationPage.certifyComponent(serviceMetadata.getName());
340                 
341                 reloginWithNewRole(UserRoleEnum.DESIGNER);
342                 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
343                 ResourceGeneralPage.clickCheckoutButton();
344                 
345                 changeDeleteAndValidateVersionOnGeneralPage("1.0", "1.1", serviceMetadata.getName());
346         }
347         
348         @Test
349         public void compositionScreenRightSideButtonsTest() throws Exception{
350                 
351                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
352                 ServiceUIUtils.createService(serviceMetadata, getUser());
353                 
354                 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
355                 
356                 CompositionPage.showInformationTab();
357                 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.INFORMATION);
358                 
359                 //feature removed from UI
360 //              CompositionPage.showCompositionTab();
361 //              ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.COMPOSITION);
362                 
363                 CompositionPage.showDeploymentArtifactTab();
364                 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.DEPLOYMENT_ARTIFACT_TAB);
365                 
366                 CompositionPage.showInputsTab();
367                 assertTrue(CompositionPage.getOpenTabTitle().size() == 0);                              
368                 
369                 CompositionPage.showAPIArtifactTab();
370                 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.API);
371                 
372                 CompositionPage.showInformationArtifactTab();
373                 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.INFORMATION_ARTIFACTS);
374                 
375         }
376         
377         @Test
378         public void addDeploymentArtifactToVFInstanceTest() throws Exception{
379                 
380                 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
381                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
382                 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
383                 
384                 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
385                 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
386                 checkInService(serviceMetadata);
387                 clickOncanvasElement(computeElement);
388                 CompositionPage.showDeploymentArtifactTab();
389                 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);                           
390         }
391
392         @Test
393         public void deleteDeploymentArtifactFromVFInstanceTest() throws Exception{
394                 
395                 if(true){
396                         throw new SkipException("Open bug 300513");                     
397                 }
398                 
399                 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
400                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
401                 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
402                 
403                 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
404                 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
405                 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
406                 deleteAndVerifyArtifact(actualArtifactList);
407                 
408         }
409         
410         @Test
411         public void deleteDeploymentArtifactFromVFInstanceNextVersionTest() throws Exception{
412                 
413                 if(true){
414                         throw new SkipException("Open bug 300513");                     
415                 }
416                 
417                 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
418                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
419                 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
420                 
421                 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
422                 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
423                 checkInService(serviceMetadata);
424                 ResourceGeneralPage.clickCheckoutButton();
425                 clickOncanvasElement(computeElement);
426                 CompositionPage.showDeploymentArtifactTab();
427                 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
428                 deleteAndVerifyArtifact(actualArtifactList);
429 //              change container version
430                 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.GeneralElementsEnum.VERSION_HEADER.getValue());
431                 GeneralPageElements.selectVersion("V0.1");
432                 clickOncanvasElement(computeElement);
433                 CompositionPage.showDeploymentArtifactTab();
434                 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
435                 
436         }
437
438 //      service version V0.1 default artifact, service version V0.2 updated artifact    
439         @Test
440         public void updateDeploymentArtifactOnVFInstanceNextVersionTest() throws Exception{
441                 
442                 if(true){
443                         throw new SkipException("Open bug 300513");                     
444                 }
445                 
446                 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
447                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
448                 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
449                 ArtifactInfo artifactUpdate = new ArtifactInfo(filePath, HEAT_FILE_YAML_UPDATE_NAME, DESCRIPTION, ARTIFACT_LABEL_UPDATE,ArtifactTypeEnum.DCAE_INVENTORY_DOC.getType());
450                 
451                 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
452                 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
453                 checkInService(serviceMetadata);
454                 ResourceGeneralPage.clickCheckoutButton();
455                 clickOncanvasElement(computeElement);
456                 CompositionPage.showDeploymentArtifactTab();
457                 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
458                 deleteAndVerifyArtifact(actualArtifactList);
459 //              upload new artifact
460                 addDeploymentArtifact(artifactUpdate, CanvasManager.getCanvasManager(), computeElement);
461                 checkArtifactIfAdded(1, HEAT_FILE_YAML_UPDATE_NAME);
462 //              change container version
463                 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.GeneralElementsEnum.VERSION_HEADER.getValue());
464                 GeneralPageElements.selectVersion("V0.1");
465                 clickOncanvasElement(computeElement);
466                 CompositionPage.showDeploymentArtifactTab();
467                 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
468                 
469         }
470         
471         public void clickOncanvasElement(CanvasElement computeElement) {
472                 CanvasManager canvasManager = CanvasManager.getCanvasManager();
473                 canvasManager.clickOnCanvaElement(computeElement);
474         }
475
476         public void checkInService(ServiceReqDetails serviceMetadata) throws Exception {
477                 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
478                 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
479                 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
480         }
481
482         public static void deleteAndVerifyArtifact(List<WebElement> actualArtifactList) {
483                 if (actualArtifactList.size()>0){
484                         GeneralUIUtils.hoverOnAreaByTestId(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.ARTIFACT_ITEM.getValue() + ARTIFACT_LABEL);
485                         SetupCDTest.getExtendTest().log(Status.INFO, "Going to delete "  +  HEAT_FILE_YAML_NAME + " artifact" + " and check if deleted");
486                         GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.DELETE.getValue() + ARTIFACT_LABEL);
487                         GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.ModalItems.OK.getValue());
488                         assertTrue("Artifact does not deleted", !GeneralUIUtils.waitForElementInVisibilityByTestId(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME)));
489                 }
490         }
491
492
493         public void checkArtifactIfAdded(Integer expectedNumOfARtifacts, String expectedArtifactName) {
494                 
495                 List<WebElement> actualArtifactList;
496                 actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
497                 assertTrue("Expected artifact count is: " + expectedNumOfARtifacts + ", but was " + actualArtifactList.size(),expectedNumOfARtifacts==actualArtifactList.size());
498                 
499                 if(expectedNumOfARtifacts != 0){
500                         for(WebElement actualArtifactFileName : CompositionPage.getAllAddedArtifacts()){
501                                 assertTrue("Artifact name does not match, expected " + expectedArtifactName + ", but was " + actualArtifactFileName.getText(), expectedArtifactName.equals(actualArtifactFileName.getText()));
502                         }
503                 }
504                 
505         }
506
507
508         public CanvasElement createServiceWithRiArtifact(ResourceReqDetails atomicResourceMetaData, ServiceReqDetails serviceMetadata, ArtifactInfo artifact) throws Exception, AWTException {
509                 ResourceUIUtils.createResource(atomicResourceMetaData, getUser());
510                 ResourceGeneralPage.clickSubmitForTestingButton(atomicResourceMetaData.getName());
511                 
512                 ServiceUIUtils.createService(serviceMetadata, getUser());
513                 
514                 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
515                 CanvasManager canvasManager = CanvasManager.getCanvasManager();
516                 CompositionPage.searchForElement(atomicResourceMetaData.getName());
517                 CanvasElement computeElement = canvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
518                 addDeploymentArtifact(artifact, canvasManager, computeElement);
519                 
520                 return computeElement;
521         }
522
523
524         public void addDeploymentArtifact(ArtifactInfo artifact, CanvasManager canvasManager, CanvasElement computeElement) throws Exception {
525                 canvasManager.clickOnCanvaElement(computeElement);
526                 CompositionPage.showDeploymentArtifactTab();
527                 CompositionPage.clickAddArtifactButton();
528                 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
529         }
530         
531         @Test
532         public void isDisabledAndReadOnlyInCheckin() throws Exception{
533                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
534                 ServiceUIUtils.createService(serviceMetadata, getUser());
535                 GeneralPageElements.clickCheckinButton(serviceMetadata.getName());
536                 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
537                 
538                 ServiceMetadataEnum[] fieldsForCheck = {ServiceMetadataEnum.SERVICE_NAME,
539                                                         ServiceMetadataEnum.CONTACT_ID,
540                                                         ServiceMetadataEnum.DESCRIPTION,
541                                                         ServiceMetadataEnum.PROJECT_CODE,
542                                                         ServiceMetadataEnum.TAGS};
543                 for (ServiceMetadataEnum field: fieldsForCheck){
544                         assertTrue(GeneralUIUtils.isElementReadOnly(field.getValue()));
545                 }
546                 
547                 assertTrue(GeneralUIUtils.isElementDisabled(ServiceMetadataEnum.CATEGORY.getValue()));
548                 assertTrue(GeneralUIUtils.isElementDisabled(DataTestIdEnum.LifeCyleChangeButtons.CREATE.getValue()));
549         }
550         
551         // future removed from ui
552     @Test(enabled = false)
553         public void inputsTest() throws Exception{
554                 String fileName = "service_input_test_VF2.csar";
555                 
556                 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());          
557                 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName, getUser());
558                 GeneralPageElements.clickCheckinButton(resourceMetaData.getName());
559                 
560                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
561                 ServiceUIUtils.createService(serviceMetadata, getUser());
562                 
563                 String selectedInstanceName = addResourceToServiceInCanvas(resourceMetaData);
564                 
565                 GeneralUIUtils.clickOnElementByTestId("breadcrumbs-button-1");
566                 DeploymentArtifactPage.getLeftMenu().moveToInputsScreen();
567                 
568                 InputsPage.addInputToService(selectedInstanceName, "volume_id");
569                 InputsPage.deleteServiceInput(selectedInstanceName, "volume_id");
570                 
571                 // Trying to find deleted service input
572                 try{
573                         InputsPage.getServiceInput(selectedInstanceName, "volume_id");
574                         assert(false);
575                 }
576                 catch(TestException e){ 
577                 }
578         }
579         
580         @Test
581         public void deploymentViewServiceTest() throws Exception{
582                 
583                 if(true){
584                         throw new SkipException("Open bug 295220, 295180");                     
585                 }
586                 
587                 String fileName2 = "vSeGW.csar";
588                 
589                 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
590                 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
591                 ResourceGeneralPage.clickCheckinButton(resourceMetaData.getName());
592                 
593                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
594                 ServiceUIUtils.createService(serviceMetadata, getUser());
595                 
596                 addResourceToServiceInCanvas(resourceMetaData);
597         
598                 GeneralUIUtils.clickOnElementByTestId("breadcrumbs-button-1");
599                 DeploymentArtifactPage.getLeftMenu().moveToDeploymentViewScreen();
600                 
601                 serviceMetadata.setVersion("0.1");
602                 List<WebElement> instanceRowsFromTable = GeneralUIUtils.getElementsByCSS("div[data-tests-id^='hierarchy-instance'] span[class^='expand-collapse-title-text']");
603                 for(WebElement instanceRow: instanceRowsFromTable){
604                         String instanceRowText = instanceRow.getText();
605                         List<WebElement> instanceModulesList = DeploymentPage.getInstanceModulesList(instanceRowText);
606                         for (WebElement instanceModule: instanceModulesList){
607                                 String instanceModuleText = instanceModule.getText();
608                                 ResourceUIUtils.clickOnElementByText(instanceModuleText, "instance");
609                                                                 
610                                 ServiceVerificator.verifyDeploymentPageSubElements(instanceModuleText.split("\\.\\.")[1], new DeploymentViewVerificator(filePath + fileName2));
611                                 
612                                 ServiceVerificator.verifyDisabledServiceProperties();
613                                 String isBaseValue = ServiceVerificator.getVFModulePropertieValue(serviceMetadata, "isBase", instanceModuleText);
614                                 if (isBaseValue.equals("false"))
615                                         ServiceVerificator.verifyEnabledServiceProperties();
616                                 
617                                 ResourceUIUtils.clickOnElementByText(instanceModuleText, "instance");
618                         }                                                                                               
619                 }                       
620         }
621         
622         @Test
623         public void vfModuleCustomizationUUIDServiceTest() throws Exception{
624                 String fileName2 = "vSeGW.csar";
625                 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
626                 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
627                 ResourceGeneralPage.clickCheckinButton(resourceMetaData.getName());
628                 
629                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
630                 ServiceUIUtils.createService(serviceMetadata, getUser());
631                 
632                 addResourceToServiceInCanvas(resourceMetaData);
633             
634                 serviceMetadata.setVersion("0.1");
635                 ServiceVerificator.verifyVFModuleCustomizationUUID(serviceMetadata);            
636         }
637         
638         @Test
639         public void checkoutCertifyRemainSameCustomizationUUIDServiceTest() throws Exception{
640                 String fileName2 = "vSeGW.csar";
641                 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
642                 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
643                 ResourceGeneralPage.clickSubmitForTestingButton(resourceMetaData.getName());
644                 
645                 reloginWithNewRole(UserRoleEnum.TESTER);
646                 GeneralUIUtils.findComponentAndClick(resourceMetaData.getName());
647                 TesterOperationPage.certifyComponent(resourceMetaData.getName());
648                 
649                 reloginWithNewRole(UserRoleEnum.DESIGNER);
650                 
651                 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
652                 ServiceUIUtils.createService(serviceMetadata, getUser());
653                 
654                 addResourceToServiceInCanvas(resourceMetaData);
655             
656                 serviceMetadata.setVersion("0.1");
657                 ServiceVerificator.verifyVFModuleCustomizationUUID(serviceMetadata);
658                 List<String> allVFModuleCustomizationUUIDs = ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata);
659                 
660                 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
661                 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
662                 GeneralPageElements.clickCheckoutButton();
663                 
664                 serviceMetadata.setVersion("0.2");
665                 assertTrue(ServiceVerificator.isEqualCustomizationUUIDsAfterChanges(allVFModuleCustomizationUUIDs, ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata)));
666                 
667                 ResourceGeneralPage.clickSubmitForTestingButton(serviceMetadata.getName());
668                 
669                 reloginWithNewRole(UserRoleEnum.TESTER);
670                 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
671                 TesterOperationPage.certifyComponent(serviceMetadata.getName());
672                 
673                 reloginWithNewRole(UserRoleEnum.DESIGNER);
674                 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
675                 ResourceGeneralPage.clickCheckoutButton();
676                 
677                 serviceMetadata.setVersion("1.1");
678                 serviceMetadata.setUniqueId(null);
679                 assertTrue(ServiceVerificator.isEqualCustomizationUUIDsAfterChanges(allVFModuleCustomizationUUIDs, ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata)));
680         }
681
682
683         public synchronized String addResourceToServiceInCanvas(ResourceReqDetails resourceMetaData) throws Exception {
684                 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
685                 CanvasManager canvasManager = CanvasManager.getCanvasManager();
686                 CompositionPage.searchForElement(resourceMetaData.getName());
687                 CanvasElement computeElement = canvasManager.createElementOnCanvas(resourceMetaData.getName());
688                 canvasManager.clickOnCanvaElement(computeElement);
689                 String selectedInstanceName = CompositionPage.getSelectedInstanceName();
690                 return selectedInstanceName;
691         }
692                 
693         public static void changeDeleteAndValidateVersionOnGeneralPage(String previousVersion, String currentVersion, String serviceName) throws Exception{
694                 GeneralPageElements.selectVersion("V" + previousVersion);
695                 ServiceVerificator.verifyVersionUI(previousVersion);
696                 GeneralUIUtils.clickJSOnElementByText("latest version");
697                 ServiceVerificator.verifyVersionUI(currentVersion);
698                 GeneralPageElements.clickTrashButtonAndConfirm();
699                 GeneralUIUtils.findComponentAndClick(serviceName);
700                 ServiceVerificator.verifyVersionUI(previousVersion);            
701         }       
702
703         @Override
704         protected UserRoleEnum getRole() {
705                 return UserRoleEnum.DESIGNER;
706         }
707
708 }