1 package vid.automation.test.test;
3 import org.junit.Assert;
4 import org.openecomp.sdc.ci.tests.utilities.GeneralUIUtils;
5 import org.openqa.selenium.WebElement;
6 import vid.automation.test.Constants;
7 import vid.automation.test.infra.Click;
8 import vid.automation.test.infra.Exists;
9 import vid.automation.test.infra.Get;
10 import vid.automation.test.infra.SelectOption;
11 import vid.automation.test.model.Service;
12 import vid.automation.test.model.ServiceModel;
13 import vid.automation.test.sections.ViewEditPage;
15 import java.util.ArrayList;
16 import java.util.List;
18 public class CreateInstanceDialogBaseTest extends VidBaseTestCase {
20 private ViewEditPage viewEditPage= new ViewEditPage();
22 void assertServiceMetadata(String expectedMetadata, String actualMetadata) {
23 WebElement serviceNameElem = GeneralUIUtils.getWebElementByTestID(actualMetadata);
24 String actualServiceName = serviceNameElem.getText();
25 Assert.assertEquals(expectedMetadata, actualServiceName);
28 void validateServiceCreationDialog(Service expectedService) {
29 assertThatServiceCreationDialogIsVisible();
30 assertServiceMetadata(expectedService.name, Constants.SERVICE_NAME);
31 assertServiceMetadata(expectedService.uuid, Constants.SERVICE_UUID);
32 assertServiceMetadata(expectedService.invariantUuid, Constants.SERVICE_INVARIANT_UUID);
33 assertServiceMetadata(expectedService.category, Constants.SERVICE_CATEGORY);
34 assertServiceMetadata(expectedService.version, Constants.SERVICE_VERSION);
35 assertServiceMetadata(expectedService.description, Constants.SERVICE_DESCRIPTION);
38 public void assertThatServiceCreationDialogIsVisible() {
39 boolean byText = GeneralUIUtils.findAndWaitByText(Constants.BrowseASDC.CREATE_SERVICE_INSTANCE, 15);
40 Assert.assertTrue(byText);
43 void assertSuccessfulServiceInstanceCreation() {
44 boolean byText = GeneralUIUtils.findAndWaitByText(Constants.BrowseASDC.SERVICE_INSTANCE_CREATED_SUCCESSFULLY_TEXT, 100);
45 Assert.assertTrue(Constants.BrowseASDC.SERVICE_INSTANCE_CREATION_FAILED_MESSAGE, byText);
48 void validateVnfCreationDialog(ServiceModel expectedServiceInstance) {
49 GeneralUIUtils.ultimateWait();
50 validateNodeTemplateCreationDialog(expectedServiceInstance);
51 assertServiceMetadata(expectedServiceInstance.resourceName, Constants.CreateNewInstance.RESOURCE_NAME);
52 assertServiceMetadata(expectedServiceInstance.nfType, Constants.CreateNewInstance.NF_TYPE);
53 assertServiceMetadata(expectedServiceInstance.nfRole, Constants.CreateNewInstance.NF_ROLE);
54 assertServiceMetadata(expectedServiceInstance.nfFunction, Constants.CreateNewInstance.NF_FUNCTION);
55 assertServiceMetadata(expectedServiceInstance.nfNamingCode, Constants.CreateNewInstance.NF_NAMING_CODE);
58 void validateNodeTemplateCreationDialog(ServiceModel expectedServiceInstance){
59 GeneralUIUtils.ultimateWait();
60 assertServiceMetadata(expectedServiceInstance.serviceName, Constants.SERVICE_NAME);
61 assertServiceMetadata(expectedServiceInstance.subscriberName, Constants.SUBSCRIBER_NAME);
62 assertServiceMetadata(expectedServiceInstance.serviceInstanceName, Constants.SERVICE_INSTANCE_NAME);
63 assertServiceMetadata(expectedServiceInstance.modelName, Constants.CreateNewInstance.MODEL_NAME);
64 assertServiceMetadata(expectedServiceInstance.modelInvariantUuid, Constants.CreateNewInstance.MODEL_INVARIANT_UUID);
65 assertServiceMetadata(expectedServiceInstance.modelVersion, Constants.CreateNewInstance.MODEL_VERSION);
66 assertServiceMetadata(expectedServiceInstance.modelUuid, Constants.CreateNewInstance.MODEL_UUID);
67 assertServiceMetadata(expectedServiceInstance.modelCustomizationUuid, Constants.CreateNewInstance.MODEL_CUSTOMIZATION_UUID);
70 private String fillDetailsInDialogWithGeneratedName(String name, String lcpRegion, String tenant, String suppressRollback,
71 String legacyRegion, ArrayList<String> permittedTenants)
73 String generatedInstanceName = viewEditPage.generateInstanceName(name);
74 return fillDetailsInDialog(generatedInstanceName, lcpRegion, tenant, suppressRollback, legacyRegion, permittedTenants);
77 private String fillDetailsInDialog(String name, String lcpRegion, String tenant, String suppressRollback,
78 String legacyRegion, ArrayList<String> permittedTenants)
80 viewEditPage.setInstanceName(name);
81 viewEditPage.selectLCPRegion(lcpRegion);
82 assertDropdownPermittedItemsByValue(permittedTenants, Constants.ViewEdit.TENANT_OPTION_CLASS);
83 viewEditPage.selectTenant(tenant);
84 viewEditPage.selectSuppressRollback(suppressRollback);
85 viewEditPage.setLegacyRegion(legacyRegion);
90 protected String addVFModule(String name, String lcpRegion, String tenant, String suppressRollback,
91 String legacyRegion, ArrayList<String> permittedTenants,ServiceModel expectedServiceInstance) {
92 viewEditPage.selectVfModuleToAdd(name);
93 if(expectedServiceInstance != null) {
94 validateNodeTemplateCreationDialog(expectedServiceInstance);
96 String instanceName = fillDetailsInDialogWithGeneratedName(Constants.INSTANCE_NAME_SELECT_TESTS_ID, lcpRegion, tenant, suppressRollback, legacyRegion, permittedTenants);
97 viewEditPage.clickConfirmButton();
98 assertSuccessfulVFModuleCreation();
99 viewEditPage.clickCloseButton();
100 GeneralUIUtils.ultimateWait();
104 protected void addVolumeGroup (String name, String lcpRegion, String tenant, String suppressRollback,
105 String legacyRegion, ArrayList<String> permittedTenants, ServiceModel expectedServiceInstance) {
106 viewEditPage.selectVolumeGroupToAdd(name);
107 if(expectedServiceInstance != null) {
108 validateNodeTemplateCreationDialog(expectedServiceInstance);
110 fillDetailsInDialogWithGeneratedName(Constants.ViewEdit.VOLUME_GROUP_INSTANCE_NAME_PREFIX, lcpRegion, tenant, suppressRollback, legacyRegion, permittedTenants);
111 viewEditPage.clickConfirmButton();
112 assertSuccessfulVolumeGroupCreation();
113 viewEditPage.clickCloseButton();
114 GeneralUIUtils.ultimateWait();
117 protected void addVNF(String name, String lcpRegion, String tenant, String suppressRollback,
118 String legacyRegion, String productFamily, String platform, ArrayList<String> permittedTenants, List<String> lobs, ServiceModel serviceModel, String instanceName) {
119 openAndFillVnfPopup(name, lcpRegion, tenant, suppressRollback, legacyRegion, productFamily, platform,permittedTenants, lobs, serviceModel, instanceName);
120 viewEditPage.clickConfirmButton();
121 successConfirmVnfAndClosePopup();
125 protected void openAndFillVnfPopup(String name, String lcpRegion, String tenant, String suppressRollback,
126 String legacyRegion, String productFamily, String platform, ArrayList<String> permittedTenants, List<String> lobs, ServiceModel serviceModel, String instanceName) {
127 viewEditPage.selectNodeInstanceToAdd(name);
128 GeneralUIUtils.ultimateWait();
129 if(serviceModel != null) {
130 validateVnfCreationDialog(serviceModel);
132 viewEditPage.selectProductFamily(productFamily);
133 if(platform != null) {
134 SelectOption.byTestIdAndVisibleText(platform, Constants.OwningEntity.PLATFORM_SELECT_TEST_ID);
137 Click.onFirstSelectOptionById(Constants.OwningEntity.PLATFORM_SELECT_TEST_ID);
140 SelectOption.selectOptionsFromMultiselectById(Constants.OwningEntity.LOB_SELECT_TEST_ID, lobs);
142 fillDetailsInDialog(instanceName, lcpRegion, tenant, suppressRollback, legacyRegion, permittedTenants);
145 protected void successConfirmVnfAndClosePopup() {
146 assertSuccessfulVNFCreation();
147 viewEditPage.clickCloseButton();
148 GeneralUIUtils.ultimateWait();
151 protected void assertConfirmShowMissingDataErrorOnCurrentPopup(String field) {
152 viewEditPage.clickConfirmButton();
153 boolean byclassAndText = Exists.byClassAndText(Constants.ViewEdit.ERROR_CLASS, String.format(Constants.MISSING_DATA, field));
154 Assert.assertFalse(field + " " + Constants.REQUIRED, byclassAndText);
157 protected void cancelPopup() {
158 viewEditPage.clickCancelButtonByTestID();
159 GeneralUIUtils.ultimateWait();
164 public static void AssertUnselectedOptionInMultiselectById(String multiSelectId, String unselectedOption){
165 Click.byId(multiSelectId);
166 WebElement element = Get.byClassAndText(Constants.MULTI_SELECT_UNSELECTED_CLASS, unselectedOption);
167 Assert.assertTrue("The option "+ unselectedOption +" is already selected",element != null);
168 Click.byId(multiSelectId);
171 public void validateDynamicFields(List<String> dynamicFields) {
172 for (String field : dynamicFields) {
173 WebElement fieldElement = GeneralUIUtils.findByText(field);
174 Assert.assertNotNull("couldn't find dynamic field: " + field, fieldElement);