login( USERNAME_SUZY, tenantAcme, new String[] { tenantAuthenticatedRoleName } );
RepositoryFile parentFolder =
repo.getFile( ClientRepositoryPaths.getUserHomeFolderPath( PentahoSessionHolder.getSession().getName() ) );
RepositoryFile newFolder = new RepositoryFile.Builder( "test" ).folder( true ).versioned( true ).build();
RepositoryFileSid tiffanySid = new RepositoryFileSid(
userNameUtils.getPrincipleId( tenantAcme, USERNAME_TIFFANY ) );
RepositoryFileSid suzySid = new RepositoryFileSid( userNameUtils.getPrincipleId( tenantAcme, USERNAME_SUZY ) );
// tiffany owns it but suzy is creating it
RepositoryFileAcl.Builder aclBuilder = new RepositoryFileAcl.Builder( tiffanySid );
// need this to be able to fetch acl as suzy
aclBuilder.ace( suzySid, RepositoryFilePermission.READ );
newFolder = repo.createFolder( parentFolder.getId(), newFolder, aclBuilder.build(), null );
RepositoryFileAcl fetchedAcl = repo.getAcl( newFolder.getId() );
assertEquals( new RepositoryFileSid( USERNAME_TIFFANY ), fetchedAcl.getOwner() );
assertLocalAceExists( newFolder, new RepositoryFileSid( USERNAME_SUZY ),
EnumSet.of( RepositoryFilePermission.READ ) );
}