You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2010/05/26 22:17:47 UTC

svn commit: r948568 - in /directory/apacheds/trunk: core-api/src/main/java/org/apache/directory/server/core/schema/ core-integ/src/test/java/org/apache/directory/server/core/schema/

Author: seelmann
Date: Wed May 26 20:17:47 2010
New Revision: 948568

URL: http://svn.apache.org/viewvc?rev=948568&view=rev
Log:
DIRSHARED-60: added tests and TODOs

Modified:
    directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/DescriptionParsers.java
    directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaAttributeTypeHandlerIT.java
    directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java

Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/DescriptionParsers.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/DescriptionParsers.java?rev=948568&r1=948567&r2=948568&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/DescriptionParsers.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/schema/DescriptionParsers.java Wed May 26 20:17:47 2010
@@ -275,6 +275,7 @@ public class DescriptionParsers
                     I18n.err( I18n.ERR_413, attributeType.getSubstringOid() ) );
             }
 
+            // TODO: DIRSHARED-60: this check is wrong and must be removed
             // if the equality matching rule is null and no super type is specified then there is
             // definitely no equality matchingRule that can be resolved.  We cannot use an attribute
             // without a matchingRule for search or for building indices not to mention lookups.
@@ -296,6 +297,7 @@ public class DescriptionParsers
                 }
             }
 
+            // TODO: this check is already by done by the schema parser and can be removed
             // a syntax is mandatory for an attributeType and if not provided by the description 
             // must be provided from some ancestor in the attributeType hierarchy; without either
             // of these the description definitely cannot resolve a syntax and cannot be allowed.

Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaAttributeTypeHandlerIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaAttributeTypeHandlerIT.java?rev=948568&r1=948567&r2=948568&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaAttributeTypeHandlerIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaAttributeTypeHandlerIT.java Wed May 26 20:17:47 2010
@@ -71,6 +71,41 @@ public class MetaAttributeTypeHandlerIT 
     // ----------------------------------------------------------------------
     // Test Add operation
     // ----------------------------------------------------------------------
+    /**
+     * Test for DIRSHARED-60.
+     * It is allowed to add an attribute type description without any matching rule.
+     * Adding it via ou=schema partition worked. Adding it via the subschema subentry failed.
+     */
+    @Test
+    public void testAddAttributeTypeWithoutMatchingRule() throws Exception
+    {
+        Attributes attrs = LdifUtils.createAttributes( 
+            "objectClass: top",
+            "objectClass: metaTop",
+            "objectClass: metaAttributeType",
+            "m-oid: 2.5.4.58",
+            "m-name: attributeCertificateAttribute",
+            "m-syntax: 1.3.6.1.4.1.1466.115.121.1.8",
+            "m-description: attribute certificate use ;binary"
+         );
+        
+        DN dn = getAttributeTypeContainer( "apachemeta" );
+        dn.add( "m-oid=2.5.4.58" );
+        
+        // Pre-checks
+        assertFalse( isOnDisk( dn ) );
+        assertFalse( service.getSchemaManager().getAttributeTypeRegistry().contains( "2.5.4.58" ) );
+        
+        // Addition
+        getSchemaContext( service ).createSubcontext( DN.toName( dn ), attrs );
+        
+        // Post-checks
+        assertTrue( service.getSchemaManager().getAttributeTypeRegistry().contains( "2.5.4.58" ) );
+        assertEquals( service.getSchemaManager().getAttributeTypeRegistry().getSchemaName( "2.5.4.58" ), "apachemeta" );
+        assertTrue( isOnDisk( dn ) );
+    }
+
+
     @Test
     public void testAddAttributeTypeToEnabledSchema() throws Exception
     {

Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java?rev=948568&r1=948567&r2=948568&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java Wed May 26 20:17:47 2010
@@ -20,6 +20,7 @@
 package org.apache.directory.server.core.schema;
 
 
+import static org.apache.directory.server.core.integ.IntegrationUtils.getAdminConnection;
 import static org.apache.directory.server.core.integ.IntegrationUtils.getRootContext;
 import static org.apache.directory.server.core.integ.IntegrationUtils.getSchemaContext;
 import static org.apache.directory.server.core.integ.IntegrationUtils.getSystemContext;
@@ -56,12 +57,16 @@ import javax.naming.directory.SearchCont
 import javax.naming.directory.SearchResult;
 import javax.naming.ldap.LdapContext;
 
+import org.apache.directory.ldap.client.api.LdapConnection;
+import org.apache.directory.ldap.client.api.message.ModifyRequest;
+import org.apache.directory.ldap.client.api.message.ModifyResponse;
 import org.apache.directory.server.core.DirectoryService;
 import org.apache.directory.server.core.annotations.CreateDS;
 import org.apache.directory.server.core.entry.ServerEntryUtils;
 import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
 import org.apache.directory.server.core.integ.FrameworkRunner;
 import org.apache.directory.shared.ldap.entry.Entry;
+import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.name.DN;
 import org.apache.directory.shared.ldap.schema.AttributeType;
 import org.apache.directory.shared.ldap.schema.LdapSyntax;
@@ -119,7 +124,26 @@ public class SubschemaSubentryIT extends
     private ObjectClassDescriptionSchemaParser objectClassDescriptionSchemaParser =
         new ObjectClassDescriptionSchemaParser();
 
-    
+
+    /**
+     * Test for DIRSHARED-60.
+     * It is allowed to add an attribute type description without any matching rule.
+     * Adding it via ou=schema partition worked. Adding it via the subschema subentry failed.
+     */
+    @Ignore
+    @Test
+    public void testAddAttributeTypeWithoutMatchingRule() throws Exception
+    {
+        LdapConnection conn = getAdminConnection( service );
+
+        ModifyRequest modRequest = new ModifyRequest( new DN( GLOBAL_SUBSCHEMA_DN ) );
+        modRequest.add( "attributeTypes", "( 2.5.4.58 NAME 'attributeCertificateAttribute' "
+            + " DESC 'attribute certificate use ;binary' SYNTAX 1.3.6.1.4.1.1466.115.121.1.8 )" );
+        ModifyResponse response = conn.modify( modRequest );
+        assertEquals( ResultCodeEnum.SUCCESS, response.getLdapResult().getResultCode() );
+    }
+
+
     /**
      * Make sure the global subschemaSubentry is where it is expected to be.
      *