2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.openecomp.sdc.ci.tests.execute.sanity;
23 import static org.testng.AssertJUnit.assertTrue;
25 import java.awt.AWTException;
27 import java.util.Arrays;
28 import java.util.List;
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;
77 import com.aventstack.extentreports.Status;
79 public class Service extends SetupCDTest {
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;
90 public void beforeTest(){
91 filePath = FileHandling.getFilePath("");
96 public void createService() throws Exception {
97 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
98 ServiceUIUtils.createService(serviceMetadata, getUser());
102 public void validDefaultContactAndTagAfterCreateService() throws Exception{
103 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
104 ServiceUIUtils.createServiceWithDefaultTagAndUserId(serviceMetadata, getUser());
106 assertTrue("wrong userId", getUser().getUserId().equals(ResourceGeneralPage.getContactIdText()));
108 List<String> actualTags = Arrays.asList(ServiceGeneralPage.getTags());
109 assertTrue("wrong tags", (actualTags.size() == 1) && actualTags.get(0).equals(serviceMetadata.getName()));
113 public void updateService() throws Exception {
115 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
116 ServiceUIUtils.createService(serviceMetadata, getUser());
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();
129 ServiceVerificator.verifyServiceUpdatedInUI(serviceMetadata);
133 public void deleteService() throws Exception {
136 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
137 ServiceUIUtils.createService(serviceMetadata, getUser());
140 //GeneralUIUtils.HighlightMyElement(GeneralUIUtils.getWebButton("delete_version"));
141 GeneralPageElements.clickTrashButtonAndConfirm();
144 CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG);
145 CatalogUIUtilitis.catalogSearchBox(serviceMetadata.getName());
146 ServiceVerificator.verifyServiceDeletedInUI(serviceMetadata);
150 public void checkoutServiceTest() throws Exception{
151 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
152 ServiceUIUtils.createService(serviceMetadata, getUser());
154 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
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());
161 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
162 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
163 GeneralPageElements.clickCheckoutButton();
165 serviceMetadata.setVersion("0.2");
166 ServiceVerificator.verifyServiceLifecycle(serviceMetadata, getUser(), LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
167 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CHECKOUT);
168 ServiceVerificator.verifyVersionUI(serviceMetadata.getVersion());
170 ResourceGeneralPage.clickSubmitForTestingButton(serviceMetadata.getName());
172 reloginWithNewRole(UserRoleEnum.TESTER);
173 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
174 TesterOperationPage.certifyComponent(serviceMetadata.getName());
176 reloginWithNewRole(UserRoleEnum.DESIGNER);
177 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
178 ResourceGeneralPage.clickCheckoutButton();
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());
188 public void submitServiceForTestingWithNonCertifiedAsset() throws Exception{
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());
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());
202 CompositionPage.clickSubmitForTestingButton(serviceMetadata.getName());
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));
211 ResourceRestUtils.deleteResourceByNameAndVersion(atomicResourceMetaData.getName(), "0.1");
217 public void addDeploymentArtifactInCompositionScreenTest() throws Exception{
218 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
219 ServiceUIUtils.createService(serviceMetadata, getUser());
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());
227 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
228 AssertJUnit.assertEquals(1, actualArtifactList.size());
230 for(WebElement actualArtifactFileName : CompositionPage.getAllAddedArtifacts()){
231 assertTrue(HEAT_FILE_YAML_NAME.equals(actualArtifactFileName.getText()));
237 public void addInformationArtifactInCompositionScreenTest() throws Exception{
238 String fileName = HEAT_FILE_YAML_NAME;
239 String descriptionText = DESCRIPTION;
241 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
242 ServiceUIUtils.createService(serviceMetadata, getUser());
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());
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);
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);
260 for(WebElement actualArtifactFileName : CompositionPage.getAllAddedArtifacts()){
261 assertTrue(fileName.equals(actualArtifactFileName.getText()));
267 public void addAPIArtifactInCompositionScreenTest() throws Exception{
270 throw new SkipException("Open bug 292017");
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());
279 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
280 ArtifactInfo artifactInfo = new ArtifactInfo(filePath, fileName, descriptionText, ARTIFACT_LABEL,"OTHER");
281 CompositionPage.showAPIArtifactTab();
283 for(DataTestIdEnum.APIArtifactsService artifact: DataTestIdEnum.APIArtifactsService.values()){
284 ArtifactUIUtils.fillPlaceHolderAPIArtifact(artifact, filePath, fileName, descriptionText, url);
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);
290 for(WebElement actualArtifactFileName : CompositionPage.getAllAddedArtifacts()){
291 assertTrue(fileName.equals(actualArtifactFileName.getText()));
296 public void ManagmentWorkflowTest() throws Exception{
299 throw new SkipException("Open bug 287416");
302 String descriptionText = DESCRIPTION,
303 descriptionTextEdit = "kuku2";
305 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
306 ServiceUIUtils.createService(serviceMetadata, getUser());
308 ServiceGeneralPage.getServiceLeftMenu().moveToManagmentWorkflow();
309 ServiceGeneralPage.fillAndAddNewWorkflow(descriptionText, descriptionText);
310 ServiceVerificator.verifyManagmentWorkflow(descriptionText, descriptionText);
312 ServiceGeneralPage.clickAddWorkflow();
313 ServiceGeneralPage.fillAndAddNewWorkflow(descriptionTextEdit, descriptionTextEdit);
317 public void deleteChangeVersionTest() throws Exception{
318 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
319 ServiceUIUtils.createService(serviceMetadata, getUser());
321 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
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());
328 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
329 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
330 GeneralPageElements.clickCheckoutButton();
332 changeDeleteAndValidateVersionOnGeneralPage("0.1", "0.2", serviceMetadata.getName());
334 GeneralPageElements.clickCheckoutButton();
335 ResourceGeneralPage.clickSubmitForTestingButton(serviceMetadata.getName());
337 reloginWithNewRole(UserRoleEnum.TESTER);
338 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
339 TesterOperationPage.certifyComponent(serviceMetadata.getName());
341 reloginWithNewRole(UserRoleEnum.DESIGNER);
342 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
343 ResourceGeneralPage.clickCheckoutButton();
345 changeDeleteAndValidateVersionOnGeneralPage("1.0", "1.1", serviceMetadata.getName());
349 public void compositionScreenRightSideButtonsTest() throws Exception{
351 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
352 ServiceUIUtils.createService(serviceMetadata, getUser());
354 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
356 CompositionPage.showInformationTab();
357 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.INFORMATION);
359 //feature removed from UI
360 // CompositionPage.showCompositionTab();
361 // ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.COMPOSITION);
363 CompositionPage.showDeploymentArtifactTab();
364 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.DEPLOYMENT_ARTIFACT_TAB);
366 CompositionPage.showInputsTab();
367 assertTrue(CompositionPage.getOpenTabTitle().size() == 0);
369 CompositionPage.showAPIArtifactTab();
370 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.API);
372 CompositionPage.showInformationArtifactTab();
373 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.INFORMATION_ARTIFACTS);
378 public void addDeploymentArtifactToVFInstanceTest() throws Exception{
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());
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);
393 public void deleteDeploymentArtifactFromVFInstanceTest() throws Exception{
396 throw new SkipException("Open bug 300513");
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());
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);
411 public void deleteDeploymentArtifactFromVFInstanceNextVersionTest() throws Exception{
414 throw new SkipException("Open bug 300513");
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());
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);
438 // service version V0.1 default artifact, service version V0.2 updated artifact
440 public void updateDeploymentArtifactOnVFInstanceNextVersionTest() throws Exception{
443 throw new SkipException("Open bug 300513");
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());
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);
471 public void clickOncanvasElement(CanvasElement computeElement) {
472 CanvasManager canvasManager = CanvasManager.getCanvasManager();
473 canvasManager.clickOnCanvaElement(computeElement);
476 public void checkInService(ServiceReqDetails serviceMetadata) throws Exception {
477 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
478 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
479 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
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)));
493 public void checkArtifactIfAdded(Integer expectedNumOfARtifacts, String expectedArtifactName) {
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());
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()));
508 public CanvasElement createServiceWithRiArtifact(ResourceReqDetails atomicResourceMetaData, ServiceReqDetails serviceMetadata, ArtifactInfo artifact) throws Exception, AWTException {
509 ResourceUIUtils.createResource(atomicResourceMetaData, getUser());
510 ResourceGeneralPage.clickSubmitForTestingButton(atomicResourceMetaData.getName());
512 ServiceUIUtils.createService(serviceMetadata, getUser());
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);
520 return computeElement;
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());
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());
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()));
547 assertTrue(GeneralUIUtils.isElementDisabled(ServiceMetadataEnum.CATEGORY.getValue()));
548 assertTrue(GeneralUIUtils.isElementDisabled(DataTestIdEnum.LifeCyleChangeButtons.CREATE.getValue()));
551 // future removed from ui
552 @Test(enabled = false)
553 public void inputsTest() throws Exception{
554 String fileName = "service_input_test_VF2.csar";
556 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
557 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName, getUser());
558 GeneralPageElements.clickCheckinButton(resourceMetaData.getName());
560 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
561 ServiceUIUtils.createService(serviceMetadata, getUser());
563 String selectedInstanceName = addResourceToServiceInCanvas(resourceMetaData);
565 GeneralUIUtils.clickOnElementByTestId("breadcrumbs-button-1");
566 DeploymentArtifactPage.getLeftMenu().moveToInputsScreen();
568 InputsPage.addInputToService(selectedInstanceName, "volume_id");
569 InputsPage.deleteServiceInput(selectedInstanceName, "volume_id");
571 // Trying to find deleted service input
573 InputsPage.getServiceInput(selectedInstanceName, "volume_id");
576 catch(TestException e){
581 public void deploymentViewServiceTest() throws Exception{
584 throw new SkipException("Open bug 295220, 295180");
587 String fileName2 = "vSeGW.csar";
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());
593 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
594 ServiceUIUtils.createService(serviceMetadata, getUser());
596 addResourceToServiceInCanvas(resourceMetaData);
598 GeneralUIUtils.clickOnElementByTestId("breadcrumbs-button-1");
599 DeploymentArtifactPage.getLeftMenu().moveToDeploymentViewScreen();
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");
610 ServiceVerificator.verifyDeploymentPageSubElements(instanceModuleText.split("\\.\\.")[1], new DeploymentViewVerificator(filePath + fileName2));
612 ServiceVerificator.verifyDisabledServiceProperties();
613 String isBaseValue = ServiceVerificator.getVFModulePropertieValue(serviceMetadata, "isBase", instanceModuleText);
614 if (isBaseValue.equals("false"))
615 ServiceVerificator.verifyEnabledServiceProperties();
617 ResourceUIUtils.clickOnElementByText(instanceModuleText, "instance");
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());
629 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
630 ServiceUIUtils.createService(serviceMetadata, getUser());
632 addResourceToServiceInCanvas(resourceMetaData);
634 serviceMetadata.setVersion("0.1");
635 ServiceVerificator.verifyVFModuleCustomizationUUID(serviceMetadata);
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());
645 reloginWithNewRole(UserRoleEnum.TESTER);
646 GeneralUIUtils.findComponentAndClick(resourceMetaData.getName());
647 TesterOperationPage.certifyComponent(resourceMetaData.getName());
649 reloginWithNewRole(UserRoleEnum.DESIGNER);
651 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
652 ServiceUIUtils.createService(serviceMetadata, getUser());
654 addResourceToServiceInCanvas(resourceMetaData);
656 serviceMetadata.setVersion("0.1");
657 ServiceVerificator.verifyVFModuleCustomizationUUID(serviceMetadata);
658 List<String> allVFModuleCustomizationUUIDs = ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata);
660 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
661 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
662 GeneralPageElements.clickCheckoutButton();
664 serviceMetadata.setVersion("0.2");
665 assertTrue(ServiceVerificator.isEqualCustomizationUUIDsAfterChanges(allVFModuleCustomizationUUIDs, ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata)));
667 ResourceGeneralPage.clickSubmitForTestingButton(serviceMetadata.getName());
669 reloginWithNewRole(UserRoleEnum.TESTER);
670 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
671 TesterOperationPage.certifyComponent(serviceMetadata.getName());
673 reloginWithNewRole(UserRoleEnum.DESIGNER);
674 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
675 ResourceGeneralPage.clickCheckoutButton();
677 serviceMetadata.setVersion("1.1");
678 serviceMetadata.setUniqueId(null);
679 assertTrue(ServiceVerificator.isEqualCustomizationUUIDsAfterChanges(allVFModuleCustomizationUUIDs, ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata)));
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;
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);
704 protected UserRoleEnum getRole() {
705 return UserRoleEnum.DESIGNER;