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 2007/01/05 19:33:27 UTC

svn commit: r493125 - /directory/branches/apacheds/1.0/core-unit/src/test/java/org/apache/directory/server/core/jndi/DIRSERVER783ITest.java

Author: elecharny
Date: Fri Jan  5 10:33:26 2007
New Revision: 493125

URL: http://svn.apache.org/viewvc?view=rev&rev=493125
Log:
Added a commented test for DIRSERVER-783.
The filter parser is blocking in an infinite loop...

Added:
    directory/branches/apacheds/1.0/core-unit/src/test/java/org/apache/directory/server/core/jndi/DIRSERVER783ITest.java

Added: directory/branches/apacheds/1.0/core-unit/src/test/java/org/apache/directory/server/core/jndi/DIRSERVER783ITest.java
URL: http://svn.apache.org/viewvc/directory/branches/apacheds/1.0/core-unit/src/test/java/org/apache/directory/server/core/jndi/DIRSERVER783ITest.java?view=auto&rev=493125
==============================================================================
--- directory/branches/apacheds/1.0/core-unit/src/test/java/org/apache/directory/server/core/jndi/DIRSERVER783ITest.java (added)
+++ directory/branches/apacheds/1.0/core-unit/src/test/java/org/apache/directory/server/core/jndi/DIRSERVER783ITest.java Fri Jan  5 10:33:26 2007
@@ -0,0 +1,114 @@
+
+package org.apache.directory.server.core.jndi;
+
+import java.util.Hashtable;
+
+import javax.naming.Context;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+import javax.naming.directory.Attribute;
+import javax.naming.directory.Attributes;
+import javax.naming.directory.BasicAttribute;
+import javax.naming.directory.BasicAttributes;
+import javax.naming.directory.DirContext;
+import javax.naming.directory.InitialDirContext;
+import javax.naming.directory.InvalidAttributeIdentifierException;
+import javax.naming.directory.InvalidAttributeValueException;
+import javax.naming.directory.ModificationItem;
+import javax.naming.directory.SchemaViolationException;
+import javax.naming.directory.SearchControls;
+import javax.naming.directory.SearchResult;
+
+import org.apache.directory.server.core.unit.AbstractAdminTestCase;
+
+/**
+ * Tries to demonstrate DIRSERVER-783 ("Adding another value to an attribute
+ * results in the value to be added twice").
+ * 
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+
+public class DIRSERVER783ITest extends AbstractAdminTestCase
+{
+    protected void setUp() throws Exception 
+    {
+        super.setUp();
+    }
+
+
+    /**
+     * Try to add entry with required attribute missing.
+     */
+    /*
+    public void testAddAnotherValueToAnAttribute() throws NamingException
+    {
+        // create a person without sn
+        Attributes attrs = new BasicAttributes();
+        Attribute ocls = new BasicAttribute("objectClass");
+
+        ocls.add("top");
+        ocls.add("person");
+        attrs.put(ocls);
+        attrs.put("cn", "Fiona Apple");
+        attrs.put("sn", "Apple");
+
+        String rdn = "cn=Fiona Apple";
+
+        Hashtable env = configuration.toJndiEnvironment();
+        env.put( Context.INITIAL_CONTEXT_FACTORY, CoreContextFactory.class.getName() );
+        env.put( Context.PROVIDER_URL, "ou=system" );
+
+        DirContext ctx = new InitialDirContext( env );
+
+        ctx.createSubcontext( rdn, attrs );
+
+        // Add the first value for description
+        String description1 = "an American singer-songwriter";
+        Attribute firstDescr = new BasicAttribute("description", description1);
+        ModificationItem modification = new ModificationItem(DirContext.ADD_ATTRIBUTE, firstDescr);
+        ctx.modifyAttributes(rdn, new ModificationItem[] { modification });
+
+        // Add a second value to description
+        String description2 = "Grammy award winning";
+        Attribute otherDescr = new BasicAttribute("description", description2 );
+
+        modification = new ModificationItem(DirContext.ADD_ATTRIBUTE, otherDescr );
+        ctx.modifyAttributes(rdn, new ModificationItem[] { modification } );
+      
+        // Add a third value to description
+        String description3 = "MTV Music Award winning";
+        Attribute thirdDescr = new BasicAttribute("description", description3 );
+
+        modification = new ModificationItem(DirContext.ADD_ATTRIBUTE, thirdDescr );
+        ctx.modifyAttributes(rdn, new ModificationItem[] { modification });
+
+        // Search Entry
+        SearchControls sctls = new SearchControls();
+        sctls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
+        String filter = rdn;
+        String base = "";
+
+        // Check entry
+        NamingEnumeration enm = ctx.search(base, filter, sctls);
+        assertTrue(enm.hasMore());
+
+        while (enm.hasMore()) 
+        {
+            SearchResult sr = (SearchResult) enm.next();
+
+            attrs = sr.getAttributes();
+            Attribute desc = sr.getAttributes().get("description");
+
+            assertNotNull(desc);
+            assertTrue(desc.contains(description1));
+            assertTrue(desc.contains(description2));
+            assertTrue(desc.contains(description3));
+            assertEquals(3, desc.size());
+        }
+
+        // Remove the person entry
+        ctx.destroySubcontext(rdn);
+    }
+    */
+}
+