/** * Set whether users belonging to the given role are allowed to write this object. 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 assign access. * @param allowed Whether the given role can write this object. */ public void setRoleWriteAccess(ParseRole role, boolean allowed) { validateRoleState(role); setRoleWriteAccess(role.getName(), allowed); }
@Test(expected = IllegalArgumentException.class) public void testSetRoleWriteAccessWithInvalidRole() { ParseRole role = new ParseRole(); role.setName("Player"); ParseACL acl = new ParseACL(); acl.setRoleWriteAccess(role, true); }
@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()); }