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.TestException;
49 import org.testng.annotations.BeforeMethod;
50 import org.testng.annotations.Test;
53 import java.util.ArrayList;
54 import java.util.Arrays;
55 import java.util.List;
57 import static org.assertj.core.api.Assertions.assertThat;
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;
69 private static CanvasElement computeElement;
71 public static CanvasElement getComputeElement(){
72 return computeElement;
76 public void beforeTest(){
77 filePath = FileHandling.getFilePath("");
82 public void createService() throws Exception {
83 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
84 ServiceUIUtils.createService(serviceMetadata, getUser());
88 public void validDefaultContactAndTagAfterCreateService() throws Exception{
89 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
90 ServiceUIUtils.createServiceWithDefaultTagAndUserId(serviceMetadata, getUser());
92 assertTrue("wrong userId", getUser().getUserId().equals(ResourceGeneralPage.getContactIdText()));
94 List<String> actualTags = Arrays.asList(ServiceGeneralPage.getTags());
95 assertTrue("wrong tags", (actualTags.size() == 1) && actualTags.get(0).equals(serviceMetadata.getName()));
99 public void updateService() throws Exception {
101 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
102 ServiceUIUtils.createService(serviceMetadata, getUser());
105 ServiceGeneralPage.deleteOldTags(serviceMetadata);
106 serviceMetadata.setName(ElementFactory.getServicePrefix() + "UpdatedName" + serviceMetadata.getName());
107 serviceMetadata.setDescription("updatedDescriptionSanity");
108 serviceMetadata.setProjectCode("654321");
109 serviceMetadata.setContactId("cs6543");
110 serviceMetadata.getTags().addAll(Arrays.asList("updatedTag", "oneMoreUpdatedTag", "lastOne UpdatedTag"));
111 ServiceUIUtils.setServiceCategory(serviceMetadata, ServiceCategoriesEnum.VOIP);
112 ServiceUIUtils.fillServiceGeneralPage(serviceMetadata, getUser());
113 GeneralPageElements.clickCreateButton();
115 ServiceVerificator.verifyServiceUpdatedInUI(serviceMetadata);
119 public void deleteService() throws Exception {
122 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
123 ServiceUIUtils.createService(serviceMetadata, getUser());
126 //GeneralUIUtils.HighlightMyElement(GeneralUIUtils.getWebButton("delete_version"));
127 GeneralPageElements.clickTrashButtonAndConfirm();
130 CatalogUIUtilitis.clickTopMenuButton(TopMenuButtonsEnum.CATALOG);
131 CatalogUIUtilitis.catalogSearchBox(serviceMetadata.getName());
132 ServiceVerificator.verifyServiceDeletedInUI(serviceMetadata);
136 public void checkoutServiceTest() throws Exception{
137 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
138 ServiceUIUtils.createService(serviceMetadata, getUser());
140 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
142 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,"OTHER");
143 CompositionPage.showDeploymentArtifactTab();
144 CompositionPage.clickAddArtifactButton();
145 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
147 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
148 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
149 GeneralPageElements.clickCheckoutButton();
151 serviceMetadata.setVersion("0.2");
152 ServiceVerificator.verifyServiceLifecycle(serviceMetadata, getUser(), LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
153 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CHECKOUT);
154 ServiceVerificator.verifyVersionUI(serviceMetadata.getVersion());
156 ResourceGeneralPage.clickSubmitForTestingButton(serviceMetadata.getName());
158 reloginWithNewRole(UserRoleEnum.TESTER);
159 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
160 TesterOperationPage.certifyComponent(serviceMetadata.getName());
162 reloginWithNewRole(UserRoleEnum.DESIGNER);
163 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
164 ResourceGeneralPage.clickCheckoutButton();
166 serviceMetadata.setVersion("1.1");
167 serviceMetadata.setUniqueId(null);
168 ServiceVerificator.verifyServiceLifecycle(serviceMetadata, getUser(), LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
169 VfVerificator.verifyVfLifecycleInUI(LifeCycleStateEnum.CHECKOUT);
170 ServiceVerificator.verifyVersionUI(serviceMetadata.getVersion());
174 public void submitServiceForTestingWithNonCertifiedAsset() throws Exception{
176 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
177 ResourceUIUtils.createVF(atomicResourceMetaData, getUser());
178 //TODO Andrey changed to click on ceckIn button
179 ResourceGeneralPage.clickCheckinButton(atomicResourceMetaData.getName());
181 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
182 ServiceUIUtils.createService(serviceMetadata, getUser());
183 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
184 CanvasManager canvasManager = CanvasManager.getCanvasManager();
185 CompositionPage.searchForElement(atomicResourceMetaData.getName());
186 canvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
189 CompositionPage.clickSubmitForTestingButton(serviceMetadata.getName());
193 String errorMessage = GeneralUIUtils.getWebElementByClassName("w-sdc-modal-caption").getText();
194 String checkUIResponseOnError = ErrorValidationUtils.checkUIResponseOnError(ActionStatus.VALIDATED_RESOURCE_NOT_FOUND.name());
195 assertTrue(errorMessage.contains(checkUIResponseOnError));
198 ResourceRestUtils.deleteResourceByNameAndVersion(atomicResourceMetaData.getName(), "0.1");
204 public void createLinkService() throws Exception{
205 String fileName2 = "vSeGW.csar";
206 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
207 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
208 ResourceGeneralPage.clickCheckinButton(resourceMetaData.getName());
210 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
211 ServiceUIUtils.createService(serviceMetadata, getUser());
212 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
213 CanvasManager canvasManager = CanvasManager.getCanvasManager();
214 CompositionPage.searchForElement(resourceMetaData.getName());
215 CanvasElement firstElement = canvasManager.createElementOnCanvas(resourceMetaData.getName());
216 CanvasElement secondElement = canvasManager.createElementOnCanvas(resourceMetaData.getName());
217 canvasManager.linkElements(firstElement, secondElement);
221 public void addDeploymentArtifactInCompositionScreenTest() throws Exception{
222 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
223 ServiceUIUtils.createService(serviceMetadata, getUser());
225 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
226 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,"OTHER");
227 CompositionPage.showDeploymentArtifactTab();
228 CompositionPage.clickAddArtifactButton();
229 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
231 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
232 AssertJUnit.assertEquals(1, actualArtifactList.size());
234 for(WebElement actualArtifactFileName : CompositionPage.getAllAddedArtifacts()){
235 assertTrue(HEAT_FILE_YAML_NAME.equals(actualArtifactFileName.getText()));
241 public void addInformationArtifactInCompositionScreenTest() throws Exception{
242 String descriptionText = DESCRIPTION;
243 List<String> artifactFileNames = new ArrayList<>();
245 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
246 ServiceUIUtils.createService(serviceMetadata, getUser());
248 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
249 ArtifactInfo artifactInfo = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, descriptionText, ARTIFACT_LABEL,"OTHER");
250 CompositionPage.showInformationArtifactTab();
251 List<WebElement> beforeArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
252 CompositionPage.clickAddArtifactButton();
253 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifactInfo, CompositionPage.artifactPopup());
255 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
256 assertThat(actualArtifactList).as("Check number of artifacts").hasSize(beforeArtifactList.size() + 1);
257 int fileNameCounter = 0;
259 for(DataTestIdEnum.InformationalArtifactsService artifact: DataTestIdEnum.InformationalArtifactsService.values()){
260 fileName = HEAT_FILE_YAML_NAME_PREFIX + fileNameCounter + HEAT_FILE_YAML_NAME_SUFFIX;
261 ArtifactUIUtils.fillPlaceHolderInformationalArtifact(artifact,
262 FileHandling.getFilePath("uniqueFileNames"), fileName, descriptionText);
263 artifactFileNames.add(fileName);
266 artifactFileNames.add(HEAT_FILE_YAML_NAME);
267 int numberOfFiles = CompositionPage.getAllAddedArtifacts().size();
268 assertThat(numberOfFiles).as("Check number of artifacts").isEqualTo(beforeArtifactList.size() + 1);
271 for(WebElement actualArtifact : CompositionPage.getAllAddedArtifacts()){
272 assertThat(actualArtifact.getText()).isEqualTo(artifactFileNames.get(fileNameCounter));
278 public void addAPIArtifactInCompositionScreenTest() throws Exception{
279 String fileName = HEAT_FILE_YAML_NAME,
280 descriptionText = DESCRIPTION,
281 url = "http://kuku.com";
282 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
283 ServiceUIUtils.createService(serviceMetadata, getUser());
285 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
286 new ArtifactInfo(filePath, fileName, descriptionText, ARTIFACT_LABEL,"OTHER");
287 CompositionPage.showAPIArtifactTab();
289 for(DataTestIdEnum.APIArtifactsService artifact: DataTestIdEnum.APIArtifactsService.values()){
290 ArtifactUIUtils.fillPlaceHolderAPIArtifact(artifact, filePath, fileName, descriptionText, url);
292 int numberOfFiles = CompositionPage.getAllAddedArtifacts().size(),
293 numberOfPlacehoders = DataTestIdEnum.APIArtifactsService.values().length;
294 assertTrue(String.format("Wrong file count, should be %s files", numberOfPlacehoders), numberOfPlacehoders == numberOfFiles);
296 for(WebElement actualArtifactFileName : CompositionPage.getAllAddedArtifacts()){
297 assertTrue(fileName.equals(actualArtifactFileName.getText()));
302 public void ManagmentWorkflowTest() throws Exception{
303 String descriptionText = DESCRIPTION,
304 descriptionTextEdit = "kuku2";
306 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
307 ServiceUIUtils.createService(serviceMetadata, getUser());
309 ServiceGeneralPage.getServiceLeftMenu().moveToManagmentWorkflow();
310 ServiceGeneralPage.fillAndAddNewWorkflow(descriptionText, descriptionText);
311 ServiceVerificator.verifyManagmentWorkflow(descriptionText, descriptionText);
313 ServiceGeneralPage.clickAddWorkflow();
314 ServiceGeneralPage.fillAndAddNewWorkflow(descriptionTextEdit, descriptionTextEdit);
318 public void deleteChangeVersionTest() throws Exception{
319 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
320 ServiceUIUtils.createService(serviceMetadata, getUser());
322 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
324 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,"OTHER");
325 CompositionPage.showDeploymentArtifactTab();
326 CompositionPage.clickAddArtifactButton();
327 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
329 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
330 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
331 GeneralPageElements.clickCheckoutButton();
333 changeDeleteAndValidateVersionOnGeneralPage("0.1", "0.2", serviceMetadata.getName());
335 GeneralPageElements.clickCheckoutButton();
336 ResourceGeneralPage.clickSubmitForTestingButton(serviceMetadata.getName());
338 reloginWithNewRole(UserRoleEnum.TESTER);
339 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
340 TesterOperationPage.certifyComponent(serviceMetadata.getName());
342 reloginWithNewRole(UserRoleEnum.DESIGNER);
343 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
344 ResourceGeneralPage.clickCheckoutButton();
346 changeDeleteAndValidateVersionOnGeneralPage("1.0", "1.1", serviceMetadata.getName());
350 public void compositionScreenRightSideButtonsTest() throws Exception{
352 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
353 ServiceUIUtils.createService(serviceMetadata, getUser());
355 ResourceGeneralPage.getLeftMenu().moveToCompositionScreen();
357 CompositionPage.showInformationTab();
358 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.INFORMATION);
360 //feature removed from UI
361 // CompositionPage.showCompositionTab();
362 // ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.COMPOSITION);
364 CompositionPage.showDeploymentArtifactTab();
365 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.DEPLOYMENT_ARTIFACT_TAB);
367 CompositionPage.showInputsTab();
368 assertTrue(CompositionPage.getOpenTabTitle().size() == 0);
370 CompositionPage.showAPIArtifactTab();
371 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.API);
373 CompositionPage.showInformationArtifactTab();
374 ServiceVerificator.verifyOpenTabTitle(CompositionScreenEnum.INFORMATION_ARTIFACTS);
379 public void addDeploymentArtifactToVFInstanceTest() throws Exception{
381 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
382 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
383 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
385 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
386 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
387 checkInService(serviceMetadata);
388 clickOncanvasElement(computeElement);
389 CompositionPage.showDeploymentArtifactTab();
390 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
394 public void deleteDeploymentArtifactFromVFInstanceTest() throws Exception{
396 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
397 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
398 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
400 createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
401 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
402 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
403 deleteAndVerifyArtifact(actualArtifactList);
408 public void deleteDeploymentArtifactFromVFInstanceNextVersionTest() throws Exception{
411 // throw new SkipException("Open bug 342260");
414 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
415 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
416 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
418 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
419 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
420 checkInService(serviceMetadata);
421 ResourceGeneralPage.clickCheckoutButton();
422 clickOncanvasElement(computeElement);
423 CompositionPage.showDeploymentArtifactTab();
424 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
425 deleteAndVerifyArtifact(actualArtifactList);
426 // change container version
427 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.GeneralElementsEnum.VERSION_HEADER.getValue());
428 GeneralPageElements.selectVersion("V0.1");
429 clickOncanvasElement(computeElement);
430 CompositionPage.showDeploymentArtifactTab();
431 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
435 // service version V0.1 default artifact, service version V0.2 updated artifact
437 public void updateDeploymentArtifactOnVFInstanceNextVersionTest() throws Exception{
440 // throw new SkipException("Open bug 322930");
443 ResourceReqDetails atomicResourceMetaData = ElementFactory.getDefaultResourceByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT, ResourceCategoryEnum.NETWORK_L2_3_ROUTERS, getUser());
444 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
445 ArtifactInfo artifact = new ArtifactInfo(filePath, HEAT_FILE_YAML_NAME, DESCRIPTION, ARTIFACT_LABEL,ArtifactTypeEnum.SNMP_POLL.getType());
446 ArtifactInfo artifactUpdate = new ArtifactInfo(filePath, HEAT_FILE_YAML_UPDATE_NAME, DESCRIPTION, ARTIFACT_LABEL_UPDATE,ArtifactTypeEnum.DCAE_INVENTORY_DOC.getType());
448 CanvasElement computeElement = createServiceWithRiArtifact(atomicResourceMetaData, serviceMetadata, artifact);
449 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
450 checkInService(serviceMetadata);
451 ResourceGeneralPage.clickCheckoutButton();
452 clickOncanvasElement(computeElement);
453 CompositionPage.showDeploymentArtifactTab();
454 List<WebElement> actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
455 deleteAndVerifyArtifact(actualArtifactList);
456 // upload new artifact
457 addDeploymentArtifact(artifactUpdate, CanvasManager.getCanvasManager(), computeElement);
458 checkArtifactIfAdded(1, HEAT_FILE_YAML_UPDATE_NAME);
459 // change container version
460 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.GeneralElementsEnum.VERSION_HEADER.getValue());
461 GeneralPageElements.selectVersion("V0.1");
462 clickOncanvasElement(computeElement);
463 CompositionPage.showDeploymentArtifactTab();
464 checkArtifactIfAdded(1, HEAT_FILE_YAML_NAME);
468 public void clickOncanvasElement(CanvasElement computeElement) {
469 CanvasManager canvasManager = CanvasManager.getCanvasManager();
470 canvasManager.clickOnCanvaElement(computeElement);
473 public void checkInService(ServiceReqDetails serviceMetadata) throws Exception {
474 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
475 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
476 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
479 public static void deleteAndVerifyArtifact(List<WebElement> actualArtifactList) {
480 if (actualArtifactList.size()>0){
481 GeneralUIUtils.hoverOnAreaByTestId(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.ARTIFACT_ITEM.getValue() + ARTIFACT_LABEL);
482 SetupCDTest.getExtendTest().log(Status.INFO, "Going to delete " + HEAT_FILE_YAML_NAME + " artifact" + " and check if deleted");
483 GeneralUIUtils.clickOnElementByTestId(DataTestIdEnum.DeploymentArtifactCompositionRightMenu.DELETE.getValue() + ARTIFACT_LABEL);
484 GeneralPageElements.clickOKButton();
485 assertTrue("Artifact does not deleted", !GeneralUIUtils.waitForElementInVisibilityByTestId(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME)));
490 public void checkArtifactIfAdded(Integer expectedNumOfARtifacts, String expectedArtifactName) {
492 List<WebElement> actualArtifactList;
493 actualArtifactList = GeneralUIUtils.getWebElementsListBy(By.className(GET_ARTIFACT_LIST_BY_CLASS_NAME));
494 assertTrue("Expected artifact count is: " + expectedNumOfARtifacts + ", but was " + actualArtifactList.size(),expectedNumOfARtifacts==actualArtifactList.size());
496 if(expectedNumOfARtifacts != 0){
497 for(WebElement actualArtifactFileName : CompositionPage.getAllAddedArtifacts()){
498 assertTrue("Artifact name does not match, expected " + expectedArtifactName + ", but was " + actualArtifactFileName.getText(), expectedArtifactName.equals(actualArtifactFileName.getText()));
505 public CanvasElement createServiceWithRiArtifact(ResourceReqDetails atomicResourceMetaData, ServiceReqDetails serviceMetadata, ArtifactInfo artifact) throws Exception, AWTException {
506 ResourceUIUtils.createVF(atomicResourceMetaData, getUser());
507 //TODO Andrey should click on certify button
508 ResourceGeneralPage.clickCertifyButton(atomicResourceMetaData.getName());
510 ServiceUIUtils.createService(serviceMetadata, getUser());
512 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
513 CanvasManager canvasManager = CanvasManager.getCanvasManager();
514 CompositionPage.searchForElement(atomicResourceMetaData.getName());
515 CanvasElement computeElement = canvasManager.createElementOnCanvas(atomicResourceMetaData.getName());
516 addDeploymentArtifact(artifact, canvasManager, computeElement);
518 return computeElement;
522 public void addDeploymentArtifact(ArtifactInfo artifact, CanvasManager canvasManager, CanvasElement computeElement) throws Exception {
523 canvasManager.clickOnCanvaElement(computeElement);
524 CompositionPage.showDeploymentArtifactTab();
525 CompositionPage.clickAddArtifactButton();
526 ArtifactUIUtils.fillAndAddNewArtifactParameters(artifact, CompositionPage.artifactPopup());
530 public void isDisabledAndReadOnlyInCheckin() throws Exception{
531 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
532 ServiceUIUtils.createService(serviceMetadata, getUser());
533 GeneralPageElements.clickCheckinButton(serviceMetadata.getName());
534 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
536 ServiceMetadataEnum[] fieldsForCheck = {ServiceMetadataEnum.SERVICE_NAME,
537 ServiceMetadataEnum.CONTACT_ID,
538 ServiceMetadataEnum.DESCRIPTION,
539 ServiceMetadataEnum.PROJECT_CODE,
540 ServiceMetadataEnum.TAGS};
541 for (ServiceMetadataEnum field: fieldsForCheck){
542 assertTrue(GeneralUIUtils.isElementReadOnly(field.getValue()));
545 assertTrue(GeneralUIUtils.isElementDisabled(ServiceMetadataEnum.CATEGORY.getValue()));
546 assertTrue(GeneralUIUtils.isElementDisabled(DataTestIdEnum.LifeCyleChangeButtons.CREATE.getValue()));
549 // future removed from ui
550 @Test(enabled = false)
551 public void inputsTest() throws Exception{
552 String fileName = "service_input_test_VF2.csar";
554 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType(ResourceTypeEnum.VF, getUser());
555 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName, getUser());
556 GeneralPageElements.clickCheckinButton(resourceMetaData.getName());
558 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
559 ServiceUIUtils.createService(serviceMetadata, getUser());
561 String selectedInstanceName = addResourceToServiceInCanvas(resourceMetaData);
563 GeneralUIUtils.clickOnElementByTestId("breadcrumbs-button-1");
564 DeploymentArtifactPage.getLeftMenu().moveToInputsScreen();
566 InputsPage.addInputToService(selectedInstanceName, "volume_id");
567 InputsPage.deleteServiceInput(selectedInstanceName, "volume_id");
569 // Trying to find deleted service input
571 InputsPage.getServiceInput(selectedInstanceName, "volume_id");
574 catch(TestException e){
579 public void deploymentViewServiceTest() throws Exception{
581 User user = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
582 String fileName2 = "vSeGWNew.csar";
584 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
585 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
586 Resource resource = AtomicOperationUtils.getResourceObjectByNameAndVersion(UserRoleEnum.DESIGNER, resourceMetaData.getName(), "0.1");
588 // update group property max_vf_module_instances of VF Module to 100
589 List<GroupDefinition> groups = resource.getGroups();
590 for (GroupDefinition group : groups) {
591 if(group.getType().equals("org.openecomp.groups.VfModule")) {
592 for(PropertyDataDefinition property : group.getProperties()){
593 if(property.getName().equals("max_vf_module_instances")) {
594 // property.setValue("100");
595 // List<PropertyDataDefinition> propertyList = new ArrayList<>();
596 // propertyList.add(property);
597 // todo pass to method correct object instaed of value for custom json
598 AtomicOperationUtils.updateGroupPropertyOnResource("100", resource, group.getUniqueId(), user, true);
605 ResourceGeneralPage.clickCheckinButton(resourceMetaData.getName());
606 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
607 ServiceUIUtils.createService(serviceMetadata, getUser());
608 addResourceToServiceInCanvas(resourceMetaData);
609 GeneralUIUtils.clickOnElementByTestId("breadcrumbs-button-1");
610 DeploymentArtifactPage.getLeftMenu().moveToDeploymentViewScreen();
611 serviceMetadata.setVersion("0.1");
612 List<WebElement> instanceRowsFromTable = GeneralUIUtils.getElementsByCSS("div[data-tests-id^='hierarchy-instance'] span[class^='expand-collapse-title-text']");
613 for(WebElement instanceRow: instanceRowsFromTable){
614 String instanceRowText = instanceRow.getText();
615 List<WebElement> instanceModulesList = DeploymentPage.getInstanceModulesList(instanceRowText);
616 for (WebElement instanceModule: instanceModulesList){
617 String instanceModuleText = instanceModule.getText();
618 ResourceUIUtils.clickOnElementByText(instanceModuleText, "instance");
619 ServiceVerificator.verifyDeploymentPageSubElements(instanceModuleText.split("\\.\\.")[2], new DeploymentViewVerificator(filePath + fileName2));
620 ServiceVerificator.verifyDisabledServiceProperties();
622 // throw new SkipException("Sent email to Edith Ronen, waiting for answer");
623 SetupCDTest.getExtendTest().log(Status.INFO, "Sent email to Edith Ronen, waiting for answer");
625 String isBaseValue = ServiceVerificator.getVFModulePropertyValue(serviceMetadata, "isBase", instanceModuleText);
626 if (isBaseValue.equals("false"))
627 ServiceVerificator.verifyEnabledServiceProperties();
628 ResourceUIUtils.clickOnElementByText(instanceModuleText, "instance");
634 public void vfModuleCustomizationUUIDServiceTest() throws Exception{
635 String fileName2 = "vSeGW.csar";
636 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
637 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
638 ResourceGeneralPage.clickCheckinButton(resourceMetaData.getName());
640 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
641 ServiceUIUtils.createService(serviceMetadata, getUser());
643 addResourceToServiceInCanvas(resourceMetaData);
645 serviceMetadata.setVersion("0.1");
646 ServiceVerificator.verifyVFModuleCustomizationUUID(serviceMetadata);
650 public void checkoutCertifyRemainSameCustomizationUUIDServiceTest() throws Exception{
651 String fileName2 = "vSeGW.csar";
652 ResourceReqDetails resourceMetaData = ElementFactory.getDefaultResourceByType("ciRes", NormativeTypesEnum.ROOT, ResourceCategoryEnum.APPLICATION_L4_DATABASE, getUser().getUserId(), ResourceTypeEnum.VF.toString());
653 ResourceUIUtils.importVfFromCsar(resourceMetaData, filePath, fileName2, getUser());
654 //TODO Andrey should click on certify button
655 ResourceGeneralPage.clickCertifyButton(resourceMetaData.getName());
657 /*reloginWithNewRole(UserRoleEnum.TESTER);
658 GeneralUIUtils.findComponentAndClick(resourceMetaData.getName());
659 TesterOperationPage.certifyComponent(resourceMetaData.getName());
661 reloginWithNewRole(UserRoleEnum.DESIGNER);*/
663 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
664 ServiceUIUtils.createService(serviceMetadata, getUser());
666 addResourceToServiceInCanvas(resourceMetaData);
668 serviceMetadata.setVersion("0.1");
669 ServiceVerificator.verifyVFModuleCustomizationUUID(serviceMetadata);
670 List<String> allVFModuleCustomizationUUIDs = ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata);
672 ResourceGeneralPage.clickCheckinButton(serviceMetadata.getName());
673 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
674 GeneralPageElements.clickCheckoutButton();
676 serviceMetadata.setVersion("0.2");
677 assertTrue(ServiceVerificator.isEqualCustomizationUUIDsAfterChanges(allVFModuleCustomizationUUIDs, ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata)));
679 ResourceGeneralPage.clickSubmitForTestingButton(serviceMetadata.getName());
681 reloginWithNewRole(UserRoleEnum.TESTER);
682 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
683 TesterOperationPage.certifyComponent(serviceMetadata.getName());
685 reloginWithNewRole(UserRoleEnum.DESIGNER);
686 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
687 ResourceGeneralPage.clickCheckoutButton();
689 serviceMetadata.setVersion("1.1");
690 serviceMetadata.setUniqueId(null);
691 assertTrue(ServiceVerificator.isEqualCustomizationUUIDsAfterChanges(allVFModuleCustomizationUUIDs, ServiceVerificator.getAllVFModuleCustomizationUUIDs(serviceMetadata)));
695 public void createServiceWithALaCarteInstanTypeAndCheckItsTosca() throws Exception {
696 getExtendTest().log(Status.INFO, "Starting the test: createServiceWithALaCarteInstanTypeAndCheckItsTosca.");
697 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
698 ServiceUIUtils.createServiceWithDefaultTagAndUserId(serviceMetadata, getUser());
699 getExtendTest().log(Status.INFO, "Done creating service over the UI, "
700 + "about to move into Tosca Artifacts section.");
701 ResourceGeneralPage.moveToToscaArtifactsSectionAndDownloadTosca();
702 getExtendTest().log(Status.INFO, "Downloaded Template YAML File.");
703 AssertJUnit.assertTrue(ServiceGeneralPage.parseToscaFileIntoServiceAndValidateProperties(serviceMetadata));
704 getExtendTest().log(Status.INFO, "Test is successful.");
708 public void createServiceWithALaCarteInstanTypeAndVerifyChosenValue() throws Exception {
709 getExtendTest().log(Status.INFO, "Starting the test: createServiceWithALaCarteInstanTypeAndVerifyChosenValue.");
710 ServiceReqDetails serviceMetadata = ElementFactory.getDefaultService();
711 ServiceUIUtils.createServiceWithDefaultTagAndUserId(serviceMetadata, getUser());
712 getExtendTest().log(Status.INFO, "Done creating service over the UI, "
713 + "about to move into Home page.");
714 HomePage.navigateToHomePage();
715 GeneralUIUtils.findComponentAndClick(serviceMetadata.getName());
716 assertTrue(serviceMetadata.getInstantiationType().equals(ServiceGeneralPage.getInstantiationTypeChosenValue()));
720 public static synchronized String addResourceToServiceInCanvas(ResourceReqDetails resourceMetaData) throws Exception {
721 DeploymentArtifactPage.getLeftMenu().moveToCompositionScreen();
722 if (computeElement == null) {
723 computeElement = createCanvasElement(resourceMetaData);
725 CanvasManager.getCanvasManager().clickOnCanvaElement(computeElement);
726 return CompositionPage.getSelectedInstanceName();
729 private static synchronized CanvasElement createCanvasElement(ResourceReqDetails resourceMetaData) throws Exception {
730 CompositionPage.searchForElement(resourceMetaData.getName());
731 return CanvasManager.getCanvasManager().createElementOnCanvas(resourceMetaData.getName());
734 public static void changeDeleteAndValidateVersionOnGeneralPage(String previousVersion, String currentVersion, String serviceName) throws Exception{
735 GeneralPageElements.selectVersion("V" + previousVersion);
736 ServiceVerificator.verifyVersionUI(previousVersion);
737 GeneralUIUtils.clickJSOnElementByText("latest version");
738 ServiceVerificator.verifyVersionUI(currentVersion);
739 GeneralPageElements.clickTrashButtonAndConfirm();
740 GeneralUIUtils.findComponentAndClick(serviceName);
741 ServiceVerificator.verifyVersionUI(previousVersion);
745 protected UserRoleEnum getRole() {
746 return UserRoleEnum.DESIGNER;