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() );