Fix for Penetration test _ Session and cookie management
[vid.git] / vid-automation / src / main / java / vid / automation / test / test / ReadOnlyTest.java
1 package vid.automation.test.test;
2
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;
17
18 import java.sql.*;
19 import java.util.ArrayList;
20 import java.util.List;
21
22 import static vid.automation.test.infra.ModelInfo.aLaCarteServiceCreationTest;
23 import static vid.automation.test.services.SimulatorApi.RegistrationStrategy.APPEND;
24
25 /**
26  * Created by Oren on 7/16/17.
27  */
28 public class ReadOnlyTest extends VidBaseTestCase {
29
30     private String serviceInstanceId = "3f93c7cb-2fd0-4557-9514-e189b7testCR";
31
32
33     @Override
34     protected UserCredentials getUserCredentials() {
35         User user = usersService.getUser(Constants.Users.READONLY);
36         return new UserCredentials(user.credentials.userId, user.credentials.password, "", "", "");
37     }
38
39     @Test
40     public void userIsDefinedAsReadOnlyInDBTest() throws SQLException {
41         User user = usersService.getUser(Constants.Users.READONLY);
42
43         int userId = getUserIdNumberFromDB(user);
44
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);
52         }
53     }
54
55     private void verifyRolesAssignedToUser(Statement stmt, List<Integer> userRoles) throws SQLException {
56         String roleName;
57
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());
64         }
65     }
66
67     @Test
68     public void testBrowsASDCReadOnly() {
69         resetGetServicesCache();
70         registerExpectationForLegacyServiceDeployment(aLaCarteServiceCreationTest, null);
71
72         SideMenu.navigateToBrowseASDCPage();
73         Assert.assertTrue(isDeployBtnDisabled());
74     }
75
76     private boolean isDeployBtnDisabled() {
77         WebElement deployBtn = GeneralUIUtils.getWebElementBy(By.className(Constants.BrowseASDC.DEPOLY_SERVICE_CLASS));
78         return !deployBtn.isEnabled();
79     }
80
81     @Test
82     public void testSearchExistingReadOnly() {
83         SimulatorApi.clearAll();
84         BulkRegistration.searchExistingCRServiceInstance("Created");
85         final PresetAAIGetNetworkCollectionDetails presetAAIGetNetworkCollectionDetails = new PresetAAIGetNetworkCollectionDetails(serviceInstanceId);
86         SimulatorApi.registerExpectationFromPreset(presetAAIGetNetworkCollectionDetails, APPEND);
87
88         searchForExistingInstanceByIdReadonlyMode(serviceInstanceId);
89     }
90
91     @Test
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);
96     }
97
98
99 }