@Test public void testConstructor() { ParseACL acl = new ParseACL(); assertEquals(0, acl.getPermissionsById().size()); }
@Test public void testSetUserReadAccessWithLazyUser() { ParseUser unresolvedUser = mock(ParseUser.class); when(unresolvedUser.isLazy()).thenReturn(true); ParseACL acl = new ParseACL(); acl.setReadAccess(unresolvedUser, true); assertSame(unresolvedUser, acl.getUnresolvedUser()); verify(unresolvedUser, times(1)).registerSaveListener(any(GetCallback.class)); assertTrue(acl.getPermissionsById().containsKey(UNRESOLVED_KEY)); assertTrue(acl.getReadAccess(unresolvedUser)); assertEquals(1, acl.getPermissionsById().size()); }
@Test public void testSetUserWriteAccessWithLazyUser() { ParseUser user = mock(ParseUser.class); when(user.isLazy()).thenReturn(true); ParseACL acl = new ParseACL(); acl.setWriteAccess(user, true); assertSame(user, acl.getUnresolvedUser()); verify(user, times(1)).registerSaveListener(any(GetCallback.class)); assertTrue(acl.getPermissionsById().containsKey(UNRESOLVED_KEY)); assertTrue(acl.getWriteAccess(user)); assertEquals(1, acl.getPermissionsById().size()); } //endregion
@Test public void testSetPublicReadAccessNotAllowed() { ParseACL acl = new ParseACL(); acl.setPublicReadAccess(false); // Make sure noting is set assertEquals(0, acl.getPermissionsById().size()); }
@Test public void testSetPublicWriteAccessNotAllowed() { ParseACL acl = new ParseACL(); acl.setPublicWriteAccess(false); // Make sure noting is set assertEquals(0, acl.getPermissionsById().size()); }
@Test public void testSetAccessWithNoPermissionAndNotAllowed() { ParseACL acl = new ParseACL(); acl.setReadAccess("userId", false); // Make sure noting is set assertEquals(0, acl.getPermissionsById().size()); }
@Test public void testCreateACLFromJSONObject() throws Exception { JSONObject aclJson = new JSONObject(); JSONObject permission = new JSONObject(); permission.put(READ_PERMISSION, true); permission.put(WRITE_PERMISSION, true); aclJson.put("userId", permission); ParseUser unresolvedUser = new ParseUser(); JSONObject unresolvedUserJson = new JSONObject(); aclJson.put("unresolvedUser", unresolvedUserJson); // Mock decoder ParseDecoder mockDecoder = mock(ParseDecoder.class); when(mockDecoder.decode(eq(unresolvedUserJson))).thenReturn(unresolvedUser); ParseACL acl = ParseACL.createACLFromJSONObject(aclJson, mockDecoder); assertSame(unresolvedUser, acl.getUnresolvedUser()); assertTrue(acl.getReadAccess("userId")); assertTrue(acl.getWriteAccess("userId")); assertEquals(1, acl.getPermissionsById().size()); }
assertEquals(1, copiedACL.getPermissionsById().size()); assertTrue(copiedACL.getReadAccess(unresolvedUser)); assertTrue(copiedACL.getWriteAccess(unresolvedUser)); assertFalse(copiedACL.isShared()); assertFalse(copiedACL.getPermissionsById().containsKey(UNRESOLVED_KEY)); assertNull(copiedACL.getUnresolvedUser());
@Test public void testSetPublicWriteAccessAllowed() { ParseACL acl = new ParseACL(); acl.setPublicWriteAccess(true); assertTrue(acl.getPublicWriteAccess()); assertEquals(1, acl.getPermissionsById().size()); }
@Test public void testSetAccessWithAllowed() { ParseACL acl = new ParseACL(); acl.setReadAccess("userId", true); assertTrue(acl.getReadAccess("userId")); assertEquals(1, acl.getPermissionsById().size()); }
@Test public void testCopy() { ParseACL acl = new ParseACL(); final ParseUser unresolvedUser = mock(ParseUser.class); when(unresolvedUser.isLazy()).thenReturn(true); // This will set unresolvedUser and permissionsById acl.setReadAccess(unresolvedUser, true); acl.setWriteAccess(unresolvedUser, true); // We need to reset unresolvedUser since registerSaveListener will be triggered once in // setReadAccess() reset(unresolvedUser); ParseACL copiedACL = new ParseACL(acl); assertEquals(1, copiedACL.getPermissionsById().size()); assertTrue(copiedACL.getPermissionsById().containsKey(UNRESOLVED_KEY)); assertTrue(copiedACL.getReadAccess(unresolvedUser)); assertTrue(copiedACL.getWriteAccess(unresolvedUser)); assertFalse(copiedACL.isShared()); assertSame(unresolvedUser, copiedACL.getUnresolvedUser()); verify(unresolvedUser, times(1)).registerSaveListener(any(GetCallback.class)); }
@Test public void testSetAccessWithPermissionsAndNotAllowed() { ParseACL acl = new ParseACL(); acl.setReadAccess("userId", true); acl.setReadAccess("userId", false); // Make sure we remove the read access assertFalse(acl.getReadAccess("userId")); assertEquals(0, acl.getPermissionsById().size()); }
@Test public void testSetUserReadAccessWithNormalUser() { ParseUser user = new ParseUser(); user.setObjectId("test"); ParseACL acl = new ParseACL(); acl.setReadAccess(user, true); assertTrue(acl.getReadAccess(user)); assertEquals(1, acl.getPermissionsById().size()); }
@Test public void testSetUserWriteAccessWithNormalUser() { ParseUser user = new ParseUser(); user.setObjectId("test"); ParseACL acl = new ParseACL(); acl.setWriteAccess(user, true); assertTrue(acl.getWriteAccess(user)); assertEquals(1, acl.getPermissionsById().size()); }
@Test public void testSetRoleReadAccess() { ParseRole role = new ParseRole(); role.setName("Player"); role.setObjectId("test"); ParseACL acl = new ParseACL(); acl.setRoleReadAccess(role, true); assertTrue(acl.getRoleReadAccess(role)); assertEquals(1, acl.getPermissionsById().size()); }
@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 testResolveUserWithUnresolvedUser() { ParseACL acl = new ParseACL(); ParseUser unresolvedUser = new ParseUser(); setLazy(unresolvedUser); // This will set the unresolvedUser in acl acl.setReadAccess(unresolvedUser, true); acl.setWriteAccess(unresolvedUser, true); unresolvedUser.setObjectId("test"); acl.resolveUser(unresolvedUser); assertNull(acl.getUnresolvedUser()); assertTrue(acl.getReadAccess(unresolvedUser)); assertTrue(acl.getWriteAccess(unresolvedUser)); assertEquals(1, acl.getPermissionsById().size()); assertFalse(acl.getPermissionsById().containsKey(UNRESOLVED_KEY)); }