1 package org
.argeo
.osgi
.useradmin
;
3 import java
.io
.ByteArrayInputStream
;
4 import java
.io
.ByteArrayOutputStream
;
5 import java
.util
.Arrays
;
8 import junit
.framework
.TestCase
;
10 import org
.apache
.commons
.codec
.binary
.Base64
;
11 import org
.apache
.commons
.codec
.digest
.DigestUtils
;
12 import org
.apache
.commons
.io
.IOUtils
;
13 import org
.osgi
.service
.useradmin
.Authorization
;
14 import org
.osgi
.service
.useradmin
.Group
;
15 import org
.osgi
.service
.useradmin
.Role
;
16 import org
.osgi
.service
.useradmin
.User
;
18 public class LdifUserAdminTest
extends TestCase
implements BasicTestConstants
{
20 public void testBasicUserAdmin() throws Exception
{
22 LdifUserAdmin initialUserAdmin
= new LdifUserAdmin(getClass()
23 .getResourceAsStream("basic.ldif"));
25 ByteArrayOutputStream out
= new ByteArrayOutputStream();
26 initialUserAdmin
.save(out
);
27 byte[] arr
= out
.toByteArray();
28 initialUserAdmin
.destroy();
29 IOUtils
.closeQuietly(out
);
30 String written
= new String(arr
);
31 System
.out
.print(written
);
32 ByteArrayInputStream in
= new ByteArrayInputStream(arr
);
33 LdifUserAdmin userAdmin
= new LdifUserAdmin(in
);
36 User rootUser
= (User
) userAdmin
.getRole(ROOT_USER_DN
);
37 assertNotNull(rootUser
);
38 User demoUser
= (User
) userAdmin
.getRole(DEMO_USER_DN
);
39 assertNotNull(demoUser
);
42 Group adminGroup
= (Group
) userAdmin
.getRole(ADMIN_GROUP_DN
);
43 assertNotNull(adminGroup
);
44 Role
[] members
= adminGroup
.getMembers();
45 assertEquals(1, members
.length
);
46 assertEquals(rootUser
, members
[0]);
48 Group editorGroup
= (Group
) userAdmin
.getRole(EDITORS_GROUP_DN
);
49 assertNotNull(editorGroup
);
50 members
= editorGroup
.getMembers();
51 assertEquals(2, members
.length
);
52 assertEquals(adminGroup
, members
[0]);
53 assertEquals(demoUser
, members
[1]);
55 Authorization rootAuth
= userAdmin
.getAuthorization(rootUser
);
56 List
<String
> rootRoles
= Arrays
.asList(rootAuth
.getRoles());
57 assertEquals(3, rootRoles
.size());
58 assertTrue(rootRoles
.contains(ROOT_USER_DN
));
59 assertTrue(rootRoles
.contains(ADMIN_GROUP_DN
));
60 assertTrue(rootRoles
.contains(EDITORS_GROUP_DN
));
63 assertEquals("root@localhost", rootUser
.getProperties().get("mail"));
66 byte[] hashedPassword
= ("{SHA}" + Base64
67 .encodeBase64String(DigestUtils
.sha1("demo".getBytes())))
69 assertTrue(rootUser
.hasCredential(LdifName
.userPassword
.name(),
71 assertTrue(demoUser
.hasCredential(LdifName
.userPassword
.name(),
75 Role
[] search
= userAdmin
.getRoles(null);
76 assertEquals(4, search
.length
);
77 search
= userAdmin
.getRoles("(objectClass=groupOfNames)");
78 assertEquals(2, search
.length
);
79 search
= userAdmin
.getRoles("(objectclass=inetOrgPerson)");
80 assertEquals(2, search
.length
);
81 search
= userAdmin
.getRoles("(&(objectclass=inetOrgPerson)(uid=demo))");
82 assertEquals(1, search
.length
);