LDIF user admin read-only features working (adding properties and credentials)
[lgpl/argeo-commons.git] / org.argeo.security.core / ext / test / org / argeo / osgi / useradmin / LdifUserAdminTest.java
index c2d5b31f0d7b260f13e14c43e030392a0183fa98..d2a6c94c144d7663b735a5b9ed44df81652fa735 100644 (file)
@@ -5,6 +5,8 @@ import java.util.List;
 
 import junit.framework.TestCase;
 
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.digest.DigestUtils;
 import org.osgi.service.useradmin.Authorization;
 import org.osgi.service.useradmin.Group;
 import org.osgi.service.useradmin.Role;
@@ -15,11 +17,14 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants {
        public void testBasicUserAdmin() {
                LdifUserAdmin userAdmin = new LdifUserAdmin(getClass()
                                .getResourceAsStream("basic.ldif"));
+
+               // users
                User rootUser = (User) userAdmin.getRole(ROOT_USER_DN);
                assertNotNull(rootUser);
                User demoUser = (User) userAdmin.getRole(DEMO_USER_DN);
                assertNotNull(demoUser);
 
+               // groups
                Group adminGroup = (Group) userAdmin.getRole(ADMIN_GROUP_DN);
                assertNotNull(adminGroup);
                Role[] members = adminGroup.getMembers();
@@ -39,5 +44,15 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants {
                assertTrue(rootRoles.contains(ROOT_USER_DN));
                assertTrue(rootRoles.contains(ADMIN_GROUP_DN));
                assertTrue(rootRoles.contains(EDITOR_GROUP_DN));
+
+               // properties
+               assertEquals("root@localhost", rootUser.getProperties().get("mail"));
+
+               // credentials
+               byte[] hashedPassword = ("{SHA}" + Base64
+                               .encodeBase64String(DigestUtils.sha1("demo".getBytes())))
+                               .getBytes();
+               assertTrue(rootUser.hasCredential("userpassword", hashedPassword));
+               assertTrue(demoUser.hasCredential("userpassword", hashedPassword));
        }
 }