/** * Get whether users belonging to the given role are allowed to write this object. Even if this * returns {@code false}, the role may still be able to write it if a parent role has write * access. The role must already be saved on the server and its data must have been fetched in * order to use this method. * * @param role The role to check for access. * @return {@code true} if the role has write access. {@code false} otherwise. */ public boolean getRoleWriteAccess(ParseRole role) { validateRoleState(role); return getRoleWriteAccess(role.getName()); }
@Test(expected = IllegalArgumentException.class) public void testGetRoleWriteAccessWithInvalidRole() { ParseACL acl = new ParseACL(); ParseRole role = new ParseRole(); role.setName("Player"); acl.getRoleWriteAccess(role); }
@Test public void testSetRoleWriteAccess() { ParseRole role = new ParseRole(); role.setName("Player"); role.setObjectId("test"); ParseACL acl = new ParseACL(); acl.setRoleWriteAccess(role, true); assertTrue(acl.getRoleWriteAccess(role)); assertEquals(1, acl.getPermissionsById().size()); }
@Test public void testGetRoleWriteAccess() { ParseACL acl = new ParseACL(); ParseRole role = new ParseRole(); role.setName("Player"); role.setObjectId("test"); acl.setRoleWriteAccess(role, true); assertTrue(acl.getRoleWriteAccess(role)); }
@Test public void testParcelable() { ParseACL acl = new ParseACL(); acl.setReadAccess("userId", true); ParseUser user = new ParseUser(); user.setObjectId("userId2"); acl.setReadAccess(user, true); acl.setRoleWriteAccess("role", true); acl.setShared(true); Parcel parcel = Parcel.obtain(); acl.writeToParcel(parcel, 0); parcel.setDataPosition(0); acl = ParseACL.CREATOR.createFromParcel(parcel); assertTrue(acl.getReadAccess("userId")); assertTrue(acl.getReadAccess(user)); assertTrue(acl.getRoleWriteAccess("role")); assertTrue(acl.isShared()); assertFalse(acl.getPublicReadAccess()); assertFalse(acl.getPublicWriteAccess()); }