]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.security.core/ext/test/org/argeo/osgi/useradmin/LdifParserTest.java
Fix unit tests
[lgpl/argeo-commons.git] / org.argeo.security.core / ext / test / org / argeo / osgi / useradmin / LdifParserTest.java
index dd32dca171632641a5c15359e696dc7b028389d8..34ac98b1cb0e8f069945fd85d2233251aea5005f 100644 (file)
@@ -1,31 +1,49 @@
 package org.argeo.osgi.useradmin;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.SortedMap;
 
+import javax.naming.NamingEnumeration;
+import javax.naming.directory.Attribute;
 import javax.naming.directory.Attributes;
 import javax.naming.ldap.LdapName;
 
+import junit.framework.TestCase;
+
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.codec.digest.DigestUtils;
 
-import junit.framework.TestCase;
-
-public class LdifParserTest extends TestCase {
-       public void testSimpleLdif() throws Exception {
+public class LdifParserTest extends TestCase implements BasicTestConstants {
+       public void testBasicLdif() throws Exception {
                LdifParser ldifParser = new LdifParser();
                SortedMap<LdapName, Attributes> res = ldifParser.read(getClass()
-                               .getResourceAsStream("test.ldif"));
-               LdapName rootDn = new LdapName(
-                               "uid=root,ou=People,dc=demo,dc=example,dc=org");
+                               .getResourceAsStream("basic.ldif"));
+               LdapName rootDn = new LdapName(ROOT_USER_DN);
                Attributes rootAttributes = res.get(rootDn);
                assertNotNull(rootAttributes);
-               assertEquals("Superuser", rootAttributes.get("description").get());
-               byte[] rawPwEntry = (byte[]) rootAttributes.get("userpassword").get();
+               assertEquals("Superuser",
+                               rootAttributes.get(LdifName.description.name()).get());
+               byte[] rawPwEntry = (byte[]) rootAttributes.get(
+                               LdifName.userPassword.name()).get();
                assertEquals("{SHA}ieSV55Qc+eQOaYDRSha/AjzNTJE=",
                                new String(rawPwEntry));
                byte[] hashedPassword = DigestUtils.sha1("demo".getBytes());
                assertEquals("{SHA}" + Base64.encodeBase64String(hashedPassword),
                                new String(rawPwEntry));
 
+               LdapName adminDn = new LdapName(ADMIN_GROUP_DN);
+               Attributes adminAttributes = res.get(adminDn);
+               assertNotNull(adminAttributes);
+               Attribute memberAttribute = adminAttributes.get(LdifName.member.name());
+               assertNotNull(memberAttribute);
+               NamingEnumeration<?> members = memberAttribute.getAll();
+               List<String> users = new ArrayList<String>();
+               while (members.hasMore()) {
+                       Object value = members.next();
+                       users.add(value.toString());
+               }
+               assertEquals(1, users.size());
+               assertEquals(rootDn, new LdapName(users.get(0)));
        }
 }