private boolean deployVdb() throws AdminException, FileNotFoundException { boolean vdbOneDeployed; admin.deploy("bqt.vdb", new FileInputStream(UnitTestUtil.getTestDataFile("bqt.vdb"))); AdminUtil.waitForVDBLoad(admin, "bqt", 1, 3); vdbOneDeployed = true; VDB vdb = admin.getVDB("bqt", 1); Model model = vdb.getModels().get(0); admin.assignToModel( "bqt", 1, model.getName(), "Source", "h2", "java:jboss/datasources/ExampleDS"); return vdbOneDeployed; }
@Test public void testDataRoleMapping() throws Exception { admin.deploy("bqt2.vdb", new FileInputStream(UnitTestUtil.getTestDataFile("bqt2.vdb"))); VDB vdb = admin.getVDB("bqt", 2); Model model = vdb.getModels().get(0); admin.assignToModel( "bqt", 2, model.getName(), "Source", "h2", "java:jboss/datasources/ExampleDS"); vdb = admin.getVDB("bqt", 2); assertTrue(vdb.isValid()); List<DataPolicy> policies = vdb.getDataPolicies(); assertEquals(1, policies.size()); DataPolicy dp = policies.get(0); assertEquals("roleOne", dp.getName()); assertEquals(2, dp.getPermissions().size()); assertTrue(dp.isAllowCreateTemporaryTables()); assertTrue(dp.isAnyAuthenticated()); List<String> roleNames = dp.getMappedRoleNames(); assertArrayEquals(new String[] {"ROLE1", "ROLE2"}, roleNames.toArray()); admin.removeDataRoleMapping("bqt", 2, "roleOne", "ROLE1"); vdb = admin.getVDB("bqt", 2); policies = vdb.getDataPolicies(); dp = policies.get(0); roleNames = dp.getMappedRoleNames(); assertArrayEquals(new String[] {"ROLE2"}, roleNames.toArray()); admin.addDataRoleMapping("bqt", 2, "roleOne", "ROLE3"); vdb = admin.getVDB("bqt", 2); policies = vdb.getDataPolicies(); dp = policies.get(0); roleNames = dp.getMappedRoleNames(); assertArrayEquals(new String[] {"ROLE2", "ROLE3"}, roleNames.toArray()); admin.setAnyAuthenticatedForDataRole("bqt", 2, "roleOne", false); vdb = admin.getVDB("bqt", 2); policies = vdb.getDataPolicies(); dp = policies.get(0); assertFalse(dp.isAnyAuthenticated()); }