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{
297 String descriptionText = DESCRIPTION,
298 descriptionTextEdit = "kuku2";
300 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
301 ServiceUIUtils.createService(serviceMetadata, getUser());
303 ServiceGeneralPage.getServiceLeftMenu().moveToManagmentWorkflow();
304 ServiceGeneralPage.fillAndAddNewWorkflow(descriptionText, descriptionText);
305 ServiceVerificator.verifyManagmentWorkflow(descriptionText, descriptionText);
307 ServiceGeneralPage.clickAddWorkflow();
308 ServiceGeneralPage.fillAndAddNewWorkflow(descriptionTextEdit, descriptionTextEdit);
312 public void deleteChangeVersionTest() throws Exception{
313 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
314 ServiceUIUtils.createService(serviceMetadata, getUser());
316 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
318 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,"OTHER");
319 CompositionPage.showDeploymentArtifactTab();
320 CompositionPage.clickAddArtifactButton();
321 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
323 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
324 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
325 GeneralPageElements.clickCheckoutButton();
327 changeDeleteAndValidateVersionOnGeneralPage("0.1", "0.2", serviceMetadata.getName());
329 GeneralPageElements.clickCheckoutButton();
330 ResourceGeneralPage.clickSubmitForTestingButton(serviceMetadata.getName());
332 reloginWithNewRole(UserRoleEnum.TESTER);
333 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
334 TesterOperationPage.certifyComponent(serviceMetadata.getName());
336 reloginWithNewRole(UserRoleEnum.DESIGNER);
337 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
338 ResourceGeneralPage.clickCheckoutButton();
340 changeDeleteAndValidateVersionOnGeneralPage("1.0", "1.1", serviceMetadata.getName());
344 public void compositionScreenRightSideButtonsTest() throws Exception{
346 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
347 ServiceUIUtils.createService(serviceMetadata, getUser());
349 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
351 CompositionPage.showInformationTab();
352 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.INFORMATION);
354 //feature removed from UI
355 // CompositionPage.showCompositionTab();
356 // ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.COMPOSITION);
358 CompositionPage.showDeploymentArtifactTab();
359 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.DEPLOYMENT_ARTIFACT_TAB);
361 CompositionPage.showInputsTab();
362 assertTrue(CompositionPage.getOpenTabTitle().size() == 0);
364 CompositionPage.showAPIArtifactTab();
365 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.API);
367 CompositionPage.showInformationArtifactTab();
368 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.INFORMATION_ARTIFACTS);
373 public void addDeploymentArtifactToVFInstanceTest() throws Exception{
375 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
376 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
377 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
379 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
380 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
381 checkInService(serviceMetadata);
382 clickOncanvasElement(computeElement);
383 CompositionPage.showDeploymentArtifactTab();
384 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
388 public void deleteDeploymentArtifactFromVFInstanceTest() throws Exception{
390 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
391 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
392 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
394 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
395 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
396 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
397 deleteAndVerifyArtifact(actualArtifactList);
402 public void deleteDeploymentArtifactFromVFInstanceNextVersionTest() throws Exception{
404 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
405 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
406 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
408 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
409 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
410 checkInService(serviceMetadata);
411 ResourceGeneralPage.clickCheckoutButton();
412 clickOncanvasElement(computeElement);
413 CompositionPage.showDeploymentArtifactTab();
414 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
415 deleteAndVerifyArtifact(actualArtifactList);
416 // change container version
417 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.GeneralElementsEnum.VERSION_HEADER.getValue());
418 GeneralPageElements.selectVersion("V0.1");
419 clickOncanvasElement(computeElement);
420 CompositionPage.showDeploymentArtifactTab();
421 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
425 // service version V0.1 default artifact, service version V0.2 updated artifact
427 public void updateDeploymentArtifactOnVFInstanceNextVersionTest() throws Exception{
429 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
430 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
431 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
432 ArtifactInfo artifactUpdate = new ArtifactInfo(filePath, HEAT_FILE_YAML_UPDATE_NAME, DESCRIPTION, ARTIFACT_LABEL_UPDATE,ArtifactTypeEnum.DCAE_INVENTORY_DOC.getType());
434 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
435 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
436 checkInService(serviceMetadata);
437 ResourceGeneralPage.clickCheckoutButton();
438 clickOncanvasElement(computeElement);
439 CompositionPage.showDeploymentArtifactTab();
440 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
441 deleteAndVerifyArtifact(actualArtifactList);
442 // upload new artifact
443 addDeploymentArtifact(artifactUpdate, CanvasManager.getCanvasManager(), computeElement);
444 checkArtifactIfAdded(1, HEAT_FILE_YAML_UPDATE_NAME);
445 // change container version
446 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.GeneralElementsEnum.VERSION_HEADER.getValue());
447 GeneralPageElements.selectVersion("V0.1");
448 clickOncanvasElement(computeElement);
449 CompositionPage.showDeploymentArtifactTab();
450 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
454 public void clickOncanvasElement(CanvasElement computeElement) {
455 CanvasManager canvasManager = CanvasManager.getCanvasManager();
456 canvasManager.clickOnCanvaElement(computeElement);
459 public void checkInService(ServiceReqDetails serviceMetadata) throws Exception {
460 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
461 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
462 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
465 public static void deleteAndVerifyArtifact(List<WebElement> actualArtifactList) {
466 if (actualArtifactList.size()>0){
467 GeneralUIUtils.hoverOnAreaByTestId(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.ARTIFACT_ITEM.getValue() + ARTIFACT_LABEL);
468 SetupCDTest.getExtendTest().log(Status.INFO, "Going to delete " + HEAT_FILE_YAML_NAME + " artifact" + " and check if deleted");
469 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.DELETE.getValue() + ARTIFACT_LABEL);
470 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.ModalItems.OK.getValue());
471 assertTrue("Artifact does not deleted", !GeneralUIUtils.waitForElementInVisibilityByTestId(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME)));
476 public void checkArtifactIfAdded(Integer expectedNumOfARtifacts, String expectedArtifactName) {
478 List<WebElement> actualArtifactList;
479 actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
480 assertTrue("Expected artifact count is: " + expectedNumOfARtifacts + ", but was " + actualArtifactList.size(),expectedNumOfARtifacts==actualArtifactList.size());
482 if(expectedNumOfARtifacts != 0){
483 for(WebElement actualArtifactFileName : CompositionPage.getAllAddedArtifacts()){
484 assertTrue("Artifact name does not match, expected " + expectedArtifactName + ", but was " + actualArtifactFileName.getText(), expectedArtifactName.equals(actualArtifactFileName.getText()));
491 public CanvasElement createServiceWithRiArtifact(ResourceReqDetails atomicResourceMetaData, ServiceReqDetails serviceMetadata, ArtifactInfo artifact) throws Exception, AWTException {
492 ResourceUIUtils.createResource(atomicResourceMetaData, getUser());
493 ResourceGeneralPage.clickSubmitForTestingButton(atomicResourceMetaData.getName());
495 ServiceUIUtils.createService(serviceMetadata, getUser());
497 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
498 CanvasManager canvasManager = CanvasManager.getCanvasManager();
499 CompositionPage.searchForElement(atomicResourceMetaData.getName());
500 CanvasElement computeElement = canvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
501 addDeploymentArtifact(artifact, canvasManager, computeElement);
503 return computeElement;
507 public void addDeploymentArtifact(ArtifactInfo artifact, CanvasManager canvasManager, CanvasElement computeElement) throws Exception {
508 canvasManager.clickOnCanvaElement(computeElement);
509 CompositionPage.showDeploymentArtifactTab();
510 CompositionPage.clickAddArtifactButton();
511 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
515 public void isDisabledAndReadOnlyInCheckin() throws Exception{
516 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
517 ServiceUIUtils.createService(serviceMetadata, getUser());
518 GeneralPageElements.clickCheckinButton(serviceMetadata.getName());
519 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
521 ServiceMetadataEnum[] fieldsForCheck = {ServiceMetadataEnum.SERVICE_NAME,
522 ServiceMetadataEnum.CONTACT_ID,
523 ServiceMetadataEnum.DESCRIPTION,
524 ServiceMetadataEnum.PROJECT_CODE,
525 ServiceMetadataEnum.TAGS};
526 for (ServiceMetadataEnum field: fieldsForCheck){
527 assertTrue(GeneralUIUtils.isElementReadOnly(field.getValue()));
530 assertTrue(GeneralUIUtils.isElementDisabled(ServiceMetadataEnum.CATEGORY.getValue()));
531 assertTrue(GeneralUIUtils.isElementDisabled(DataTestIdEnum.LifeCyleChangeButtons.CREATE.getValue()));
534 // future removed from ui
535 @Test(enabled = false)
536 public void inputsTest() throws Exception{
537 String fileName = "service_input_test_VF2.csar";
539 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
540 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName, getUser());
541 GeneralPageElements.clickCheckinButton(resourceMetaData.getName());
543 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
544 ServiceUIUtils.createService(serviceMetadata, getUser());
546 String selectedInstanceName = addResourceToServiceInCanvas(resourceMetaData);
548 GeneralUIUtils.clickOnElementByTestId("breadcrumbs-button-1");
549 DeploymentArtifactPage.getLeftMenu().moveToInputsScreen();
551 InputsPage.addInputToService(selectedInstanceName, "volume_id");
552 InputsPage.deleteServiceInput(selectedInstanceName, "volume_id");
554 // Trying to find deleted service input
556 InputsPage.getServiceInput(selectedInstanceName, "volume_id");
559 catch(TestException e){
564 public void deploymentViewServiceTest() throws Exception{
565 String fileName2 = "vSeGW.csar";
567 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
568 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
569 ResourceGeneralPage.clickCheckinButton(resourceMetaData.getName());
571 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
572 ServiceUIUtils.createService(serviceMetadata, getUser());
574 addResourceToServiceInCanvas(resourceMetaData);
576 GeneralUIUtils.clickOnElementByTestId("breadcrumbs-button-1");
577 DeploymentArtifactPage.getLeftMenu().moveToDeploymentViewScreen();
579 serviceMetadata.setVersion("0.1");
580 List<WebElement> instanceRowsFromTable = GeneralUIUtils.getElementsByCSS("div[data-tests-id^='hierarchy-instance'] span[class^='expand-collapse-title-text']");
581 for(WebElement instanceRow: instanceRowsFromTable){
582 String instanceRowText = instanceRow.getText();
583 List<WebElement> instanceModulesList = DeploymentPage.getInstanceModulesList(instanceRowText);
584 for (WebElement instanceModule: instanceModulesList){
585 String instanceModuleText = instanceModule.getText();
586 ResourceUIUtils.clickOnElementByText(instanceModuleText, "instance");
588 ServiceVerificator.verifyDeploymentPageSubElements(instanceModuleText.split("\\.\\.")[2], new DeploymentViewVerificator(filePath + fileName2));
590 ServiceVerificator.verifyDisabledServiceProperties();
591 String isBaseValue = ServiceVerificator.getVFModulePropertieValue(serviceMetadata, "isBase", instanceModuleText);
592 if (isBaseValue.equals("false"))
593 ServiceVerificator.verifyEnabledServiceProperties();
595 ResourceUIUtils.clickOnElementByText(instanceModuleText, "instance");
601 public void vfModuleCustomizationUUIDServiceTest() throws Exception{
602 String fileName2 = "vSeGW.csar";
603 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
604 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
605 ResourceGeneralPage.clickCheckinButton(resourceMetaData.getName());
607 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
608 ServiceUIUtils.createService(serviceMetadata, getUser());
610 addResourceToServiceInCanvas(resourceMetaData);
612 serviceMetadata.setVersion("0.1");
613 ServiceVerificator.verifyVFModuleCustomizationUUID(serviceMetadata);
617 public void checkoutCertifyRemainSameCustomizationUUIDServiceTest() throws Exception{
618 String fileName2 = "vSeGW.csar";
619 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
620 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
621 ResourceGeneralPage.clickSubmitForTestingButton(resourceMetaData.getName());
623 reloginWithNewRole(UserRoleEnum.TESTER);
624 GeneralUIUtils.findComponentAndClick(resourceMetaData.getName());
625 TesterOperationPage.certifyComponent(resourceMetaData.getName());
627 reloginWithNewRole(UserRoleEnum.DESIGNER);
629 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
630 ServiceUIUtils.createService(serviceMetadata, getUser());
632 addResourceToServiceInCanvas(resourceMetaData);
634 serviceMetadata.setVersion("0.1");
635 ServiceVerificator.verifyVFModuleCustomizationUUID(serviceMetadata);
636 List<String> allVFModuleCustomizationUUIDs = ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata);
638 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
639 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
640 GeneralPageElements.clickCheckoutButton();
642 serviceMetadata.setVersion("0.2");
643 assertTrue(ServiceVerificator.isEqualCustomizationUUIDsAfterChanges(allVFModuleCustomizationUUIDs, ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata)));
645 ResourceGeneralPage.clickSubmitForTestingButton(serviceMetadata.getName());
647 reloginWithNewRole(UserRoleEnum.TESTER);
648 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
649 TesterOperationPage.certifyComponent(serviceMetadata.getName());
651 reloginWithNewRole(UserRoleEnum.DESIGNER);
652 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
653 ResourceGeneralPage.clickCheckoutButton();
655 serviceMetadata.setVersion("1.1");
656 serviceMetadata.setUniqueId(null);
657 assertTrue(ServiceVerificator.isEqualCustomizationUUIDsAfterChanges(allVFModuleCustomizationUUIDs, ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata)));
661 public synchronized String addResourceToServiceInCanvas(ResourceReqDetails resourceMetaData) throws Exception {
662 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
663 CanvasManager canvasManager = CanvasManager.getCanvasManager();
664 CompositionPage.searchForElement(resourceMetaData.getName());
665 CanvasElement computeElement = canvasManager.createElementOnCanvas(resourceMetaData.getName());
666 canvasManager.clickOnCanvaElement(computeElement);
667 String selectedInstanceName = CompositionPage.getSelectedInstanceName();
668 return selectedInstanceName;
671 public static void changeDeleteAndValidateVersionOnGeneralPage(String previousVersion, String currentVersion, String serviceName) throws Exception{
672 GeneralPageElements.selectVersion("V" + previousVersion);
673 ServiceVerificator.verifyVersionUI(previousVersion);
674 GeneralUIUtils.clickJSOnElementByText("latest version");
675 ServiceVerificator.verifyVersionUI(currentVersion);
676 GeneralPageElements.clickTrashButtonAndConfirm();
677 GeneralUIUtils.findComponentAndClick(serviceName);
678 ServiceVerificator.verifyVersionUI(previousVersion);
682 protected UserRoleEnum getRole() {
683 return UserRoleEnum.DESIGNER;