1 package vid.automation.test.test;
3 import com.att.automation.common.report_portal_integration.annotations.Step;
4 import com.att.automation.common.report_portal_integration.listeners.ReportPortalListener;
5 import com.att.automation.common.report_portal_integration.screenshots.WebDriverScreenshotsProvider;
6 import com.fasterxml.jackson.databind.ObjectMapper;
7 import com.google.common.collect.ImmutableList;
8 import org.apache.commons.lang3.StringUtils;
9 import org.junit.Assert;
10 import org.onap.simulator.presetGenerator.presets.BasePresets.BasePreset;
11 import org.onap.simulator.presetGenerator.presets.aai.PresetAAICloudRegionAndSourceFromConfigurationPut;
12 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetNetworkZones;
13 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetPortMirroringSourcePorts;
14 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetServicesGet;
15 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetSubDetailsGet;
16 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetSubscribersGet;
17 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetTenants;
18 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIPostNamedQueryForViewEdit;
19 import org.onap.simulator.presetGenerator.presets.aai.PresetAAISearchNodeQueryEmptyResult;
20 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIServiceDesignAndCreationPut;
21 import org.onap.simulator.presetGenerator.presets.ecompportal_att.PresetGetSessionSlotCheckIntervalGet;
22 import org.onap.simulator.presetGenerator.presets.mso.PresetMSOCreateServiceInstanceGen2;
23 import org.onap.simulator.presetGenerator.presets.mso.PresetMSOCreateServiceInstancePost;
24 import org.onap.simulator.presetGenerator.presets.mso.PresetMSOOrchestrationRequestGet;
25 import org.onap.simulator.presetGenerator.presets.sdc.PresetSDCGetServiceMetadataGet;
26 import org.onap.simulator.presetGenerator.presets.sdc.PresetSDCGetServiceToscaModelGet;
27 import org.openecomp.sdc.ci.tests.datatypes.UserCredentials;
28 import org.openecomp.sdc.ci.tests.execute.setup.SetupCDTest;
29 import org.openecomp.sdc.ci.tests.utilities.FileHandling;
30 import org.openecomp.sdc.ci.tests.utilities.GeneralUIUtils;
31 import org.openqa.selenium.By;
32 import org.openqa.selenium.JavascriptExecutor;
33 import org.openqa.selenium.WebElement;
34 import org.testng.ITestContext;
35 import org.testng.annotations.BeforeMethod;
36 import org.testng.annotations.BeforeSuite;
37 import org.testng.annotations.Listeners;
38 import org.testng.annotations.Test;
39 import vid.automation.test.Constants;
40 import vid.automation.test.infra.*;
41 import vid.automation.test.model.Credentials;
42 import vid.automation.test.model.User;
43 import vid.automation.test.sections.*;
44 import vid.automation.test.services.CategoryParamsService;
45 import vid.automation.test.services.SimulatorApi;
46 import vid.automation.test.services.UsersService;
47 import vid.automation.test.utils.DB_CONFIG;
48 import vid.automation.test.utils.TestConfigurationHelper;
51 import java.lang.reflect.Method;
53 import java.util.ArrayList;
54 import java.util.Arrays;
55 import java.util.List;
57 import java.util.stream.Collectors;
59 import static org.hamcrest.core.Is.is;
60 import static org.testng.Assert.assertEquals;
61 import static org.testng.AssertJUnit.fail;
63 @Listeners(com.att.automation.common.report_portal_integration.listeners.ReportPortalListener.class)
64 public class VidBaseTestCase extends SetupCDTest{
66 protected final UsersService usersService = new UsersService();
67 protected final CategoryParamsService categoryParamsService = new CategoryParamsService();
70 protected UserCredentials getUserCredentials() {
71 ObjectMapper mapper = new ObjectMapper().enableDefaultTyping();
73 File configFile = FileHandling.getConfigFile("credentials");
74 if(!configFile.exists()) {
75 String basePath = System.getProperty("BASE_PATH");
76 configFile = new File( basePath + File.separator + "conf" + File.separator + "credentials");
78 Credentials credentials = mapper.readValue(configFile, Credentials.class);
79 User user = usersService.getUser(credentials.userId);
80 return new UserCredentials(user.credentials.userId, user.credentials.password, credentials.userId, "", "");
81 } catch (Exception e) {
88 protected org.openecomp.sdc.ci.tests.datatypes.Configuration getEnvConfiguration() {
90 return TestConfigurationHelper.getEnvConfiguration();
93 @BeforeMethod(alwaysRun = true)
94 public void setBrowserBeforeTestIfDataProvider(Method method, ITestContext context, Object[] params) {
95 // Hack to overcome limitations of SetupCDTest.setBrowserBeforeTest(java.lang.reflect.Method, org.testng.ITestContext)
96 // that skips over dataProvided methods
97 boolean emptyDataProvider = method.getAnnotation(Test.class).dataProvider().isEmpty();
98 if (!emptyDataProvider) {
99 final String testName = method.getName();
100 final String listOfParams = Arrays.deepToString(params)
103 .replaceAll("[\\\\/:*?\"<>|]", "_");
105 setLog(testName+listOfParams);
109 @BeforeSuite(alwaysRun = true)
110 public void screenShotsForReportPortal(){
112 ReportPortalListener.setScreenShotsProvider(new WebDriverScreenshotsProvider(getDriver()));
113 System.out.println("Called to ReportPortalListener to set ScreenShotsProvider");
114 } catch (Exception e) {
120 protected void loginToLocalSimulator(UserCredentials userCredentials) {
121 LoginExternalPage.performLoginExternal(userCredentials);
124 static public class ModelInfo {
125 public final String modelVersionId;
126 public final String modelInvariantId;
127 public final String zipFileName;
129 public ModelInfo(String modelVersionId, String modelInvariantId, String zipFileName) {
130 this.modelVersionId = modelVersionId;
131 this.modelInvariantId = modelInvariantId;
132 this.zipFileName = zipFileName;
136 protected void registerExpectationForLegacyServiceDeployment(String modelVersionId, String modelInvariantId, String zipFileName, String subscriberId) {
137 registerExpectationForServiceDeployment(ServiceDeployment.LEGACY, ImmutableList.of(new ModelInfo(modelVersionId,modelInvariantId,zipFileName)), subscriberId);
140 private enum ServiceDeployment {ASYNC, LEGACY}
142 protected void registerExpectationForServiceDeployment(ServiceDeployment serviceDeploymentOnMsoExpectations, List<ModelInfo> modelInfoList, String subscriberId) {
143 List<BasePreset> presets = new ArrayList<>(Arrays.asList(
144 new PresetGetSessionSlotCheckIntervalGet(),
145 new PresetAAIGetSubscribersGet(),
146 new PresetAAIGetServicesGet(),
147 new PresetAAIGetSubDetailsGet(subscriberId),
148 new PresetAAIPostNamedQueryForViewEdit("f8791436-8d55-4fde-b4d5-72dd2cf13cfb"),
149 new PresetAAICloudRegionAndSourceFromConfigurationPut("9533-config-LB1113", "myRandomCloudRegionId"),
150 new PresetAAIGetPortMirroringSourcePorts("9533-config-LB1113", "myRandomInterfaceId", "i'm a port", true),
151 new PresetAAIGetNetworkZones(),
152 new PresetAAIGetTenants(),
153 new PresetAAIServiceDesignAndCreationPut(modelInfoList.stream().map(
154 x-> new PresetAAIServiceDesignAndCreationPut.ServiceModelIdentifiers(x.modelVersionId, x.modelInvariantId))
155 .collect(Collectors.toList()))
158 modelInfoList.forEach(modelInfo -> {
159 presets.add(new PresetSDCGetServiceMetadataGet(modelInfo.modelVersionId, modelInfo.modelInvariantId, modelInfo.zipFileName));
160 presets.add(new PresetSDCGetServiceToscaModelGet(modelInfo.modelVersionId, modelInfo.zipFileName));
163 switch (serviceDeploymentOnMsoExpectations) {
165 presets.add(new PresetAAISearchNodeQueryEmptyResult());
166 presets.add(new PresetMSOCreateServiceInstanceGen2());
167 presets.add(new PresetMSOOrchestrationRequestGet("IN_PROGRESS"));
170 presets.add(new PresetMSOCreateServiceInstancePost());
171 presets.add(new PresetMSOOrchestrationRequestGet());
175 SimulatorApi.registerExpectationFromPresets(presets, SimulatorApi.RegistrationStrategy.CLEAR_THEN_SET);
178 protected void relogin(Credentials credentials) throws Exception {
179 // `getWindowTest().getPreviousUser()` is SetupCDTest's state of previous user used
180 if (!credentials.userId.equals(getWindowTest().getPreviousUser())) {
181 UserCredentials userCredentials = new UserCredentials(credentials.userId,
182 credentials.password, "", "", "");
183 reloginWithNewRole(userCredentials);
185 System.out.println(String.format("VidBaseTestCase.relogin() " +
186 "-> '%s' is already logged in, so skipping", credentials.userId));
191 * Validates that permitted options are enabled and others are disabled.
193 * @param permittedItems the list of permitted items.
194 * @param dropdownOptionsClassName the class name of the specific dropdown options.
195 * @return true, if all dropdown options disabled state is according to the permissions.
197 protected void assertDropdownPermittedItemsByValue(ArrayList<String> permittedItems, String dropdownOptionsClassName) {
198 assertDropdownPermittedItemsByValue(permittedItems, dropdownOptionsClassName, "value");
201 protected void assertDropdownPermittedItemsByLabel(ArrayList<String> permittedItems, String dropdownOptionsClassName) {
202 assertDropdownPermittedItemsByValue(permittedItems, dropdownOptionsClassName, "label");
206 * Validates that permitted options are enabled and others are disabled.
208 * @param permittedItems the list of permitted items.
209 * @param dropdownOptionsClassName the class name of the specific dropdown options.
211 * @return true, if all dropdown options disabled state is according to the permissions.
213 private void assertDropdownPermittedItemsByValue(ArrayList<String> permittedItems, String dropdownOptionsClassName, String attribute) {
214 GeneralUIUtils.ultimateWait();
215 List<WebElement> optionsList =
216 GeneralUIUtils.getWebElementsListBy(By.className(dropdownOptionsClassName), 30);
217 for (WebElement option :
219 String optionValue = option.getAttribute(attribute);
220 if ((option.isEnabled() && !permittedItems.contains(optionValue)) ||
221 !option.isEnabled() && permittedItems.contains(optionValue)) {
222 fail(Constants.DROPDOWN_PERMITTED_ASSERT_FAIL_MESSAGE);
227 protected void assertAllIsPermitted(String dropdownOptionsClassName) {
228 GeneralUIUtils.ultimateWait();
229 List<WebElement> optionsList =
230 GeneralUIUtils.getWebElementsListBy(By.className(dropdownOptionsClassName), 30);
231 for (WebElement option :
233 String optionValue = option.getAttribute("value");
234 if (!option.isEnabled()) {
235 fail(Constants.DROPDOWN_PERMITTED_ASSERT_FAIL_MESSAGE);
240 protected void assertDropdownPermittedItemsByName(ArrayList<String> permittedItems, String dropdownOptionsClassName) {
241 GeneralUIUtils.ultimateWait();
242 List<WebElement> optionsList =
243 GeneralUIUtils.getWebElementsListBy(By.className(dropdownOptionsClassName), 30);
244 for (WebElement option :
246 String optionText = option.getText();
247 if ((option.isEnabled() && !permittedItems.contains(optionText)) ||
248 !option.isEnabled() && permittedItems.contains(optionText)) {
249 fail(Constants.DROPDOWN_PERMITTED_ASSERT_FAIL_MESSAGE);
254 protected void assertViewEditButtonState(String expectedButtonText, String UUID) {
255 WebElement viewEditWebElement = GeneralUIUtils.getWebElementByTestID(Constants.VIEW_EDIT_TEST_ID_PREFIX + UUID, 100);
256 Assert.assertEquals(expectedButtonText, viewEditWebElement.getText());
257 GeneralUIUtils.ultimateWait();
261 protected void addNetwork(Map<String, String> metadata,String instanceName, String name, String lcpRegion, String productFamily,String platform, String lineOfBusiness, String tenant, String suppressRollback,
262 String legacyRegion, ArrayList<String> permittedTenants) {
263 ViewEditPage viewEditPage = new ViewEditPage();
265 viewEditPage.selectNetworkToAdd(name);
266 assertModelInfo(metadata, false);
267 viewEditPage.setInstanceName(instanceName);
268 viewEditPage.selectLCPRegion(lcpRegion);
269 viewEditPage.selectProductFamily(productFamily);
270 viewEditPage.selectLineOfBusiness(lineOfBusiness);
271 assertDropdownPermittedItemsByValue(permittedTenants, Constants.ViewEdit.TENANT_OPTION_CLASS);
272 viewEditPage.selectTenant(tenant);
274 viewEditPage.selectSuppressRollback(suppressRollback);
275 viewEditPage.selectPlatform(platform);
276 //viewEditPage.setLegacyRegion(legacyRegion);
278 viewEditPage.clickConfirmButton();
279 viewEditPage.assertMsoRequestModal(Constants.ViewEdit.MSO_SUCCESSFULLY_TEXT);
280 viewEditPage.clickCloseButton();
281 GeneralUIUtils.ultimateWait();
284 void assertSuccessfulVNFCreation() {
285 boolean byText = GeneralUIUtils.findAndWaitByText(Constants.ViewEdit.VNF_CREATED_SUCCESSFULLY_TEXT, 100);
286 Assert.assertTrue(Constants.ViewEdit.VNF_CREATION_FAILED_MESSAGE, byText);
289 void assertSuccessfulPNFAssociation() {
291 boolean byText = GeneralUIUtils.findAndWaitByText(Constants.PnfAssociation.PNF_ASSOCIATED_SUCCESSFULLY_TEXT, 100);
292 Assert.assertTrue(Constants.PnfAssociation.PNF_ASSOCIATED_FAILED_MESSAGE, byText);
294 void assertSuccessfulVolumeGroupCreation() {
295 boolean byText = GeneralUIUtils.findAndWaitByText(Constants.ViewEdit.VOLUME_GROUP_CREATED_SUCCESSFULLY_TEXT, 100);
296 Assert.assertTrue(Constants.ViewEdit.VOLUME_GROUP_CREATION_FAILED_MESSAGE, byText);
299 void assertSuccessfulVFModuleCreation() {
300 boolean byText = GeneralUIUtils.findAndWaitByText(Constants.ViewEdit.VF_MODULE_CREATED_SUCCESSFULLY_TEXT, 100);
301 Assert.assertTrue(Constants.ViewEdit.VF_MODULE_CREATION_FAILED_MESSAGE, byText);
304 @Step("${method}: ${instanceUUID}")
305 void goToExistingInstanceById(String instanceUUID) {
306 SearchExistingPage searchExistingPage = searchExistingInstanceById(instanceUUID);
307 assertViewEditButtonState( Constants.VIEW_EDIT_BUTTON_TEXT, instanceUUID);
309 searchExistingPage.clickEditViewByInstanceId(instanceUUID);
310 GeneralUIUtils.ultimateWait();
313 void searchForExistingInstanceByIdReadonlyMode(String instanceUUID) {
314 searchExistingInstanceById(instanceUUID);
315 assertViewEditButtonState( Constants.VIEW_BUTTON_TEXT, instanceUUID);
318 SearchExistingPage searchExistingInstanceById(String instanceUUID){
319 SearchExistingPage searchExistingPage = new SearchExistingPage();
320 SideMenu.navigateToSearchExistingPage();
321 searchExistingPage.searchForInstanceByUuid(instanceUUID);
322 return searchExistingPage;
326 void goToExistingInstanceByIdNoWait(String instanceUUID) {
327 SearchExistingPage searchExistingPage = searchExistingInstanceById(instanceUUID);
328 searchExistingPage.clickEditViewByInstanceId(instanceUUID);
331 void resumeVFModule(String vfModuleName, String lcpRegion, String tenant, String legacyRegion, ArrayList<String> permittedTenants){
332 ViewEditPage viewEditPage = new ViewEditPage();
333 viewEditPage.clickResumeButton(vfModuleName);
334 viewEditPage.selectLCPRegion(lcpRegion);
335 assertDropdownPermittedItemsByValue(permittedTenants, Constants.ViewEdit.TENANT_OPTION_CLASS);
336 viewEditPage.selectTenant(tenant);
337 viewEditPage.setLegacyRegion(legacyRegion);
338 viewEditPage.clickConfirmButtonInResumeDelete();
339 assertSuccessfulVFModuleCreation();
340 viewEditPage.clickCommitCloseButton();
341 GeneralUIUtils.ultimateWait();
344 void goToExistingInstanceByName(String instanceName) {
345 SearchExistingPage searchExistingPage = new SearchExistingPage();
346 SideMenu.navigateToSearchExistingPage();
347 searchExistingPage.searchForInstanceByName(instanceName);
348 WebElement instanceIdRow = GeneralUIUtils.getWebElementByTestID(Constants.INSTANCE_ID_FOR_NAME_TEST_ID_PREFIX + instanceName, 30);
349 String instanceId = instanceIdRow.getText();
350 assertViewEditButtonState( Constants.VIEW_EDIT_BUTTON_TEXT, instanceId);
351 searchExistingPage.clickEditViewByInstanceId(instanceId);
352 GeneralUIUtils.ultimateWait();
355 String confirmFilterById(String instanceName, String instanceUUID) {
356 WebElement filter = GeneralUIUtils.getWebElementByTestID(Constants.FILTER_SUBSCRIBER_DETAILS_ID, 30);
357 filter.sendKeys(instanceUUID);
359 WebElement firstElement = GeneralUIUtils.getWebElementByTestID(Constants.INSTANCE_ID_FOR_NAME_TEST_ID_PREFIX + instanceName, 30);
360 String filteredId = firstElement.getText();
361 Assert.assertTrue(filteredId.equals(instanceUUID));
365 void goToExistingInstanceBySubscriber(String subscriberName,String instanceName,String instanceUUID) {
366 SearchExistingPage searchExistingPage = new SearchExistingPage();
367 SideMenu.navigateToSearchExistingPage();
368 SelectOption.byIdAndVisibleText(Constants.EditExistingInstance.SELECT_SUBSCRIBER, subscriberName);
369 searchExistingPage.clickSubmitButton();
370 GeneralUIUtils.ultimateWait();
371 confirmFilterById(instanceName, instanceUUID);
372 searchExistingPage.clickEditViewByInstanceId(instanceUUID);
373 GeneralUIUtils.ultimateWait();
376 void selectMsoTestApiOption(String msoTestApiOption) {
377 final String id = "selectTestApi";
378 final String sectionId = "selectTestApiSection";
380 SideMenu.navigateToWelcomePage();
382 if (Exists.byId(sectionId)) {
383 final JavascriptExecutor javascriptExecutor = (JavascriptExecutor) GeneralUIUtils.getDriver();
384 javascriptExecutor.executeScript(
385 "document.getElementById('" + sectionId + "').style.visibility = 'inherit';"
388 if (null == SelectOption.byIdAndVisibleText(id, msoTestApiOption)) {
389 Assert.fail("selectMsoTestApiOptionIfPossible couldnt apply " + msoTestApiOption);
394 protected void assertModelInfo(Map<String, String> expectedMetadata, boolean withPrefix) {
395 Wait.angularHttpRequestsLoaded();
396 GeneralUIUtils.ultimateWait();
397 for (Map.Entry<String, String> item: expectedMetadata.entrySet()) {
398 assertMetadataItem(item.getKey(), item.getValue(), withPrefix);
402 protected <T> void setNewInstance_leftPane_assertModelDataCorrect(Map<String, String> modelKeyToDataTestsIdMap, String prefix, T model) {
403 modelKeyToDataTestsIdMap.forEach((fieldName, dataTestsId) -> {
404 WebElement webElement = Get.byTestId(prefix + dataTestsId);
405 assertEquals(webElement.getText(), getServiceFieldByName(fieldName, model));
409 protected <T> void setNewInstance_leftPane_assertModelLabelsVisibilityCorrect(Map<String, String> modelKeyToDataTestsIdMap, String prefix, T model) {
410 modelKeyToDataTestsIdMap.forEach((fieldName, dataTestsId) -> {
411 WebElement webElement = Get.byTestId(prefix + dataTestsId);
412 String field = getServiceFieldByName(fieldName, model);
413 assertEquals(webElement.isDisplayed(), !(StringUtils.isEmpty(field)) , dataTestsId + " label shouldn't appear when " + fieldName + " is empty");
417 private <T> String getServiceFieldByName(String name, T model) {
419 return model.getClass().getField(name).get(model).toString();
420 } catch (IllegalAccessException | NoSuchFieldException e) {
421 throw new RuntimeException(e);
425 private void assertMetadataItem(String keyTestId, String value, boolean withPrefix) {
426 String elementTestId = (withPrefix ? Constants.ServiceModelInfo.INFO_TEST_ID_PREFIX:"") + keyTestId;
427 String infoItemText = GeneralUIUtils.getWebElementByTestID(elementTestId, 60).getText();
428 Assert.assertThat(String.format(Constants.ServiceModelInfo.METADETA_ERROR_MESSAGE, elementTestId), infoItemText, is(value));
431 public DeployMacroDialogBase getMacroDialog(){
432 if (Features.FLAG_ASYNC_INSTANTIATION.isActive()) {
433 VidBasePage vidBasePage =new VidBasePage();
434 vidBasePage.goToIframe();
435 return new DeployMacroDialog();
438 return new DeployMacroDialogOld();
441 protected void loadServicePopup(String zipFileName, String modelVersionId ) {
442 String modelInvariantId = "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0";
443 String subscriberId = "e433710f-9217-458d-a79d-1c7aff376d89";
444 registerExpectationForServiceDeployment(
445 ServiceDeployment.ASYNC,
447 new ModelInfo(modelVersionId, modelInvariantId, zipFileName),
448 new ModelInfo("f4d84bb4-a416-4b4e-997e-0059973630b9", "598e3f9e-3244-4d8f-a8e0-0e5d7a29eda9", "service-AdiodVmxVpeBvService488-csar-annotations.zip")
451 SideMenu.navigateToBrowseASDCPage();
452 GeneralUIUtils.ultimateWait();
453 loadServicePopupOnBrowseASDCPage(modelVersionId);
456 protected void loadServicePopupOnBrowseASDCPage(String modelVersionId ) {
457 DeployMacroDialog deployMacroDialog = new DeployMacroDialog();
458 deployMacroDialog.goOutFromIframe();
459 deployMacroDialog.clickDeployServiceButtonByServiceUUID(modelVersionId);
460 deployMacroDialog.goToIframe();
461 GeneralUIUtils.ultimateWait();
462 Wait.byText("Model version");
465 public void assertSetButtonDisabled(String buttonTestId) {
466 WebElement webElement = Get.byTestId(buttonTestId);
467 org.testng.Assert.assertFalse(webElement.isEnabled(), "Set button should be disabled if not all mandatory fields are field.");
470 public void assertSetButtonEnabled(String buttonTestId) {
472 WebElement webElement = Get.byTestId(buttonTestId);
473 org.testng.Assert.assertTrue(webElement.isEnabled(), "Set button should be enabled if all mandatory fields are field.");
476 public void assertElementDisabled(String id) {
477 WebElement webElement = Get.byId(id);
478 assert webElement != null;
479 org.testng.Assert.assertFalse(webElement.isEnabled(), "field should be disabled if the field it depends on was not selected yet.");
482 protected int getUserIdNumberFromDB(User user) {
483 try (Connection connection = DriverManager.getConnection(DB_CONFIG.url, DB_CONFIG.username, DB_CONFIG.password)) {
484 Statement stmt = connection.createStatement();
485 ResultSet userIdResultSet;
486 userIdResultSet = stmt.executeQuery("SELECT USER_ID FROM fn_user where LOGIN_ID = '" + user.credentials.userId + "'");
487 Assert.assertTrue("Exactly one user should be found", userIdResultSet.next());
488 int userId = userIdResultSet.getInt("USER_ID");
489 Assert.assertFalse("There are more than one user for id " + userId, userIdResultSet.next());
491 } catch (SQLException e) {
492 throw new IllegalStateException("Cannot connect the database!", e);
496 protected List<Integer> getRoleIDsAssignedToUser(int userId) {
497 try (Connection connection = DriverManager.getConnection(DB_CONFIG.url, DB_CONFIG.username, DB_CONFIG.password)) {
498 Statement stmt = connection.createStatement();
499 ResultSet userRolesResultSet;
500 userRolesResultSet = stmt.executeQuery("SELECT ROLE_ID FROM fn_user_role where USER_ID = '" + userId + "' order by ROLE_ID");
502 List<Integer> userRoles = new ArrayList<Integer>();
503 while (userRolesResultSet.next()) {
504 userRoles.add(userRolesResultSet.getInt("ROLE_ID"));
507 } catch (SQLException e) {
508 throw new IllegalStateException("Cannot connect the database!", e);
512 protected void navigateToViewEditPageOfuspVoiceVidTest444(String aaiModelVersionId) {
513 VidBasePage vidBasePage = new VidBasePage();
514 SideMenu.navigateToWelcomePage();
515 vidBasePage.navigateTo("serviceModels.htm#/instantiate?" +
516 "subscriberId=e433710f-9217-458d-a79d-1c7aff376d89&" +
517 "subscriberName=USP%20VOICE&" +
518 "serviceType=VIRTUAL%20USP&" +
519 "serviceInstanceId=3f93c7cb-2fd0-4557-9514-e189b7b04f9d&" +
520 "aaiModelVersionId=" + aaiModelVersionId + "&" +
522 GeneralUIUtils.ultimateWait();