AuthorizableImpl implements Authorizable, UserConstants { @NotNull @Override public String getID() { return id; } AuthorizableImpl(@NotNull String id, @NotNull Tree tree,
                     @NotNull UserManagerImpl userManager); @NotNull @Override String getID(); @NotNull @Override Iterator<Group> declaredMemberOf(); @NotNull @Override Iterator<Group> memberOf(); @Override void remove(); @NotNull @Override Iterator<String> getPropertyNames(); @NotNull @Override Iterator<String> getPropertyNames(@NotNull String relPath); @Override boolean hasProperty(@NotNull String relPath); @Nullable @Override Value[] getProperty(@NotNull String relPath); @Override void setProperty(@NotNull String relPath, @Nullable Value value); @Override void setProperty(@NotNull String relPath, @Nullable Value[] values); @Override boolean removeProperty(@NotNull String relPath); @NotNull @Override String getPath(); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString();  }
@Test public void testEqualAuthorizables() throws Exception { Authorizable user = userMgr.getAuthorizable(testUser.getID()); Authorizable group = userMgr.getAuthorizable(testGroup.getID()); Map<Authorizable, Authorizable> equalAuthorizables = new HashMap<>(); equalAuthorizables.put(testUser, testUser); equalAuthorizables.put(testGroup, testGroup); equalAuthorizables.put(user, user); equalAuthorizables.put(group, group); equalAuthorizables.put(testUser, user); equalAuthorizables.put(testGroup, group); for (Map.Entry entry : equalAuthorizables.entrySet()) { assertEquals(entry.getKey(), entry.getValue()); assertEquals(entry.getValue(), entry.getKey()); } }