You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2011/01/06 05:51:39 UTC

svn commit: r1055747 - /directory/apacheds/branches/apacheds-AP/core-integ/src/test/java/org/apache/directory/server/core/subtree/AbstractSubentryUnitTest.java

Author: elecharny
Date: Thu Jan  6 04:51:39 2011
New Revision: 1055747

URL: http://svn.apache.org/viewvc?rev=1055747&view=rev
Log:
Added some helper methods

Modified:
    directory/apacheds/branches/apacheds-AP/core-integ/src/test/java/org/apache/directory/server/core/subtree/AbstractSubentryUnitTest.java

Modified: directory/apacheds/branches/apacheds-AP/core-integ/src/test/java/org/apache/directory/server/core/subtree/AbstractSubentryUnitTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-AP/core-integ/src/test/java/org/apache/directory/server/core/subtree/AbstractSubentryUnitTest.java?rev=1055747&r1=1055746&r2=1055747&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-AP/core-integ/src/test/java/org/apache/directory/server/core/subtree/AbstractSubentryUnitTest.java (original)
+++ directory/apacheds/branches/apacheds-AP/core-integ/src/test/java/org/apache/directory/server/core/subtree/AbstractSubentryUnitTest.java Thu Jan  6 04:51:39 2011
@@ -21,17 +21,29 @@ package org.apache.directory.server.core
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
 
 import org.apache.directory.ldap.client.api.LdapConnection;
 import org.apache.directory.server.constants.ApacheSchemaConstants;
 import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
 import org.apache.directory.server.core.integ.IntegrationUtils;
+import org.apache.directory.shared.ldap.codec.search.controls.subentries.SubentriesControl;
 import org.apache.directory.shared.ldap.entry.Entry;
 import org.apache.directory.shared.ldap.entry.EntryAttribute;
+import org.apache.directory.shared.ldap.entry.Value;
 import org.apache.directory.shared.ldap.exception.LdapException;
+import org.apache.directory.shared.ldap.filter.SearchScope;
 import org.apache.directory.shared.ldap.ldif.LdifUtils;
 import org.apache.directory.shared.ldap.message.AddResponse;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
+import org.apache.directory.shared.ldap.message.SearchRequest;
+import org.apache.directory.shared.ldap.message.SearchRequestImpl;
+import org.apache.directory.shared.ldap.name.DN;
 import org.junit.After;
 import org.junit.Before;
 
@@ -47,6 +59,37 @@ public class AbstractSubentryUnitTest ex
 
     // The shared LDAP user connection
     protected static LdapConnection userConnection;
+    
+    // A inner class used to assert elements back from the server 
+    protected class ExpectedAttribute
+    {
+        // tell if the AttributeTye is be present, or not
+        protected boolean present;
+
+        // The attributeType ID we will check
+        protected String attrId;
+        
+        // The set of expected values
+        protected Set<String> values;
+        
+        // A default constructor
+        protected ExpectedAttribute( boolean present, String attrId, String... vals )
+        {
+            this.present = present;
+            this.attrId = attrId;
+            
+            if ( vals != null )
+            {
+                this.values = new HashSet<String>();
+
+                for ( String value : vals )
+                {
+                    String str = value.toLowerCase();
+                    this.values.add( str );
+                }
+            }
+        }
+    }
 
 
     @Before
@@ -101,6 +144,19 @@ public class AbstractSubentryUnitTest ex
     
     
     /**
+     * Gets the EntryUUID AttributeType
+     */
+    protected String getEntryUuid( String dn ) throws LdapException
+    {
+        Entry entry = adminConnection.lookup( dn, "EntryUuid" );
+        
+        EntryAttribute attribute = entry.get( "EntryUuid" );
+        
+        return attribute.getString();
+    }
+
+
+    /**
      * Gets the UUIDref
      */
     private String getUuidRef( String apDn, String attributeType ) throws LdapException
@@ -121,7 +177,6 @@ public class AbstractSubentryUnitTest ex
         
         return attribute.getString();
     }
-
     
     
     /**
@@ -154,6 +209,74 @@ public class AbstractSubentryUnitTest ex
     }
     
     
+    /**
+     * Check that an entry contains the expected attributes
+     * @param entry
+     * @param expectedResults
+     */
+    protected void checkEntry( Entry entry, Map<String, ExpectedAttribute[]> expectedResults )
+    {
+        ExpectedAttribute[] expectedAttributes = expectedResults.get( entry.getDn().toString() );
+        
+        if ( expectedAttributes == null )
+        {
+            return;
+        }
+        
+        //assertNotNull( expectedAttributes );
+        
+        for ( ExpectedAttribute expectedAttribute : expectedAttributes )
+        {
+            EntryAttribute attribute = entry.get( expectedAttribute.attrId );
+            
+            if ( expectedAttribute.present == true )
+            {
+                assertNotNull( attribute );
+                
+                for ( Value<?> value : attribute )
+                {
+                    String str = value.getString().toLowerCase();
+                    boolean res = expectedAttribute.values.contains( str );
+                    
+                    if ( !res )
+                    {
+                        System.out.println( "BAD !" + entry.getDn() + "/" + expectedAttribute.attrId + " : " + expectedAttribute.values + "/" + str );
+                    }
+                    
+                    assertTrue( res );
+                }
+            }
+            else
+            {
+                assertNull( attribute );
+            }
+            
+        }
+    }
+    
+    
+    /**
+     * Creates a SearchRequest with a Subentries control
+     */
+    protected SearchRequest createSRWithControl( String dn, String filter, SearchScope scope, String... attributes ) throws LdapException
+    {
+        SearchRequest searchRequest = new SearchRequestImpl();
+        searchRequest.setBase( new DN( dn ) );
+        searchRequest.setFilter( filter );
+        searchRequest.setScope( scope );
+        
+        for ( String attribute : attributes )
+        {
+            searchRequest.addAttributes( attribute );
+        }
+        
+        SubentriesControl control = new SubentriesControl();
+        control.setVisibility( true );
+        searchRequest.addControl( control );
+
+        return searchRequest;
+    }
+    
     // ---- AC methods -------------------------------------------------------------------
     
     /**
@@ -217,7 +340,7 @@ public class AbstractSubentryUnitTest ex
      */
     protected String getAcUuidRef( String apDn ) throws LdapException
     {
-        return getUuidRef( apDn, "AccessControlSubentryUuid" );
+        return getUuidRef( apDn, "AccessControlSubentriesUuid" );
     }
 
 
@@ -284,7 +407,7 @@ public class AbstractSubentryUnitTest ex
      */
     protected String getCaUuidRef( String apDn ) throws LdapException
     {
-        return getUuidRef( apDn, "CollectiveAttributeSubentryUuid" );
+        return getUuidRef( apDn, "CollectiveAttributeSubentriesUuid" );
     }
     
 
@@ -399,7 +522,7 @@ public class AbstractSubentryUnitTest ex
      */
     protected String getTeUuidRef( String apDn ) throws LdapException
     {
-        return getUuidRef( apDn, "TriggerExecutionSubentryUuid" );
+        return getUuidRef( apDn, "TriggerExecutionSubentriesUuid" );
     }