Author: olamy
Date: Thu Jan  3 17:03:59 2013
New Revision: 1428479

URL: http://svn.apache.org/viewvc?rev=1428479&view=rev
Log:
improve unit tests

Modified:
    
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/java/org/apache/archiva/redback/rbac/ldap/TestLdapRoleMapper.java

Modified: 
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/java/org/apache/archiva/redback/rbac/ldap/TestLdapRoleMapper.java
URL: 
http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/java/org/apache/archiva/redback/rbac/ldap/TestLdapRoleMapper.java?rev=1428479&r1=1428478&r2=1428479&view=diff
==============================================================================
--- 
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/java/org/apache/archiva/redback/rbac/ldap/TestLdapRoleMapper.java
 (original)
+++ 
archiva/redback/redback-core/trunk/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/test/java/org/apache/archiva/redback/rbac/ldap/TestLdapRoleMapper.java
 Thu Jan  3 17:03:59 2013
@@ -47,7 +47,11 @@ import javax.naming.directory.DirContext
 import javax.naming.directory.InitialDirContext;
 import javax.naming.directory.SearchControls;
 import javax.naming.directory.SearchResult;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Olivier Lamy
@@ -82,12 +86,28 @@ public class TestLdapRoleMapper
     @Named( value = "ldapRoleMapper#test" )
     LdapRoleMapper ldapRoleMapper;
 
+    private Map<String, List<String>> usersPerGroup;
+
+    private List<String> users;
+
     @Before
     public void setUp()
         throws Exception
     {
         super.setUp();
 
+        usersPerGroup = new HashMap<String, List<String>>( 3 );
+
+        usersPerGroup.put( "internal-repo-manager", Arrays.asList( "admin", 
"user.9" ) );
+        usersPerGroup.put( "internal-repo-observer", Arrays.asList( "admin", 
"user.7", "user.8" ) );
+        usersPerGroup.put( "archiva-admin", Arrays.asList( "admin", "user.7" ) 
);
+
+        users = new ArrayList<String>( 4 );
+        users.add( "admin" );
+        users.add( "user.7" );
+        users.add( "user.8" );
+        users.add( "user.9" );
+
         passwordEncoder = new SHA1PasswordEncoder();
 
         groupSuffix = "dc=archiva,dc=apache,dc=org";
@@ -115,13 +135,15 @@ public class TestLdapRoleMapper
 
         InitialDirContext context = apacheDs.getAdminContext();
 
-        context.unbind( createDn( "admin" ) );
-
-        context.unbind( createDn( "user.7" ) );
-
-        context.unbind( createGroupDn( "internal-repo-manager" ) );
+        for ( String uid : users )
+        {
+            context.unbind( createDn( uid ) );
+        }
 
-        context.unbind( createGroupDn( "archiva-admin" ) );
+        for ( Map.Entry<String, List<String>> group : usersPerGroup.entrySet() 
)
+        {
+            context.unbind( createGroupDn( group.getKey() ) );
+        }
 
         apacheDs.stopServer();
 
@@ -133,12 +155,14 @@ public class TestLdapRoleMapper
     {
         InitialDirContext context = apacheDs.getAdminContext();
 
-        createGroup( context, "internal-repo-manager", createGroupDn( 
"internal-repo-manager" ) );
+        for ( Map.Entry<String, List<String>> group : usersPerGroup.entrySet() 
)
+        {
+            createGroup( context, group.getKey(), createGroupDn( 
group.getKey() ), group.getValue() );
+        }
 
-        createGroup( context, "archiva-admin", createGroupDn( "archiva-admin" 
) );
     }
 
-    private void createGroup( DirContext context, String groupName, String dn )
+    private void createGroup( DirContext context, String groupName, String dn, 
List<String> users )
         throws Exception
     {
 
@@ -148,13 +172,13 @@ public class TestLdapRoleMapper
         objectClass.add( "groupOfUniqueNames" );
         attributes.put( objectClass );
         attributes.put( "cn", groupName );
-        BasicAttribute basicAttribute = new BasicAttribute( "uniquemember"  );
-        basicAttribute.add( "uid=admin,dc=archiva,dc=apache,dc=org" );
-        basicAttribute.add( "uid=user.7,dc=archiva,dc=apache,dc=org" );
-        attributes.put( basicAttribute );
-        //attributes.put( "uniquemember", 
"uid=admin,dc=archiva,dc=apache,dc=org" );
-        //attributes.put( "uniquemember", 
"uid=user.7,dc=archiva,dc=apache,dc=org" );
+        BasicAttribute basicAttribute = new BasicAttribute( "uniquemember" );
+        for ( String user : users )
+        {
+            basicAttribute.add( "uid=" + user + ",dc=archiva,dc=apache,dc=org" 
);
+        }
 
+        attributes.put( basicAttribute );
         context.createSubcontext( dn, attributes );
     }
 
@@ -179,18 +203,23 @@ public class TestLdapRoleMapper
     private void makeUsers()
         throws Exception
     {
-        InitialDirContext context = apacheDs.getAdminContext();
 
-        String cn = "admin";
-        bindUserObject( context, cn, createDn( cn ) );
-        assertExist( context, createDn( cn ), "cn", cn );
-
-        cn = "user.7";
-        bindUserObject( context, cn, createDn( cn ) );
-        assertExist( context, createDn( cn ), "cn", cn );
+        for ( String uid : users )
+        {
+            makeUser( uid );
+        }
 
     }
 
+    private void makeUser( String uid )
+        throws Exception
+    {
+        InitialDirContext context = apacheDs.getAdminContext();
+
+        bindUserObject( context, uid, createDn( uid ) );
+        assertExist( context, createDn( uid ), "cn", uid );
+    }
+
     private void clearManyUsers()
         throws Exception
     {
@@ -267,7 +296,11 @@ public class TestLdapRoleMapper
 
         log.info( "users for archiva-admin: {}", users );
 
-        Assertions.assertThat( users ).isNotNull().isNotEmpty().contains( 
"admin", "user.7" );
+        Assertions.assertThat( users ).isNotNull().isNotEmpty().hasSize( 2 
).contains( "admin", "user.7" );
+
+        users = ldapRoleMapper.getGroupsMember( "internal-repo-observer" );
+
+        Assertions.assertThat( users ).isNotNull().isNotEmpty().hasSize( 3 
).contains( "admin", "user.7", "user.8" );
     }
 
     @Test
@@ -278,6 +311,17 @@ public class TestLdapRoleMapper
 
         log.info( "roles for admin: {}", roles );
 
-        Assertions.assertThat( roles ).isNotNull().isNotEmpty().contains( 
"archiva-admin", "internal-repo-manager" );
+        Assertions.assertThat( roles ).isNotNull().isNotEmpty().hasSize( 3 
).contains( "archiva-admin",
+                                                                               
        "internal-repo-manager",
+                                                                               
        "internal-repo-observer" );
+
+        roles = ldapRoleMapper.getGroups( "user.8" );
+
+        Assertions.assertThat( roles ).isNotNull().isNotEmpty().hasSize( 1 
).contains( "internal-repo-observer" );
+
+        roles = ldapRoleMapper.getGroups( "user.7" );
+
+        Assertions.assertThat( roles ).isNotNull().isNotEmpty().hasSize( 2 
).contains( "archiva-admin",
+                                                                               
        "internal-repo-observer" );
     }
 }


Reply via email to