1 package vid.automation.test.test;
3 import org.junit.Assert;
4 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetNetworkCollectionDetails;
5 import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetSubscribersGet;
6 import org.onap.sdc.ci.tests.datatypes.UserCredentials;
7 import org.onap.sdc.ci.tests.utilities.GeneralUIUtils;
8 import org.openqa.selenium.By;
9 import org.openqa.selenium.WebElement;
10 import org.testng.annotations.Test;
11 import vid.automation.test.Constants;
12 import vid.automation.test.model.User;
13 import vid.automation.test.sections.SideMenu;
14 import vid.automation.test.services.BulkRegistration;
15 import vid.automation.test.services.SimulatorApi;
16 import vid.automation.test.utils.DB_CONFIG;
19 import java.util.ArrayList;
20 import java.util.List;
22 import static vid.automation.test.infra.ModelInfo.aLaCarteServiceCreationTest;
23 import static vid.automation.test.services.SimulatorApi.RegistrationStrategy.APPEND;
26 * Created by Oren on 7/16/17.
28 public class ReadOnlyTest extends VidBaseTestCase {
30 private String serviceInstanceId = "3f93c7cb-2fd0-4557-9514-e189b7testCR";
34 protected UserCredentials getUserCredentials() {
35 User user = usersService.getUser(Constants.Users.READONLY);
36 return new UserCredentials(user.credentials.userId, user.credentials.password, "", "", "");
40 public void userIsDefinedAsReadOnlyInDBTest() throws SQLException {
41 User user = usersService.getUser(Constants.Users.READONLY);
43 int userId = getUserIdNumberFromDB(user);
45 List<Integer> userRoles = getRoleIDsAssignedToUser(userId);
46 Assert.assertTrue("The user should have role number 16", userRoles.contains(16));
47 try (Connection connection = DriverManager.getConnection(DB_CONFIG.url, DB_CONFIG.username, DB_CONFIG.password)) {
48 Statement stmt = connection.createStatement();
49 verifyRolesAssignedToUser(stmt, userRoles);
50 } catch (SQLException e) {
51 throw new IllegalStateException("Cannot connect the database!", e);
55 private void verifyRolesAssignedToUser(Statement stmt, List<Integer> userRoles) throws SQLException {
58 for (Integer roleId : userRoles) {
59 ResultSet roleDetailsResult = stmt.executeQuery("SELECT ROLE_NAME FROM fn_role WHERE ROLE_ID = '" + roleId + "';");
60 Assert.assertTrue("role id " + roleId + "was not found!", roleDetailsResult.next());
61 roleName = roleDetailsResult.getString("ROLE_NAME");
62 Assert.assertTrue("The user should have only 'Standard user", roleName.equalsIgnoreCase("STANDARD USER"));
63 Assert.assertFalse("More than one role was found for role id " + roleId, roleDetailsResult.next());
68 public void testBrowsASDCReadOnly() {
69 resetGetServicesCache();
70 registerExpectationForLegacyServiceDeployment(aLaCarteServiceCreationTest, null);
72 SideMenu.navigateToBrowseASDCPage();
73 Assert.assertTrue(isDeployBtnDisabled());
76 private boolean isDeployBtnDisabled() {
77 WebElement deployBtn = GeneralUIUtils.getWebElementBy(By.className(Constants.BrowseASDC.DEPOLY_SERVICE_CLASS));
78 return !deployBtn.isEnabled();
82 public void testSearchExistingReadOnly() {
83 SimulatorApi.clearAll();
84 BulkRegistration.searchExistingCRServiceInstance("Created");
85 final PresetAAIGetNetworkCollectionDetails presetAAIGetNetworkCollectionDetails = new PresetAAIGetNetworkCollectionDetails(serviceInstanceId);
86 SimulatorApi.registerExpectationFromPreset(presetAAIGetNetworkCollectionDetails, APPEND);
88 searchForExistingInstanceByIdReadonlyMode(serviceInstanceId);
92 private void testCreateNewInstanceReadOnly() {
93 SimulatorApi.registerExpectationFromPreset(new PresetAAIGetSubscribersGet(),SimulatorApi.RegistrationStrategy.APPEND);
94 SideMenu.navigateToCreateNewServicePage();
95 assertDropdownPermittedItemsByValue(new ArrayList<String>(), Constants.CreateNewInstance.SUBSCRIBER_NAME_OPTION_CLASS);