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{
395 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
396 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
397 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
399 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
400 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
401 clickOncanvasElement(computeElement);
402 CompositionPage.showDeploymentArtifactTab();
403 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
404 deleteAndVerifyArtifact(actualArtifactList);
409 public void deleteDeploymentArtifactFromVFInstanceNextVersionTest() throws Exception{
411 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
412 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
413 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
415 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
416 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
417 checkInService(serviceMetadata);
418 ResourceGeneralPage.clickCheckoutButton();
419 clickOncanvasElement(computeElement);
420 CompositionPage.showDeploymentArtifactTab();
421 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
422 deleteAndVerifyArtifact(actualArtifactList);
423 // change container version
424 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.GeneralElementsEnum.VERSION_HEADER.getValue());
425 GeneralPageElements.selectVersion("V0.1");
426 clickOncanvasElement(computeElement);
427 CompositionPage.showDeploymentArtifactTab();
428 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
432 // service version V0.1 default artifact, service version V0.2 updated artifact
434 public void updateDeploymentArtifactOnVFInstanceNextVersionTest() throws Exception{
436 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
437 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
438 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
439 ArtifactInfo artifactUpdate = new ArtifactInfo(filePath, HEAT_FILE_YAML_UPDATE_NAME, DESCRIPTION, ARTIFACT_LABEL_UPDATE,ArtifactTypeEnum.DCAE_INVENTORY_DOC.getType());
441 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
442 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
443 checkInService(serviceMetadata);
444 ResourceGeneralPage.clickCheckoutButton();
445 clickOncanvasElement(computeElement);
446 CompositionPage.showDeploymentArtifactTab();
447 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
448 deleteAndVerifyArtifact(actualArtifactList);
449 // upload new artifact
450 addDeploymentArtifact(artifactUpdate, CanvasManager.getCanvasManager(), computeElement);
451 checkArtifactIfAdded(1, HEAT_FILE_YAML_UPDATE_NAME);
452 // change container version
453 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.GeneralElementsEnum.VERSION_HEADER.getValue());
454 GeneralPageElements.selectVersion("V0.1");
455 clickOncanvasElement(computeElement);
456 CompositionPage.showDeploymentArtifactTab();
457 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
461 public void clickOncanvasElement(CanvasElement computeElement) {
462 CanvasManager canvasManager = CanvasManager.getCanvasManager();
463 canvasManager.clickOnCanvaElement(computeElement);
466 public void checkInService(ServiceReqDetails serviceMetadata) throws Exception {
467 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
468 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
469 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
472 public static void deleteAndVerifyArtifact(List<WebElement> actualArtifactList) {
473 if (actualArtifactList.size()>0){
474 GeneralUIUtils.hoverOnAreaByTestId(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.ARTIFACT_ITEM.getValue() + ARTIFACT_LABEL);
475 SetupCDTest.getExtendTest().log(Status.INFO, "Going to delete " + HEAT_FILE_YAML_NAME + " artifact" + " and check if deleted");
476 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.DELETE.getValue() + ARTIFACT_LABEL);
477 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.ModalItems.OK.getValue());
478 assertTrue("Artifact does not deleted", !GeneralUIUtils.waitForElementInVisibilityByTestId(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME)));
483 public void checkArtifactIfAdded(Integer expectedNumOfARtifacts, String expectedArtifactName) {
485 List<WebElement> actualArtifactList;
486 actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
487 assertTrue("Expected artifact count is: " + expectedNumOfARtifacts + ", but was " + actualArtifactList.size(),expectedNumOfARtifacts==actualArtifactList.size());
489 if(expectedNumOfARtifacts != 0){
490 for(WebElement actualArtifactFileName : CompositionPage.getAllAddedArtifacts()){
491 assertTrue("Artifact name does not match, expected " + expectedArtifactName + ", but was " + actualArtifactFileName.getText(), expectedArtifactName.equals(actualArtifactFileName.getText()));
498 public CanvasElement createServiceWithRiArtifact(ResourceReqDetails atomicResourceMetaData, ServiceReqDetails serviceMetadata, ArtifactInfo artifact) throws Exception, AWTException {
499 ResourceUIUtils.createResource(atomicResourceMetaData, getUser());
500 ResourceGeneralPage.clickSubmitForTestingButton(atomicResourceMetaData.getName());
502 ServiceUIUtils.createService(serviceMetadata, getUser());
504 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
505 CanvasManager canvasManager = CanvasManager.getCanvasManager();
506 CompositionPage.searchForElement(atomicResourceMetaData.getName());
507 CanvasElement computeElement = canvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
508 addDeploymentArtifact(artifact, canvasManager, computeElement);
510 return computeElement;
514 public void addDeploymentArtifact(ArtifactInfo artifact, CanvasManager canvasManager, CanvasElement computeElement) throws Exception {
515 canvasManager.clickOnCanvaElement(computeElement);
516 CompositionPage.showDeploymentArtifactTab();
517 CompositionPage.clickAddArtifactButton();
518 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
522 public void isDisabledAndReadOnlyInCheckin() throws Exception{
523 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
524 ServiceUIUtils.createService(serviceMetadata, getUser());
525 GeneralPageElements.clickCheckinButton(serviceMetadata.getName());
526 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
528 ServiceMetadataEnum[] fieldsForCheck = {ServiceMetadataEnum.SERVICE_NAME,
529 ServiceMetadataEnum.CONTACT_ID,
530 ServiceMetadataEnum.DESCRIPTION,
531 ServiceMetadataEnum.PROJECT_CODE,
532 ServiceMetadataEnum.TAGS};
533 for (ServiceMetadataEnum field: fieldsForCheck){
534 assertTrue(GeneralUIUtils.isElementReadOnly(field.getValue()));
537 assertTrue(GeneralUIUtils.isElementDisabled(ServiceMetadataEnum.CATEGORY.getValue()));
538 assertTrue(GeneralUIUtils.isElementDisabled(DataTestIdEnum.LifeCyleChangeButtons.CREATE.getValue()));
541 // future removed from ui
542 @Test(enabled = false)
543 public void inputsTest() throws Exception{
544 String fileName = "service_input_test_VF2.csar";
546 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
547 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName, getUser());
548 GeneralPageElements.clickCheckinButton(resourceMetaData.getName());
550 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
551 ServiceUIUtils.createService(serviceMetadata, getUser());
553 String selectedInstanceName = addResourceToServiceInCanvas(resourceMetaData);
555 GeneralUIUtils.clickOnElementByTestId("breadcrumbs-button-1");
556 DeploymentArtifactPage.getLeftMenu().moveToInputsScreen();
558 InputsPage.addInputToService(selectedInstanceName, "volume_id");
559 InputsPage.deleteServiceInput(selectedInstanceName, "volume_id");
561 // Trying to find deleted service input
563 InputsPage.getServiceInput(selectedInstanceName, "volume_id");
566 catch(TestException e){
571 public void deploymentViewServiceTest() throws Exception{
574 throw new SkipException("Open bug 295220, 295180");
577 String fileName2 = "vSeGW.csar";
579 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
580 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
581 ResourceGeneralPage.clickCheckinButton(resourceMetaData.getName());
583 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
584 ServiceUIUtils.createService(serviceMetadata, getUser());
586 addResourceToServiceInCanvas(resourceMetaData);
588 GeneralUIUtils.clickOnElementByTestId("breadcrumbs-button-1");
589 DeploymentArtifactPage.getLeftMenu().moveToDeploymentViewScreen();
591 serviceMetadata.setVersion("0.1");
592 List<WebElement> instanceRowsFromTable = GeneralUIUtils.getElementsByCSS("div[data-tests-id^='hierarchy-instance'] span[class^='expand-collapse-title-text']");
593 for(WebElement instanceRow: instanceRowsFromTable){
594 String instanceRowText = instanceRow.getText();
595 List<WebElement> instanceModulesList = DeploymentPage.getInstanceModulesList(instanceRowText);
596 for (WebElement instanceModule: instanceModulesList){
597 String instanceModuleText = instanceModule.getText();
598 ResourceUIUtils.clickOnElementByText(instanceModuleText, "instance");
600 ServiceVerificator.verifyDeploymentPageSubElements(instanceModuleText.split("\\.\\.")[1], new DeploymentViewVerificator(filePath + fileName2));
602 ServiceVerificator.verifyDisabledServiceProperties();
603 String isBaseValue = ServiceVerificator.getVFModulePropertieValue(serviceMetadata, "isBase", instanceModuleText);
604 if (isBaseValue.equals("false"))
605 ServiceVerificator.verifyEnabledServiceProperties();
607 ResourceUIUtils.clickOnElementByText(instanceModuleText, "instance");
613 public void vfModuleCustomizationUUIDServiceTest() throws Exception{
614 String fileName2 = "vSeGW.csar";
615 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
616 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
617 ResourceGeneralPage.clickCheckinButton(resourceMetaData.getName());
619 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
620 ServiceUIUtils.createService(serviceMetadata, getUser());
622 addResourceToServiceInCanvas(resourceMetaData);
624 serviceMetadata.setVersion("0.1");
625 ServiceVerificator.verifyVFModuleCustomizationUUID(serviceMetadata);
629 public void checkoutCertifyRemainSameCustomizationUUIDServiceTest() throws Exception{
630 String fileName2 = "vSeGW.csar";
631 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
632 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
633 ResourceGeneralPage.clickSubmitForTestingButton(resourceMetaData.getName());
635 reloginWithNewRole(UserRoleEnum.TESTER);
636 GeneralUIUtils.findComponentAndClick(resourceMetaData.getName());
637 TesterOperationPage.certifyComponent(resourceMetaData.getName());
639 reloginWithNewRole(UserRoleEnum.DESIGNER);
641 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
642 ServiceUIUtils.createService(serviceMetadata, getUser());
644 addResourceToServiceInCanvas(resourceMetaData);
646 serviceMetadata.setVersion("0.1");
647 ServiceVerificator.verifyVFModuleCustomizationUUID(serviceMetadata);
648 List<String> allVFModuleCustomizationUUIDs = ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata);
650 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
651 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
652 GeneralPageElements.clickCheckoutButton();
654 serviceMetadata.setVersion("0.2");
655 assertTrue(ServiceVerificator.isEqualCustomizationUUIDsAfterChanges(allVFModuleCustomizationUUIDs, ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata)));
657 ResourceGeneralPage.clickSubmitForTestingButton(serviceMetadata.getName());
659 reloginWithNewRole(UserRoleEnum.TESTER);
660 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
661 TesterOperationPage.certifyComponent(serviceMetadata.getName());
663 reloginWithNewRole(UserRoleEnum.DESIGNER);
664 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
665 ResourceGeneralPage.clickCheckoutButton();
667 serviceMetadata.setVersion("1.1");
668 serviceMetadata.setUniqueId(null);
669 assertTrue(ServiceVerificator.isEqualCustomizationUUIDsAfterChanges(allVFModuleCustomizationUUIDs, ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata)));
673 public synchronized String addResourceToServiceInCanvas(ResourceReqDetails resourceMetaData) throws Exception {
674 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
675 CanvasManager canvasManager = CanvasManager.getCanvasManager();
676 CompositionPage.searchForElement(resourceMetaData.getName());
677 CanvasElement computeElement = canvasManager.createElementOnCanvas(resourceMetaData.getName());
678 canvasManager.clickOnCanvaElement(computeElement);
679 String selectedInstanceName = CompositionPage.getSelectedInstanceName();
680 return selectedInstanceName;
683 public static void changeDeleteAndValidateVersionOnGeneralPage(String previousVersion, String currentVersion, String serviceName) throws Exception{
684 GeneralPageElements.selectVersion("V" + previousVersion);
685 ServiceVerificator.verifyVersionUI(previousVersion);
686 GeneralUIUtils.clickJSOnElementByText("latest version");
687 ServiceVerificator.verifyVersionUI(currentVersion);
688 GeneralPageElements.clickTrashButtonAndConfirm();
689 GeneralUIUtils.findComponentAndClick(serviceName);
690 ServiceVerificator.verifyVersionUI(previousVersion);
694 protected UserRoleEnum getRole() {
695 return UserRoleEnum.DESIGNER;