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 com.aventstack.extentreports.Status;
24 import org.openecomp.sdc.be.dao.api.ActionStatus;
25 import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
26 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
27 import org.openecomp.sdc.be.model.GroupDefinition;
28 import org.openecomp.sdc.be.model.LifecycleStateEnum;
29 import org.openecomp.sdc.be.model.Resource;
30 import org.openecomp.sdc.be.model.User;
31 import org.openecomp.sdc.ci.tests.datatypes.*;
32 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.CompositionScreenEnum;
33 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.ServiceMetadataEnum;
34 import org.openecomp.sdc.ci.tests.datatypes.enums.*;
35 import org.openecomp.sdc.ci.tests.execute.setup.SetupCDTest;
36 import org.openecomp.sdc.ci.tests.pages.*;
37 import org.openecomp.sdc.ci.tests.utilities.*;
38 import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
39 import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
40 import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
41 import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
42 import org.openecomp.sdc.ci.tests.verificator.DeploymentViewVerificator;
43 import org.openecomp.sdc.ci.tests.verificator.ServiceVerificator;
44 import org.openecomp.sdc.ci.tests.verificator.VfVerificator;
45 import org.openqa.selenium.By;
46 import org.openqa.selenium.WebElement;
47 import org.testng.AssertJUnit;
48 import org.testng.SkipException;
49 import org.testng.TestException;
50 import org.testng.annotations.BeforeMethod;
51 import org.testng.annotations.Test;
54 import java.util.ArrayList;
55 import java.util.Arrays;
56 import java.util.List;
58 import static org.testng.AssertJUnit.assertTrue;
60 public class Service extends SetupCDTest {
62 private static final String DESCRIPTION = "kuku";
63 private static final String ARTIFACT_LABEL = "artifact3";
64 private static final String ARTIFACT_LABEL_UPDATE = "artifactUpdate";
65 private static final String GET_ARTIFACT_LIST_BY_CLASS_NAME = "i-sdc-designer-sidebar-section-content-item-artifact";
66 private static final String HEAT_FILE_YAML_NAME = "Heat-File.yaml";
67 private static final String HEAT_FILE_YAML_UPDATE_NAME = "Heat-File-Update.yaml";
68 private String filePath;
71 public void beforeTest(){
72 filePath = FileHandling.getFilePath("");
77 public void createService() throws Exception {
78 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
79 ServiceUIUtils.createService(serviceMetadata, getUser());
83 public void validDefaultContactAndTagAfterCreateService() throws Exception{
84 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
85 ServiceUIUtils.createServiceWithDefaultTagAndUserId(serviceMetadata, getUser());
87 assertTrue("wrong userId", getUser().getUserId().equals(ResourceGeneralPage.getContactIdText()));
89 List<String> actualTags = Arrays.asList(ServiceGeneralPage.getTags());
90 assertTrue("wrong tags", (actualTags.size() == 1) && actualTags.get(0).equals(serviceMetadata.getName()));
94 public void updateService() throws Exception {
96 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
97 ServiceUIUtils.createService(serviceMetadata, getUser());
100 ServiceGeneralPage.deleteOldTags(serviceMetadata);
101 serviceMetadata.setName(ElementFactory.getServicePrefix() + "UpdatedName" + serviceMetadata.getName());
102 serviceMetadata.setDescription("updatedDescriptionSanity");
103 serviceMetadata.setProjectCode("654321");
104 serviceMetadata.setContactId("cs6543");
105 serviceMetadata.getTags().addAll(Arrays.asList("updatedTag", "oneMoreUpdatedTag", "lastOne UpdatedTag"));
106 ServiceUIUtils.setServiceCategory(serviceMetadata, ServiceCategoriesEnum.VOIP);
107 ServiceUIUtils.fillServiceGeneralPage(serviceMetadata, getUser());
108 GeneralPageElements.clickCreateButton();
110 ServiceVerificator.verifyServiceUpdatedInUI(serviceMetadata);
114 public void deleteService() throws Exception {
117 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
118 ServiceUIUtils.createService(serviceMetadata, getUser());
121 //GeneralUIUtils.HighlightMyElement(GeneralUIUtils.getWebButton("delete_version"));
122 GeneralPageElements.clickTrashButtonAndConfirm();
125 CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG);
126 CatalogUIUtilitis.catalogSearchBox(serviceMetadata.getName());
127 ServiceVerificator.verifyServiceDeletedInUI(serviceMetadata);
131 public void checkoutServiceTest() throws Exception{
132 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
133 ServiceUIUtils.createService(serviceMetadata, getUser());
135 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
137 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,"OTHER");
138 CompositionPage.showDeploymentArtifactTab();
139 CompositionPage.clickAddArtifactButton();
140 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
142 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
143 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
144 GeneralPageElements.clickCheckoutButton();
146 serviceMetadata.setVersion("0.2");
147 ServiceVerificator.verifyServiceLifecycle(serviceMetadata, getUser(), LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
148 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CHECKOUT);
149 ServiceVerificator.verifyVersionUI(serviceMetadata.getVersion());
151 ResourceGeneralPage.clickSubmitForTestingButton(serviceMetadata.getName());
153 reloginWithNewRole(UserRoleEnum.TESTER);
154 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
155 TesterOperationPage.certifyComponent(serviceMetadata.getName());
157 reloginWithNewRole(UserRoleEnum.DESIGNER);
158 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
159 ResourceGeneralPage.clickCheckoutButton();
161 serviceMetadata.setVersion("1.1");
162 serviceMetadata.setUniqueId(null);
163 ServiceVerificator.verifyServiceLifecycle(serviceMetadata, getUser(), LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
164 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CHECKOUT);
165 ServiceVerificator.verifyVersionUI(serviceMetadata.getVersion());
169 public void submitServiceForTestingWithNonCertifiedAsset() throws Exception{
171 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
172 ResourceUIUtils.createVF(atomicResourceMetaData, getUser());
173 ResourceGeneralPage.clickSubmitForTestingButton(atomicResourceMetaData.getName());
175 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
176 ServiceUIUtils.createService(serviceMetadata, getUser());
177 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
178 CanvasManager canvasManager = CanvasManager.getCanvasManager();
179 CompositionPage.searchForElement(atomicResourceMetaData.getName());
180 canvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
183 CompositionPage.clickSubmitForTestingButton(serviceMetadata.getName());
187 String errorMessage = GeneralUIUtils.getWebElementByClassName("w-sdc-modal-caption").getText();
188 String checkUIResponseOnError = ErrorValidationUtils.checkUIResponseOnError(ActionStatus.VALIDATED_RESOURCE_NOT_FOUND.name());
189 assertTrue(errorMessage.contains(checkUIResponseOnError));
192 ResourceRestUtils.deleteResourceByNameAndVersion(atomicResourceMetaData.getName(), "0.1");
198 public void createLinkService() throws Exception{
199 String fileName2 = "vSeGW.csar";
200 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
201 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
202 ResourceGeneralPage.clickCheckinButton(resourceMetaData.getName());
204 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
205 ServiceUIUtils.createService(serviceMetadata, getUser());
206 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
207 CanvasManager canvasManager = CanvasManager.getCanvasManager();
208 CompositionPage.searchForElement(resourceMetaData.getName());
209 CanvasElement firstElement = canvasManager.createElementOnCanvas(resourceMetaData.getName());
210 CanvasElement secondElement = canvasManager.createElementOnCanvas(resourceMetaData.getName());
211 canvasManager.linkElements(firstElement, secondElement);
215 public void addDeploymentArtifactInCompositionScreenTest() throws Exception{
216 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
217 ServiceUIUtils.createService(serviceMetadata, getUser());
219 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
220 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,"OTHER");
221 CompositionPage.showDeploymentArtifactTab();
222 CompositionPage.clickAddArtifactButton();
223 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
225 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
226 AssertJUnit.assertEquals(1, actualArtifactList.size());
228 for(WebElement actualArtifactFileName : CompositionPage.getAllAddedArtifacts()){
229 assertTrue(HEAT_FILE_YAML_NAME.equals(actualArtifactFileName.getText()));
235 public void addInformationArtifactInCompositionScreenTest() throws Exception{
236 String fileName = HEAT_FILE_YAML_NAME;
237 String descriptionText = DESCRIPTION;
239 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
240 ServiceUIUtils.createService(serviceMetadata, getUser());
242 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
243 ArtifactInfo artifactInfo = new ArtifactInfo(filePath, fileName, descriptionText, ARTIFACT_LABEL,"OTHER");
244 CompositionPage.showInformationArtifactTab();
245 List<WebElement> beforeArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
246 CompositionPage.clickAddArtifactButton();
247 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifactInfo, CompositionPage.artifactPopup());
249 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
250 assertTrue(String.format("Wrong number of artifacts, Expected: %s Actual: %s", beforeArtifactList.size() + 1, actualArtifactList.size()),
251 (beforeArtifactList.size() + 1) == actualArtifactList.size());
252 for(DataTestIdEnum.InformationalArtifactsService artifact: DataTestIdEnum.InformationalArtifactsService.values()){
253 ArtifactUIUtils.fillPlaceHolderInformationalArtifact(artifact, filePath, fileName, descriptionText);
255 int numberOfFiles = CompositionPage.getAllAddedArtifacts().size();
256 assertTrue(String.format("Wrong number of artifacts, Expected: %s Actual: %s", (beforeArtifactList.size() + 1), numberOfFiles), (beforeArtifactList.size() + 1) == numberOfFiles);
258 for(WebElement actualArtifactFileName : CompositionPage.getAllAddedArtifacts()){
259 assertTrue(fileName.equals(actualArtifactFileName.getText()));
265 public void addAPIArtifactInCompositionScreenTest() throws Exception{
266 String fileName = HEAT_FILE_YAML_NAME,
267 descriptionText = DESCRIPTION,
268 url = "http://kuku.com";
269 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
270 ServiceUIUtils.createService(serviceMetadata, getUser());
272 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
273 new ArtifactInfo(filePath, fileName, descriptionText, ARTIFACT_LABEL,"OTHER");
274 CompositionPage.showAPIArtifactTab();
276 for(DataTestIdEnum.APIArtifactsService artifact: DataTestIdEnum.APIArtifactsService.values()){
277 ArtifactUIUtils.fillPlaceHolderAPIArtifact(artifact, filePath, fileName, descriptionText, url);
279 int numberOfFiles = CompositionPage.getAllAddedArtifacts().size(),
280 numberOfPlacehoders = DataTestIdEnum.APIArtifactsService.values().length;
281 assertTrue(String.format("Wrong file count, should be %s files", numberOfPlacehoders), numberOfPlacehoders == numberOfFiles);
283 for(WebElement actualArtifactFileName : CompositionPage.getAllAddedArtifacts()){
284 assertTrue(fileName.equals(actualArtifactFileName.getText()));
289 public void ManagmentWorkflowTest() throws Exception{
290 String descriptionText = DESCRIPTION,
291 descriptionTextEdit = "kuku2";
293 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
294 ServiceUIUtils.createService(serviceMetadata, getUser());
296 ServiceGeneralPage.getServiceLeftMenu().moveToManagmentWorkflow();
297 ServiceGeneralPage.fillAndAddNewWorkflow(descriptionText, descriptionText);
298 ServiceVerificator.verifyManagmentWorkflow(descriptionText, descriptionText);
300 ServiceGeneralPage.clickAddWorkflow();
301 ServiceGeneralPage.fillAndAddNewWorkflow(descriptionTextEdit, descriptionTextEdit);
305 public void deleteChangeVersionTest() throws Exception{
306 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
307 ServiceUIUtils.createService(serviceMetadata, getUser());
309 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
311 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,"OTHER");
312 CompositionPage.showDeploymentArtifactTab();
313 CompositionPage.clickAddArtifactButton();
314 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
316 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
317 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
318 GeneralPageElements.clickCheckoutButton();
320 changeDeleteAndValidateVersionOnGeneralPage("0.1", "0.2", serviceMetadata.getName());
322 GeneralPageElements.clickCheckoutButton();
323 ResourceGeneralPage.clickSubmitForTestingButton(serviceMetadata.getName());
325 reloginWithNewRole(UserRoleEnum.TESTER);
326 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
327 TesterOperationPage.certifyComponent(serviceMetadata.getName());
329 reloginWithNewRole(UserRoleEnum.DESIGNER);
330 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
331 ResourceGeneralPage.clickCheckoutButton();
333 changeDeleteAndValidateVersionOnGeneralPage("1.0", "1.1", serviceMetadata.getName());
337 public void compositionScreenRightSideButtonsTest() throws Exception{
339 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
340 ServiceUIUtils.createService(serviceMetadata, getUser());
342 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
344 CompositionPage.showInformationTab();
345 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.INFORMATION);
347 //feature removed from UI
348 // CompositionPage.showCompositionTab();
349 // ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.COMPOSITION);
351 CompositionPage.showDeploymentArtifactTab();
352 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.DEPLOYMENT_ARTIFACT_TAB);
354 CompositionPage.showInputsTab();
355 assertTrue(CompositionPage.getOpenTabTitle().size() == 0);
357 CompositionPage.showAPIArtifactTab();
358 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.API);
360 CompositionPage.showInformationArtifactTab();
361 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.INFORMATION_ARTIFACTS);
366 public void addDeploymentArtifactToVFInstanceTest() throws Exception{
368 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
369 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
370 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
372 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
373 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
374 checkInService(serviceMetadata);
375 clickOncanvasElement(computeElement);
376 CompositionPage.showDeploymentArtifactTab();
377 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
381 public void deleteDeploymentArtifactFromVFInstanceTest() throws Exception{
383 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
384 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
385 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
387 createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
388 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
389 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
390 deleteAndVerifyArtifact(actualArtifactList);
395 public void deleteDeploymentArtifactFromVFInstanceNextVersionTest() throws Exception{
398 // throw new SkipException("Open bug 342260");
401 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
402 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
403 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
405 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
406 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
407 checkInService(serviceMetadata);
408 ResourceGeneralPage.clickCheckoutButton();
409 clickOncanvasElement(computeElement);
410 CompositionPage.showDeploymentArtifactTab();
411 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
412 deleteAndVerifyArtifact(actualArtifactList);
413 // change container version
414 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.GeneralElementsEnum.VERSION_HEADER.getValue());
415 GeneralPageElements.selectVersion("V0.1");
416 clickOncanvasElement(computeElement);
417 CompositionPage.showDeploymentArtifactTab();
418 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
422 // service version V0.1 default artifact, service version V0.2 updated artifact
424 public void updateDeploymentArtifactOnVFInstanceNextVersionTest() throws Exception{
427 // throw new SkipException("Open bug 322930");
430 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
431 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
432 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
433 ArtifactInfo artifactUpdate = new ArtifactInfo(filePath, HEAT_FILE_YAML_UPDATE_NAME, DESCRIPTION, ARTIFACT_LABEL_UPDATE,ArtifactTypeEnum.DCAE_INVENTORY_DOC.getType());
435 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
436 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
437 checkInService(serviceMetadata);
438 ResourceGeneralPage.clickCheckoutButton();
439 clickOncanvasElement(computeElement);
440 CompositionPage.showDeploymentArtifactTab();
441 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
442 deleteAndVerifyArtifact(actualArtifactList);
443 // upload new artifact
444 addDeploymentArtifact(artifactUpdate, CanvasManager.getCanvasManager(), computeElement);
445 checkArtifactIfAdded(1, HEAT_FILE_YAML_UPDATE_NAME);
446 // change container version
447 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.GeneralElementsEnum.VERSION_HEADER.getValue());
448 GeneralPageElements.selectVersion("V0.1");
449 clickOncanvasElement(computeElement);
450 CompositionPage.showDeploymentArtifactTab();
451 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
455 public void clickOncanvasElement(CanvasElement computeElement) {
456 CanvasManager canvasManager = CanvasManager.getCanvasManager();
457 canvasManager.clickOnCanvaElement(computeElement);
460 public void checkInService(ServiceReqDetails serviceMetadata) throws Exception {
461 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
462 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
463 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
466 public static void deleteAndVerifyArtifact(List<WebElement> actualArtifactList) {
467 if (actualArtifactList.size()>0){
468 GeneralUIUtils.hoverOnAreaByTestId(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.ARTIFACT_ITEM.getValue() + ARTIFACT_LABEL);
469 SetupCDTest.getExtendTest().log(Status.INFO, "Going to delete " + HEAT_FILE_YAML_NAME + " artifact" + " and check if deleted");
470 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.DELETE.getValue() + ARTIFACT_LABEL);
471 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.ModalItems.OK.getValue());
472 assertTrue("Artifact does not deleted", !GeneralUIUtils.waitForElementInVisibilityByTestId(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME)));
477 public void checkArtifactIfAdded(Integer expectedNumOfARtifacts, String expectedArtifactName) {
479 List<WebElement> actualArtifactList;
480 actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
481 assertTrue("Expected artifact count is: " + expectedNumOfARtifacts + ", but was " + actualArtifactList.size(),expectedNumOfARtifacts==actualArtifactList.size());
483 if(expectedNumOfARtifacts != 0){
484 for(WebElement actualArtifactFileName : CompositionPage.getAllAddedArtifacts()){
485 assertTrue("Artifact name does not match, expected " + expectedArtifactName + ", but was " + actualArtifactFileName.getText(), expectedArtifactName.equals(actualArtifactFileName.getText()));
492 public CanvasElement createServiceWithRiArtifact(ResourceReqDetails atomicResourceMetaData, ServiceReqDetails serviceMetadata, ArtifactInfo artifact) throws Exception, AWTException {
493 ResourceUIUtils.createVF(atomicResourceMetaData, getUser());
494 ResourceGeneralPage.clickSubmitForTestingButton(atomicResourceMetaData.getName());
496 ServiceUIUtils.createService(serviceMetadata, getUser());
498 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
499 CanvasManager canvasManager = CanvasManager.getCanvasManager();
500 CompositionPage.searchForElement(atomicResourceMetaData.getName());
501 CanvasElement computeElement = canvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
502 addDeploymentArtifact(artifact, canvasManager, computeElement);
504 return computeElement;
508 public void addDeploymentArtifact(ArtifactInfo artifact, CanvasManager canvasManager, CanvasElement computeElement) throws Exception {
509 canvasManager.clickOnCanvaElement(computeElement);
510 CompositionPage.showDeploymentArtifactTab();
511 CompositionPage.clickAddArtifactButton();
512 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
516 public void isDisabledAndReadOnlyInCheckin() throws Exception{
517 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
518 ServiceUIUtils.createService(serviceMetadata, getUser());
519 GeneralPageElements.clickCheckinButton(serviceMetadata.getName());
520 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
522 ServiceMetadataEnum[] fieldsForCheck = {ServiceMetadataEnum.SERVICE_NAME,
523 ServiceMetadataEnum.CONTACT_ID,
524 ServiceMetadataEnum.DESCRIPTION,
525 ServiceMetadataEnum.PROJECT_CODE,
526 ServiceMetadataEnum.TAGS};
527 for (ServiceMetadataEnum field: fieldsForCheck){
528 assertTrue(GeneralUIUtils.isElementReadOnly(field.getValue()));
531 assertTrue(GeneralUIUtils.isElementDisabled(ServiceMetadataEnum.CATEGORY.getValue()));
532 assertTrue(GeneralUIUtils.isElementDisabled(DataTestIdEnum.LifeCyleChangeButtons.CREATE.getValue()));
535 // future removed from ui
536 @Test(enabled = false)
537 public void inputsTest() throws Exception{
538 String fileName = "service_input_test_VF2.csar";
540 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
541 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName, getUser());
542 GeneralPageElements.clickCheckinButton(resourceMetaData.getName());
544 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
545 ServiceUIUtils.createService(serviceMetadata, getUser());
547 String selectedInstanceName = addResourceToServiceInCanvas(resourceMetaData);
549 GeneralUIUtils.clickOnElementByTestId("breadcrumbs-button-1");
550 DeploymentArtifactPage.getLeftMenu().moveToInputsScreen();
552 InputsPage.addInputToService(selectedInstanceName, "volume_id");
553 InputsPage.deleteServiceInput(selectedInstanceName, "volume_id");
555 // Trying to find deleted service input
557 InputsPage.getServiceInput(selectedInstanceName, "volume_id");
560 catch(TestException e){
565 public void deploymentViewServiceTest() throws Exception{
567 User user = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
568 String fileName2 = "vSeGWNew.csar";
570 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
571 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
572 Resource resource = AtomicOperationUtils.getResourceObjectByNameAndVersion(UserRoleEnum.DESIGNER, resourceMetaData.getName(), "0.1");
573 List<GroupDefinition> groups = resource.getGroups();
574 for (GroupDefinition group : groups) {
575 if(group.getType().equals("org.openecomp.groups.VfModule")) {
576 for(PropertyDataDefinition property : group.getProperties()){
577 if(property.getName().equals("max_vf_module_instances")) {
578 property.setValue("100");
579 List<PropertyDataDefinition> propertyList = new ArrayList<>();
580 propertyList.add(property);
581 AtomicOperationUtils.updateGroupPropertyOnResource(propertyList, resource, group.getUniqueId(), user, true);
588 ResourceGeneralPage.clickCheckinButton(resourceMetaData.getName());
589 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
590 ServiceUIUtils.createService(serviceMetadata, getUser());
591 addResourceToServiceInCanvas(resourceMetaData);
592 GeneralUIUtils.clickOnElementByTestId("breadcrumbs-button-1");
593 DeploymentArtifactPage.getLeftMenu().moveToDeploymentViewScreen();
594 serviceMetadata.setVersion("0.1");
595 List<WebElement> instanceRowsFromTable = GeneralUIUtils.getElementsByCSS("div[data-tests-id^='hierarchy-instance'] span[class^='expand-collapse-title-text']");
596 for(WebElement instanceRow: instanceRowsFromTable){
597 String instanceRowText = instanceRow.getText();
598 List<WebElement> instanceModulesList = DeploymentPage.getInstanceModulesList(instanceRowText);
599 for (WebElement instanceModule: instanceModulesList){
600 String instanceModuleText = instanceModule.getText();
601 ResourceUIUtils.clickOnElementByText(instanceModuleText, "instance");
602 ServiceVerificator.verifyDeploymentPageSubElements(instanceModuleText.split("\\.\\.")[2], new DeploymentViewVerificator(filePath + fileName2));
603 ServiceVerificator.verifyDisabledServiceProperties();
605 throw new SkipException("Sent email to Edith Ronen, waiting for answer");
607 String isBaseValue = ServiceVerificator.getVFModulePropertyValue(serviceMetadata, "isBase", instanceModuleText);
608 if (isBaseValue.equals("false"))
609 ServiceVerificator.verifyEnabledServiceProperties();
610 ResourceUIUtils.clickOnElementByText(instanceModuleText, "instance");
616 public void vfModuleCustomizationUUIDServiceTest() throws Exception{
617 String fileName2 = "vSeGW.csar";
618 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
619 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
620 ResourceGeneralPage.clickCheckinButton(resourceMetaData.getName());
622 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
623 ServiceUIUtils.createService(serviceMetadata, getUser());
625 addResourceToServiceInCanvas(resourceMetaData);
627 serviceMetadata.setVersion("0.1");
628 ServiceVerificator.verifyVFModuleCustomizationUUID(serviceMetadata);
632 public void checkoutCertifyRemainSameCustomizationUUIDServiceTest() throws Exception{
633 String fileName2 = "vSeGW.csar";
634 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
635 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
636 ResourceGeneralPage.clickSubmitForTestingButton(resourceMetaData.getName());
638 reloginWithNewRole(UserRoleEnum.TESTER);
639 GeneralUIUtils.findComponentAndClick(resourceMetaData.getName());
640 TesterOperationPage.certifyComponent(resourceMetaData.getName());
642 reloginWithNewRole(UserRoleEnum.DESIGNER);
644 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
645 ServiceUIUtils.createService(serviceMetadata, getUser());
647 addResourceToServiceInCanvas(resourceMetaData);
649 serviceMetadata.setVersion("0.1");
650 ServiceVerificator.verifyVFModuleCustomizationUUID(serviceMetadata);
651 List<String> allVFModuleCustomizationUUIDs = ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata);
653 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
654 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
655 GeneralPageElements.clickCheckoutButton();
657 serviceMetadata.setVersion("0.2");
658 assertTrue(ServiceVerificator.isEqualCustomizationUUIDsAfterChanges(allVFModuleCustomizationUUIDs, ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata)));
660 ResourceGeneralPage.clickSubmitForTestingButton(serviceMetadata.getName());
662 reloginWithNewRole(UserRoleEnum.TESTER);
663 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
664 TesterOperationPage.certifyComponent(serviceMetadata.getName());
666 reloginWithNewRole(UserRoleEnum.DESIGNER);
667 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
668 ResourceGeneralPage.clickCheckoutButton();
670 serviceMetadata.setVersion("1.1");
671 serviceMetadata.setUniqueId(null);
672 assertTrue(ServiceVerificator.isEqualCustomizationUUIDsAfterChanges(allVFModuleCustomizationUUIDs, ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata)));
676 public synchronized String addResourceToServiceInCanvas(ResourceReqDetails resourceMetaData) throws Exception {
677 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
678 CanvasManager canvasManager = CanvasManager.getCanvasManager();
679 CompositionPage.searchForElement(resourceMetaData.getName());
680 CanvasElement computeElement = canvasManager.createElementOnCanvas(resourceMetaData.getName());
681 canvasManager.clickOnCanvaElement(computeElement);
682 String selectedInstanceName = CompositionPage.getSelectedInstanceName();
683 return selectedInstanceName;
686 public static void changeDeleteAndValidateVersionOnGeneralPage(String previousVersion, String currentVersion, String serviceName) throws Exception{
687 GeneralPageElements.selectVersion("V" + previousVersion);
688 ServiceVerificator.verifyVersionUI(previousVersion);
689 GeneralUIUtils.clickJSOnElementByText("latest version");
690 ServiceVerificator.verifyVersionUI(currentVersion);
691 GeneralPageElements.clickTrashButtonAndConfirm();
692 GeneralUIUtils.findComponentAndClick(serviceName);
693 ServiceVerificator.verifyVersionUI(previousVersion);
697 protected UserRoleEnum getRole() {
698 return UserRoleEnum.DESIGNER;