@Override
public Void call() throws Exception {
RepositoryFile testFile = new RepositoryFile( "Test Folder", null, null );
Map<IPermissionRecipient, IPermissionMask> perms = new LinkedHashMap<IPermissionRecipient, IPermissionMask>();
perms.put( new SimpleUser( "suzy" ), new SimplePermissionMask( IPentahoAclEntry.PERM_EXECUTE ) );
perms.put( new SimpleRole( "ROLE_POWER_USER" ), new SimplePermissionMask( IPentahoAclEntry.PERM_SUBSCRIBE ) );
SpringSecurityPermissionMgr.instance().setPermissions( perms, testFile );
PentahoBasicAclVoter voter =
new PentahoBasicAclVoterForTesting( new MockAuthentication( "suzy", Arrays.asList( new GrantedAuthority[] {
new SimpleGrantedAuthority( "ROLE_AUTHENTICATED" ), new SimpleGrantedAuthority(
"ROLE_POWER_USER" ) } ) ) );
assertTrue( voter.hasAccess( PentahoSessionHolder.getSession(), testFile, IPentahoAclEntry.PERM_EXECUTE ) );
assertTrue( voter.hasAccess( PentahoSessionHolder.getSession(), testFile, IPentahoAclEntry.PERM_SUBSCRIBE ) );
assertFalse( voter.hasAccess( PentahoSessionHolder.getSession(), testFile,
IPentahoAclEntry.PERM_ADMINISTRATION ) );
PentahoAclEntry entry = voter.getEffectiveAcl( PentahoSessionHolder.getSession(), testFile );
assertNotNull( entry );
assertEquals( entry.printPermissionsBlock(), "XS----" );
return null;
}