@Test public void testLookupMapUserRoleListMapper() throws Exception { Map<String, String> lookup = new HashMap<String, String>(); lookup.put("ceo", "Role1"); lookup.put("Not Pentaho", "Role2"); lookup.put("Not Mondrian or Pentaho", "Role3"); final MondrianLookupMapUserRoleListMapper mapper = new MondrianLookupMapUserRoleListMapper(); mapper.setLookupMap(lookup); try { String[] roles = SecurityHelper.getInstance() .runAsUser( "admin", new Callable<String[]>() { @Override public String[] call() throws Exception { return mapper.mapConnectionRoles( PentahoSessionHolder.getSession(), "SteelWheelsRoles"); } }); Assert.assertNotNull(roles); Assert.assertEquals(1, roles.length); Assert.assertEquals("Role1", roles[0]); } catch (PentahoAccessControlException e) { Assert.fail(e.getMessage()); } }
@Test public void testNoMatchLookupMapUserRoleListMapper() throws Exception { Map<String, String> lookup = new HashMap<String, String>(); lookup.put("No Match", "Role1"); lookup.put("No Match Here Either", "Role2"); final MondrianLookupMapUserRoleListMapper mapper = new MondrianLookupMapUserRoleListMapper(); mapper.setLookupMap(lookup); mapper.setFailOnEmptyRoleList(true); try { SecurityHelper.getInstance() .runAsUser( "admin", new Callable<String[]>() { @Override public String[] call() throws Exception { return mapper.mapConnectionRoles( PentahoSessionHolder.getSession(), "SteelWheelsRoles"); } }); Assert.fail(); } catch (PentahoAccessControlException e) { // no op. } mapper.setFailOnEmptyRoleList(false); try { String[] roles = SecurityHelper.getInstance() .runAsUser( "admin", new Callable<String[]>() { @Override public String[] call() throws Exception { return mapper.mapConnectionRoles( PentahoSessionHolder.getSession(), "SteelWheelsRoles"); } }); Assert.assertNull(roles); } catch (PentahoAccessControlException e) { Assert.fail(e.getMessage()); } }