X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.enterprise%2Fext%2Ftest%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FLdifParserTest.java;fp=org.argeo.enterprise%2Fext%2Ftest%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FLdifParserTest.java;h=fecf5dd5a199a7e5cfbe3012b8481e1729ab26fa;hb=e66b9893b0e511f8ab295e3cee42b7dc966f1597;hp=0000000000000000000000000000000000000000;hpb=8260f4470f514ea347ca53f5b4dfc632c4a4de66;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.enterprise/ext/test/org/argeo/osgi/useradmin/LdifParserTest.java b/org.argeo.enterprise/ext/test/org/argeo/osgi/useradmin/LdifParserTest.java new file mode 100644 index 000000000..fecf5dd5a --- /dev/null +++ b/org.argeo.enterprise/ext/test/org/argeo/osgi/useradmin/LdifParserTest.java @@ -0,0 +1,49 @@ +package org.argeo.osgi.useradmin; + +import java.util.ArrayList; +import java.util.Base64; +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 org.argeo.util.naming.LdifParser; + +import junit.framework.TestCase; + +public class LdifParserTest extends TestCase implements BasicTestConstants { + public void testBasicLdif() throws Exception { + LdifParser ldifParser = new LdifParser(); + SortedMap res = ldifParser.read(getClass() + .getResourceAsStream("basic.ldif")); + LdapName rootDn = new LdapName(ROOT_USER_DN); + Attributes rootAttributes = res.get(rootDn); + assertNotNull(rootAttributes); + 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.getEncoder().encodeToString(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 users = new ArrayList(); + while (members.hasMore()) { + Object value = members.next(); + users.add(value.toString()); + } + assertEquals(1, users.size()); + assertEquals(rootDn, new LdapName(users.get(0))); + } +}