Add Authorization, with chained groups
[lgpl/argeo-commons.git] / org.argeo.security.core / ext / test / org / argeo / osgi / useradmin / LdifUserAdminTest.java
index 75a58d0d3450aae234c13784f0d5a4aa50cda7c8..c2d5b31f0d7b260f13e14c43e030392a0183fa98 100644 (file)
@@ -1,7 +1,11 @@
 package org.argeo.osgi.useradmin;
 
+import java.util.Arrays;
+import java.util.List;
+
 import junit.framework.TestCase;
 
+import org.osgi.service.useradmin.Authorization;
 import org.osgi.service.useradmin.Group;
 import org.osgi.service.useradmin.Role;
 import org.osgi.service.useradmin.User;
@@ -13,10 +17,27 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants {
                                .getResourceAsStream("basic.ldif"));
                User rootUser = (User) userAdmin.getRole(ROOT_USER_DN);
                assertNotNull(rootUser);
+               User demoUser = (User) userAdmin.getRole(DEMO_USER_DN);
+               assertNotNull(demoUser);
+
                Group adminGroup = (Group) userAdmin.getRole(ADMIN_GROUP_DN);
                assertNotNull(adminGroup);
                Role[] members = adminGroup.getMembers();
                assertEquals(1, members.length);
-               assertEquals(rootUser.getName(), members[0].getName());
+               assertEquals(rootUser, members[0]);
+
+               Group editorGroup = (Group) userAdmin.getRole(EDITOR_GROUP_DN);
+               assertNotNull(editorGroup);
+               members = editorGroup.getMembers();
+               assertEquals(2, members.length);
+               assertEquals(adminGroup, members[0]);
+               assertEquals(demoUser, members[1]);
+
+               Authorization rootAuth = userAdmin.getAuthorization(rootUser);
+               List<String> rootRoles = Arrays.asList(rootAuth.getRoles());
+               assertEquals(3, rootRoles.size());
+               assertTrue(rootRoles.contains(ROOT_USER_DN));
+               assertTrue(rootRoles.contains(ADMIN_GROUP_DN));
+               assertTrue(rootRoles.contains(EDITOR_GROUP_DN));
        }
 }