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 2010/01/06 19:27:19 UTC
svn commit: r896599 [11/30] - in /directory/apacheds/trunk: ./
avl-partition/ avl-partition/src/ avl-partition/src/main/
avl-partition/src/main/java/ avl-partition/src/main/java/org/
avl-partition/src/main/java/org/apache/ avl-partition/src/main/java/o...
Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaSyntaxHandlerIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaSyntaxHandlerIT.java?rev=896599&r1=896598&r2=896599&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaSyntaxHandlerIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaSyntaxHandlerIT.java Wed Jan 6 18:26:43 2010
@@ -20,28 +20,17 @@
package org.apache.directory.server.core.schema;
-import org.apache.directory.server.constants.MetaSchemaConstants;
-import org.apache.directory.server.core.DirectoryService;
-import org.apache.directory.server.core.integ.CiRunner;
import static org.apache.directory.server.core.integ.IntegrationUtils.getRootContext;
import static org.apache.directory.server.core.integ.IntegrationUtils.getSchemaContext;
-import org.apache.directory.server.schema.registries.MatchingRuleRegistry;
-import org.apache.directory.server.schema.registries.SyntaxRegistry;
-import org.apache.directory.shared.ldap.constants.SchemaConstants;
-import org.apache.directory.shared.ldap.exception.LdapInvalidNameException;
-import org.apache.directory.shared.ldap.exception.LdapOperationNotSupportedException;
-import org.apache.directory.shared.ldap.message.ResultCodeEnum;
-import org.apache.directory.shared.ldap.name.LdapDN;
-import org.apache.directory.shared.ldap.schema.Syntax;
-import org.apache.directory.shared.ldap.schema.syntaxes.AcceptAllSyntaxChecker;
-
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.naming.NameNotFoundException;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
@@ -53,8 +42,19 @@
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
-import java.util.ArrayList;
-import java.util.List;
+import org.apache.directory.server.core.integ.FrameworkRunner;
+import org.apache.directory.shared.ldap.exception.LdapInvalidNameException;
+import org.apache.directory.shared.ldap.exception.LdapOperationNotSupportedException;
+import org.apache.directory.shared.ldap.message.ResultCodeEnum;
+import org.apache.directory.shared.ldap.name.LdapDN;
+import org.apache.directory.shared.ldap.schema.LdapSyntax;
+import org.apache.directory.shared.ldap.schema.SchemaManager;
+import org.apache.directory.shared.ldap.schema.syntaxCheckers.OctetStringSyntaxChecker;
+import org.apache.directory.shared.ldap.util.AttributeUtils;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
/**
@@ -64,8 +64,8 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-@RunWith ( CiRunner.class )
-public class MetaSyntaxHandlerIT
+@RunWith(FrameworkRunner.class)
+public class MetaSyntaxHandlerIT extends AbstractMetaSchemaObjectHandler
{
private static final String DESCRIPTION0 = "A test normalizer";
private static final String DESCRIPTION1 = "An alternate description";
@@ -78,207 +78,278 @@
private static final String SUBSCHEMA_SUBENTRY = "subschemaSubentry";
-
- public static DirectoryService service;
+ public static SchemaManager schemaManager;
- private static SyntaxRegistry getSyntaxRegistry()
+ @Before
+ public void setup()
{
- return service.getRegistries().getSyntaxRegistry();
+ schemaManager = service.getSchemaManager();
}
- private static MatchingRuleRegistry getMatchingRuleRegistry()
+ // ----------------------------------------------------------------------
+ // Test all core methods with normal operational pathways
+ // ----------------------------------------------------------------------
+ @Test
+ public void testAddSyntaxToEnabledSchema() throws Exception
{
- return service.getRegistries().getMatchingRuleRegistry();
+ Attributes attrs = AttributeUtils.createAttributes(
+ "objectClass: top",
+ "objectClass: metaTop",
+ "objectClass: metaSyntax",
+ "m-oid", OID,
+ "m-description", DESCRIPTION0 );
+
+ LdapDN dn = getSyntaxContainer( "apachemeta" );
+ dn.add( "m-oid" + "=" + OID );
+ createDummySyntaxChecker( OID, "apachemeta" );
+ getSchemaContext( service ).createSubcontext( dn, attrs );
+
+ assertTrue( schemaManager.getLdapSyntaxRegistry().contains( OID ) );
+ assertEquals( schemaManager.getLdapSyntaxRegistry().getSchemaName( OID ), "apachemeta" );
+ assertTrue( isOnDisk( dn ) );
}
-
- /**
- * Gets relative DN to ou=schema.
- *
- * @param schemaName the name of the schema
- * @return the dn of the container for the syntax entities
- * @throws Exception on error
- */
- private LdapDN getSyntaxContainer( String schemaName ) throws Exception
+
+ @Test
+ public void testAddSyntaxToDisabledSchema() throws Exception
{
- return new LdapDN( "ou=syntaxes,cn=" + schemaName );
+ Attributes attrs = AttributeUtils.createAttributes(
+ "objectClass: top",
+ "objectClass: metaTop",
+ "objectClass: metaSyntax",
+ "m-oid", OID,
+ "m-description", DESCRIPTION0 );
+
+ // nis is by default inactive
+ LdapDN dn = getSyntaxContainer( "nis" );
+ dn.add( "m-oid" + "=" + OID );
+ createDummySyntaxChecker( OID, "nis" );
+ getSchemaContext( service ).createSubcontext( dn, attrs );
+
+ assertFalse( "adding new syntax to disabled schema should not register it into the registries",
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
+ assertTrue( isOnDisk( dn ) );
}
-
-
- // ----------------------------------------------------------------------
- // Test all core methods with normal operational pathways
- // ----------------------------------------------------------------------
@Test
- public void testAddSyntax() throws Exception
+ public void testAddSyntaxToUnloadedSchema() throws Exception
{
- Attributes attrs = new BasicAttributes( true );
- Attribute oc = new BasicAttribute( SchemaConstants.OBJECT_CLASS_AT, "top" );
- oc.add( MetaSchemaConstants.META_TOP_OC );
- oc.add( MetaSchemaConstants.META_SYNTAX_OC );
- attrs.put( oc );
- attrs.put( MetaSchemaConstants.M_OID_AT, OID );
- attrs.put( MetaSchemaConstants.M_DESCRIPTION_AT, DESCRIPTION0 );
+ Attributes attrs = AttributeUtils.createAttributes(
+ "objectClass: top",
+ "objectClass: metaTop",
+ "objectClass: metaSyntax",
+ "m-oid", OID,
+ "m-description", DESCRIPTION0 );
- LdapDN dn = getSyntaxContainer( "apachemeta" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
- createDummySyntaxChecker( OID, "apachemeta" );
- getSchemaContext( service ).createSubcontext( dn, attrs );
+ // nis is by default inactive
+ LdapDN dn = getSyntaxContainer( "notloaded" );
+ dn.add( "m-oid" + "=" + OID );
+ createDummySyntaxChecker( OID, "nis" );
- assertTrue( getSyntaxRegistry().hasSyntax( OID ) );
- assertEquals( getSyntaxRegistry().getSchemaName( OID ), "apachemeta" );
+ try
+ {
+ getSchemaContext( service ).createSubcontext( dn, attrs );
+ fail( "Should not be there" );
+ }
+ catch( NameNotFoundException nnfe )
+ {
+ // Expected result.
+ }
+
+ assertFalse( "adding new syntax to disabled schema should not register it into the registries",
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
+ assertFalse( isOnDisk( dn ) );
}
@Test
- public void testDeleteSyntax() throws Exception
+ public void testDeleteSyntaxFromEnabledSchema() throws Exception
{
LdapDN dn = getSyntaxContainer( "apachemeta" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
- testAddSyntax();
+ dn.add( "m-oid" + "=" + OID );
+ testAddSyntaxToEnabledSchema();
+
+ assertTrue( isOnDisk( dn ) );
+ assertTrue( "syntax should be removed from the registry after being deleted",
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
getSchemaContext( service ).destroySubcontext( dn );
assertFalse( "syntax should be removed from the registry after being deleted",
- getSyntaxRegistry().hasSyntax( OID ) );
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
+
+ try
+ {
+ schemaManager.getLdapSyntaxRegistry().lookup( OID );
+ fail( "syntax lookup should fail after deleting it" );
+ }
+ catch( NamingException e )
+ {
+ }
+
+ assertFalse( isOnDisk( dn ) );
+ }
+
+
+ @Test
+ public void testDeleteSyntaxFromDisabledSchema() throws Exception
+ {
+ LdapDN dn = getSyntaxContainer( "nis" );
+ dn.add( "m-oid" + "=" + OID );
+ testAddSyntaxToDisabledSchema();
+
+ assertTrue( isOnDisk( dn ) );
+ assertFalse( "syntax should be removed from the registry after being deleted",
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
+
+ getSchemaContext( service ).destroySubcontext( dn );
+
+ assertFalse( "syntax should be removed from the registry after being deleted",
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
- //noinspection EmptyCatchBlock
try
{
- getSyntaxRegistry().lookup( OID );
+ schemaManager.getLdapSyntaxRegistry().lookup( OID );
fail( "syntax lookup should fail after deleting it" );
}
catch( NamingException e )
{
}
+
+ assertFalse( isOnDisk( dn ) );
}
@Test
+ @Ignore
public void testRenameSyntax() throws Exception
{
LdapDN dn = getSyntaxContainer( "apachemeta" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
- testAddSyntax();
+ dn.add( "m-oid" + "=" + OID );
+ testAddSyntaxToEnabledSchema();
LdapDN newdn = getSyntaxContainer( "apachemeta" );
- newdn.add( MetaSchemaConstants.M_OID_AT + "=" + NEW_OID );
+ newdn.add( "m-oid" + "=" + NEW_OID );
getSchemaContext( service ).rename( dn, newdn );
assertFalse( "old syntax OID should be removed from the registry after being renamed",
- getSyntaxRegistry().hasSyntax( OID ) );
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
//noinspection EmptyCatchBlock
try
{
- getSyntaxRegistry().lookup( OID );
+ schemaManager.getLdapSyntaxRegistry().lookup( OID );
fail( "syntax lookup should fail after deleting the syntax" );
}
catch( NamingException e )
{
}
- assertTrue( getSyntaxRegistry().hasSyntax( NEW_OID ) );
+ assertTrue( schemaManager.getLdapSyntaxRegistry().contains( NEW_OID ) );
}
@Test
+ @Ignore
public void testMoveSyntax() throws Exception
{
- testAddSyntax();
+ testAddSyntaxToEnabledSchema();
LdapDN dn = getSyntaxContainer( "apachemeta" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
+ dn.add( "m-oid" + "=" + OID );
LdapDN newdn = getSyntaxContainer( "apache" );
- newdn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
+ newdn.add( "m-oid" + "=" + OID );
getSchemaContext( service ).rename( dn, newdn );
assertTrue( "syntax OID should still be present",
- getSyntaxRegistry().hasSyntax( OID ) );
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
assertEquals( "syntax schema should be set to apache not apachemeta",
- getSyntaxRegistry().getSchemaName( OID ), "apache" );
+ schemaManager.getLdapSyntaxRegistry().getSchemaName( OID ), "apache" );
}
@Test
+ @Ignore
public void testMoveSyntaxAndChangeRdn() throws Exception
{
- testAddSyntax();
+ testAddSyntaxToEnabledSchema();
LdapDN dn = getSyntaxContainer( "apachemeta" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
+ dn.add( "m-oid" + "=" + OID );
LdapDN newdn = getSyntaxContainer( "apache" );
- newdn.add( MetaSchemaConstants.M_OID_AT + "=" + NEW_OID );
+ newdn.add( "m-oid" + "=" + NEW_OID );
getSchemaContext( service ).rename( dn, newdn );
assertFalse( "old syntax OID should NOT be present",
- getSyntaxRegistry().hasSyntax( OID ) );
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
assertTrue( "new syntax OID should be present",
- getSyntaxRegistry().hasSyntax( NEW_OID ) );
+ schemaManager.getLdapSyntaxRegistry().contains( NEW_OID ) );
assertEquals( "syntax with new oid should have schema set to apache NOT apachemeta",
- getSyntaxRegistry().getSchemaName( NEW_OID ), "apache" );
+ schemaManager.getLdapSyntaxRegistry().getSchemaName( NEW_OID ), "apache" );
}
@Test
+ @Ignore
public void testModifySyntaxWithModificationItems() throws Exception
{
- testAddSyntax();
+ testAddSyntaxToEnabledSchema();
- Syntax syntax = getSyntaxRegistry().lookup( OID );
+ LdapSyntax syntax = schemaManager.getLdapSyntaxRegistry().lookup( OID );
assertEquals( syntax.getDescription(), DESCRIPTION0 );
LdapDN dn = getSyntaxContainer( "apachemeta" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
+ dn.add( "m-oid" + "=" + OID );
ModificationItem[] mods = new ModificationItem[1];
- Attribute attr = new BasicAttribute( MetaSchemaConstants.M_DESCRIPTION_AT, DESCRIPTION1 );
+ Attribute attr = new BasicAttribute( "m-description", DESCRIPTION1 );
mods[0] = new ModificationItem( DirContext.REPLACE_ATTRIBUTE, attr );
getSchemaContext( service ).modifyAttributes( dn, mods );
assertTrue( "syntax OID should still be present",
- getSyntaxRegistry().hasSyntax( OID ) );
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
assertEquals( "syntax schema should be set to apachemeta",
- getSyntaxRegistry().getSchemaName( OID ), "apachemeta" );
+ schemaManager.getLdapSyntaxRegistry().getSchemaName( OID ), "apachemeta" );
- syntax = getSyntaxRegistry().lookup( OID );
+ syntax = schemaManager.getLdapSyntaxRegistry().lookup( OID );
assertEquals( syntax.getDescription(), DESCRIPTION1 );
}
@Test
+ @Ignore
public void testModifySyntaxWithAttributes() throws Exception
{
- testAddSyntax();
+ testAddSyntaxToEnabledSchema();
- Syntax syntax = getSyntaxRegistry().lookup( OID );
+ LdapSyntax syntax = schemaManager.getLdapSyntaxRegistry().lookup( OID );
assertEquals( syntax.getDescription(), DESCRIPTION0 );
LdapDN dn = getSyntaxContainer( "apachemeta" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
+ dn.add( "m-oid" + "=" + OID );
Attributes mods = new BasicAttributes( true );
- mods.put( MetaSchemaConstants.M_DESCRIPTION_AT, DESCRIPTION1 );
+ mods.put( "m-description", DESCRIPTION1 );
getSchemaContext( service ).modifyAttributes( dn, DirContext.REPLACE_ATTRIBUTE, mods );
assertTrue( "syntax OID should still be present",
- getSyntaxRegistry().hasSyntax( OID ) );
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
assertEquals( "syntax schema should be set to apachemeta",
- getSyntaxRegistry().getSchemaName( OID ), "apachemeta" );
+ schemaManager.getLdapSyntaxRegistry().getSchemaName( OID ), "apachemeta" );
- syntax = getSyntaxRegistry().lookup( OID );
+ syntax = schemaManager.getLdapSyntaxRegistry().lookup( OID );
assertEquals( syntax.getDescription(), DESCRIPTION1 );
}
@@ -292,8 +363,8 @@
public void testDeleteSyntaxWhenInUse() throws Exception
{
LdapDN dn = getSyntaxContainer( "apachemeta" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
- testAddSyntax();
+ dn.add( "m-oid" + "=" + OID );
+ testAddSyntaxToEnabledSchema();
addDependeeMatchingRule( OID );
try
@@ -307,21 +378,22 @@
}
assertTrue( "syntax should still be in the registry after delete failure",
- getSyntaxRegistry().hasSyntax( OID ) );
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
}
@Test
+ @Ignore
public void testMoveSyntaxWhenInUse() throws Exception
{
- testAddSyntax();
+ testAddSyntaxToEnabledSchema();
addDependeeMatchingRule( OID );
LdapDN dn = getSyntaxContainer( "apachemeta" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
+ dn.add( "m-oid" + "=" + OID );
LdapDN newdn = getSyntaxContainer( "apache" );
- newdn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
+ newdn.add( "m-oid" + "=" + OID );
try
{
@@ -334,21 +406,22 @@
}
assertTrue( "syntax should still be in the registry after move failure",
- getSyntaxRegistry().hasSyntax( OID ) );
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
}
@Test
+ @Ignore
public void testMoveSyntaxAndChangeRdnWhenInUse() throws Exception
{
- testAddSyntax();
+ testAddSyntaxToEnabledSchema();
addDependeeMatchingRule( OID );
LdapDN dn = getSyntaxContainer( "apachemeta" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
+ dn.add( "m-oid" + "=" + OID );
LdapDN newdn = getSyntaxContainer( "apache" );
- newdn.add( MetaSchemaConstants.M_OID_AT + "=" + NEW_OID );
+ newdn.add( "m-oid" + "=" + NEW_OID );
try
{
@@ -361,53 +434,40 @@
}
assertTrue( "syntax should still be in the registry after move failure",
- getSyntaxRegistry().hasSyntax( OID ) );
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
}
- /**
- * Gets relative DN to ou=schema.
- *
- * @param schemaName the name of the schmea
- * @return the dn of the container entry holding matchingRules
- * @throws Exception on parse errors
- */
- private LdapDN getMatchingRuleContainer( String schemaName ) throws Exception
- {
- return new LdapDN( "ou=matchingRules,cn=" + schemaName );
- }
-
-
private void addDependeeMatchingRule( String oid ) throws Exception
{
- Attributes attrs = new BasicAttributes( true );
- Attribute oc = new BasicAttribute( SchemaConstants.OBJECT_CLASS_AT, "top" );
- oc.add( MetaSchemaConstants.META_TOP_OC );
- oc.add( MetaSchemaConstants.META_MATCHING_RULE_OC );
- attrs.put( oc );
- attrs.put( MetaSchemaConstants.M_OID_AT, MR_OID );
- attrs.put( MetaSchemaConstants.M_SYNTAX_AT, OID );
- attrs.put( MetaSchemaConstants.M_DESCRIPTION_AT, MR_DESCRIPTION );
+ Attributes attrs = AttributeUtils.createAttributes(
+ "objectClass: top",
+ "objectClass: metaTop",
+ "objectClass: metaMatchingRule",
+ "m-oid", MR_OID,
+ "m-syntax", OID,
+ "m-description", MR_DESCRIPTION );
LdapDN dn = getMatchingRuleContainer( "apachemeta" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + MR_OID );
+ dn.add( "m-oid" + "=" + MR_OID );
getSchemaContext( service ).createSubcontext( dn, attrs );
- assertTrue( getMatchingRuleRegistry().hasMatchingRule( MR_OID ) );
- assertEquals( getMatchingRuleRegistry().getSchemaName( MR_OID ), "apachemeta" );
+ assertTrue( schemaManager.getMatchingRuleRegistry().contains( MR_OID ) );
+ assertEquals( schemaManager.getMatchingRuleRegistry().getSchemaName( MR_OID ), "apachemeta" );
}
@Test
+ @Ignore
public void testRenameNormalizerWhenInUse() throws Exception
{
LdapDN dn = getSyntaxContainer( "apachemeta" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
- testAddSyntax();
+ dn.add( "m-oid" + "=" + OID );
+ testAddSyntaxToEnabledSchema();
addDependeeMatchingRule( OID );
LdapDN newdn = getSyntaxContainer( "apachemeta" );
- newdn.add( MetaSchemaConstants.M_OID_AT + "=" + NEW_OID );
+ newdn.add( "m-oid" + "=" + NEW_OID );
try
{
@@ -420,7 +480,7 @@
}
assertTrue( "syntax should still be in the registry after rename failure",
- getSyntaxRegistry().hasSyntax( OID ) );
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
}
@@ -430,15 +490,16 @@
@Test
+ @Ignore
public void testMoveSyntaxToTop() throws Exception
{
- testAddSyntax();
+ testAddSyntaxToEnabledSchema();
LdapDN dn = getSyntaxContainer( "apachemeta" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
+ dn.add( "m-oid" + "=" + OID );
LdapDN top = new LdapDN();
- top.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
+ top.add( "m-oid" + "=" + OID );
try
{
@@ -451,20 +512,21 @@
}
assertTrue( "syntax should still be in the registry after move failure",
- getSyntaxRegistry().hasSyntax( OID ) );
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
}
@Test
+ @Ignore
public void testMoveSyntaxToComparatorContainer() throws Exception
{
- testAddSyntax();
+ testAddSyntaxToEnabledSchema();
LdapDN dn = getSyntaxContainer( "apachemeta" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
+ dn.add( "m-oid" + "=" + OID );
LdapDN newdn = new LdapDN( "ou=comparators,cn=apachemeta" );
- newdn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
+ newdn.add( "m-oid" + "=" + OID );
try
{
@@ -477,80 +539,60 @@
}
assertTrue( "syntax should still be in the registry after move failure",
- getSyntaxRegistry().hasSyntax( OID ) );
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
}
@Test
- public void testAddSyntaxToDisabledSchema() throws Exception
- {
- Attributes attrs = new BasicAttributes( true );
- Attribute oc = new BasicAttribute( SchemaConstants.OBJECT_CLASS_AT, "top" );
- oc.add( MetaSchemaConstants.META_TOP_OC );
- oc.add( MetaSchemaConstants.META_SYNTAX_OC );
- attrs.put( oc );
- attrs.put( MetaSchemaConstants.M_OID_AT, OID );
- attrs.put( MetaSchemaConstants.M_DESCRIPTION_AT, DESCRIPTION0 );
-
- // nis is by default inactive
- LdapDN dn = getSyntaxContainer( "nis" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
- createDummySyntaxChecker( OID, "nis" );
- getSchemaContext( service ).createSubcontext( dn, attrs );
-
- assertFalse( "adding new syntax to disabled schema should not register it into the registries",
- getSyntaxRegistry().hasSyntax( OID ) );
- }
-
-
- @Test
+ @Ignore
public void testMoveSyntaxToDisabledSchema() throws Exception
{
- testAddSyntax();
+ testAddSyntaxToEnabledSchema();
LdapDN dn = getSyntaxContainer( "apachemeta" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
+ dn.add( "m-oid" + "=" + OID );
// nis is inactive by default
LdapDN newdn = getSyntaxContainer( "nis" );
- newdn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
+ newdn.add( "m-oid" + "=" + OID );
getSchemaContext( service ).rename( dn, newdn );
assertFalse( "syntax OID should no longer be present",
- getSyntaxRegistry().hasSyntax( OID ) );
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
}
@Test
+ @Ignore
public void testMoveSyntaxToEnabledSchema() throws Exception
{
testAddSyntaxToDisabledSchema();
// nis is inactive by default
LdapDN dn = getSyntaxContainer( "nis" );
- dn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
+ dn.add( "m-oid" + "=" + OID );
assertFalse( "syntax OID should NOT be present when added to disabled nis schema",
- getSyntaxRegistry().hasSyntax( OID ) );
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
LdapDN newdn = getSyntaxContainer( "apachemeta" );
- newdn.add( MetaSchemaConstants.M_OID_AT + "=" + OID );
+ newdn.add( "m-oid" + "=" + OID );
getSchemaContext( service ).rename( dn, newdn );
assertTrue( "syntax OID should be present when moved to enabled schema",
- getSyntaxRegistry().hasSyntax( OID ) );
+ schemaManager.getLdapSyntaxRegistry().contains( OID ) );
assertEquals( "syntax should be in apachemeta schema after move",
- getSyntaxRegistry().getSchemaName( OID ), "apachemeta" );
+ schemaManager.getLdapSyntaxRegistry().getSchemaName( OID ), "apachemeta" );
}
private void createDummySyntaxChecker( String oid, String schema ) throws Exception
{
List<String> descriptions = new ArrayList<String>();
- descriptions.add( "( " + oid + " DESC 'bogus desc' FQCN " + AcceptAllSyntaxChecker.class.getName()
+ descriptions.add( "( " + oid + " DESC 'bogus desc' FQCN " + OctetStringSyntaxChecker.class.getName()
+ " X-SCHEMA '" + schema + "' )" );
modify( DirContext.ADD_ATTRIBUTE, descriptions, "syntaxCheckers" );
}
@@ -559,8 +601,9 @@
private void modify( int op, List<String> descriptions, String opAttr ) throws Exception
{
LdapDN dn = new LdapDN( getSubschemaSubentryDN() );
- dn.normalize( service.getRegistries().getAttributeTypeRegistry().getNormalizerMapping() );
+ dn.normalize( service.getSchemaManager().getNormalizerMapping() );
Attribute attr = new BasicAttribute( opAttr );
+
for ( String description : descriptions )
{
attr.add( description );
Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/ObjectClassCreateIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/ObjectClassCreateIT.java?rev=896599&r1=896598&r2=896599&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/ObjectClassCreateIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/ObjectClassCreateIT.java Wed Jan 6 18:26:43 2010
@@ -20,17 +20,12 @@
package org.apache.directory.server.core.schema;
-import org.apache.directory.server.constants.MetaSchemaConstants;
-import org.apache.directory.server.core.DirectoryService;
-import org.apache.directory.server.core.integ.CiRunner;
-import static org.apache.directory.server.core.integ.IntegrationUtils.*;
-import org.apache.directory.shared.ldap.name.LdapDN;
+import static org.apache.directory.server.core.integ.IntegrationUtils.getSchemaContext;
+import static org.apache.directory.server.core.integ.IntegrationUtils.getSystemContext;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import static org.junit.Assert.assertEquals;
-import org.junit.Test;
-import org.junit.runner.RunWith;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
@@ -42,16 +37,20 @@
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
+import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
+import org.apache.directory.server.core.integ.FrameworkRunner;
+import org.apache.directory.shared.ldap.constants.MetaSchemaConstants;
+import org.apache.directory.shared.ldap.name.LdapDN;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
-@RunWith ( CiRunner.class )
-public class ObjectClassCreateIT
+@RunWith(FrameworkRunner.class)
+public class ObjectClassCreateIT extends AbstractLdapTestUnit
{
private String testOID = "1.3.6.1.4.1.18060.0.4.0.3.1.555555.5555.5555555";
- public static DirectoryService service;
-
-
private void injectSchema() throws Exception
{
//--------------------------------------------------------------------
Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SchemaPersistenceIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SchemaPersistenceIT.java?rev=896599&r1=896598&r2=896599&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SchemaPersistenceIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SchemaPersistenceIT.java Wed Jan 6 18:26:43 2010
@@ -20,22 +20,17 @@
package org.apache.directory.server.core.schema;
-import org.apache.directory.server.core.DirectoryService;
-import org.apache.directory.server.core.integ.CiRunner;
import static org.apache.directory.server.core.integ.IntegrationUtils.getRootContext;
import static org.apache.directory.server.core.integ.IntegrationUtils.getSchemaContext;
-import org.apache.directory.shared.ldap.name.LdapDN;
-import org.apache.directory.shared.ldap.schema.parsers.AttributeTypeDescription;
-import org.apache.directory.shared.ldap.schema.parsers.AttributeTypeDescriptionSchemaParser;
-
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+
+import java.util.ArrayList;
+import java.util.List;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
@@ -48,8 +43,14 @@
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
-import java.util.ArrayList;
-import java.util.List;
+import org.apache.directory.server.core.annotations.CreateDS;
+import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
+import org.apache.directory.server.core.integ.FrameworkRunner;
+import org.apache.directory.shared.ldap.name.LdapDN;
+import org.apache.directory.shared.ldap.schema.AttributeType;
+import org.apache.directory.shared.ldap.schema.parsers.AttributeTypeDescriptionSchemaParser;
+import org.junit.Test;
+import org.junit.runner.RunWith;
/**
@@ -59,14 +60,13 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-@RunWith(CiRunner.class)
-public class SchemaPersistenceIT
+@RunWith(FrameworkRunner.class)
+@CreateDS( name="SchemaPersistenceIT-class" )
+public class SchemaPersistenceIT extends AbstractLdapTestUnit
{
private static final String SUBSCHEMA_SUBENTRY = "subschemaSubentry";
private static final AttributeTypeDescriptionSchemaParser ATTRIBUTE_TYPE_DESCRIPTION_SCHEMA_PARSER = new AttributeTypeDescriptionSchemaParser();
- public static DirectoryService service;
-
/**
* Tests to see if an attributeType is persisted when added, then server
@@ -86,13 +86,25 @@
// test successful add with everything
// -------------------------------------------------------------------
- descriptions.add( "( 1.3.6.1.4.1.18060.0.4.1.2.10000 NAME 'type0' " + "OBSOLETE SUP 2.5.4.41 "
- + "EQUALITY caseExactIA5Match " + "ORDERING octetStringOrderingMatch "
- + "SUBSTR caseExactIA5SubstringsMatch COLLECTIVE " + "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 "
- + "SINGLE-VALUE USAGE userApplications X-SCHEMA 'nis' )" );
- descriptions.add( "( 1.3.6.1.4.1.18060.0.4.1.2.10001 NAME ( 'type1' 'altName' ) "
- + "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SUP 2.5.4.41 "
- + "NO-USER-MODIFICATION USAGE directoryOperation X-SCHEMA 'nis' )" );
+ descriptions.add(
+ "( 1.3.6.1.4.1.18060.0.4.1.2.10000 " +
+ " NAME 'type0' " +
+ " OBSOLETE SUP 2.5.4.41 " +
+ " EQUALITY caseExactIA5Match " +
+ " ORDERING octetStringOrderingMatch " +
+ " SUBSTR caseExactIA5SubstringsMatch " +
+ " COLLECTIVE " +
+ " SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 " +
+ " SINGLE-VALUE USAGE userApplications " +
+ " X-SCHEMA 'nis' )" );
+
+ descriptions.add(
+ "( 1.3.6.1.4.1.18060.0.4.1.2.10001 " +
+ " NAME ( 'type1' 'altName' ) " +
+ " SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 " +
+ " SUP 2.5.4.41 " +
+ " USAGE userApplications " +
+ " X-SCHEMA 'nis' )" );
modify( DirContext.ADD_ATTRIBUTE, descriptions, "attributeTypes" );
@@ -200,13 +212,15 @@
Attributes attrs = getSubschemaSubentryAttributes();
Attribute attrTypes = attrs.get( "attributeTypes" );
- AttributeTypeDescription attributeTypeDescription = null;
+ AttributeType attributeType = null;
+
for ( int ii = 0; ii < attrTypes.size(); ii++ )
{
String desc = ( String ) attrTypes.get( ii );
+
if ( desc.indexOf( oid ) != -1 )
{
- attributeTypeDescription = ATTRIBUTE_TYPE_DESCRIPTION_SCHEMA_PARSER
+ attributeType = ATTRIBUTE_TYPE_DESCRIPTION_SCHEMA_PARSER
.parseAttributeTypeDescription( desc );
break;
}
@@ -214,12 +228,12 @@
if ( isPresent )
{
- assertNotNull( attributeTypeDescription );
- assertEquals( oid, attributeTypeDescription.getNumericOid() );
+ assertNotNull( attributeType );
+ assertEquals( oid, attributeType.getOid() );
}
else
{
- assertNull( attributeTypeDescription );
+ assertNull( attributeType );
}
// -------------------------------------------------------------------
@@ -254,11 +268,11 @@
if ( isPresent )
{
- assertTrue( service.getRegistries().getAttributeTypeRegistry().hasAttributeType( oid ) );
+ assertTrue( service.getSchemaManager().getAttributeTypeRegistry().contains( oid ) );
}
else
{
- assertFalse( service.getRegistries().getAttributeTypeRegistry().hasAttributeType( oid ) );
+ assertFalse( service.getSchemaManager().getAttributeTypeRegistry().contains( oid ) );
}
}
}
Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SchemaServiceIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SchemaServiceIT.java?rev=896599&r1=896598&r2=896599&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SchemaServiceIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SchemaServiceIT.java Wed Jan 6 18:26:43 2010
@@ -20,9 +20,19 @@
package org.apache.directory.server.core.schema;
+import static org.apache.directory.server.core.integ.IntegrationUtils.getRootContext;
+import static org.apache.directory.server.core.integ.IntegrationUtils.getSystemContext;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
import java.io.StringReader;
import java.util.HashMap;
import java.util.Map;
+
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
@@ -32,24 +42,14 @@
import javax.naming.directory.SearchResult;
import javax.naming.ldap.LdapContext;
-import org.apache.directory.server.core.DirectoryService;
+import org.apache.directory.server.core.annotations.ApplyLdifs;
import org.apache.directory.server.core.entry.DefaultServerEntry;
-import org.apache.directory.server.core.integ.CiRunner;
-import static org.apache.directory.server.core.integ.IntegrationUtils.getRootContext;
-import static org.apache.directory.server.core.integ.IntegrationUtils.getSystemContext;
-import org.apache.directory.server.core.integ.annotations.ApplyLdifs;
-
+import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
+import org.apache.directory.server.core.integ.FrameworkRunner;
import org.apache.directory.shared.ldap.exception.LdapSchemaViolationException;
import org.apache.directory.shared.ldap.ldif.LdifEntry;
import org.apache.directory.shared.ldap.ldif.LdifReader;
import org.apache.directory.shared.ldap.message.ResultCodeEnum;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -63,29 +63,26 @@
*/
@ApplyLdifs( {
// Entry # 1
- "dn: cn=person0,ou=system\n" +
- "objectClass: person\n" +
- "cn: person0\n" +
+ "dn: cn=person0,ou=system",
+ "objectClass: person",
+ "cn: person0",
"sn: sn_person0\n",
// Entry # 2
- "dn: cn=person1,ou=system\n" +
- "objectClass: organizationalPerson\n" +
- "cn: person1\n" +
- "sn: sn_person1\n" +
- "seealso: cn=Good One,ou=people,o=sevenSeas\n" +
+ "dn: cn=person1,ou=system",
+ "objectClass: organizationalPerson",
+ "cn: person1",
+ "sn: sn_person1",
+ "seealso: cn=Good One,ou=people,o=sevenSeas",
"seealso:: Y249QmFkIEXDqWvDoCxvdT1wZW9wbGUsbz1zZXZlblNlYXM=\n",
// Entry # 3
- "dn: cn=person2,ou=system\n" +
- "objectClass: inetOrgPerson\n" +
- "cn: person2\n" +
- "sn: sn_person2\n" }
+ "dn: cn=person2,ou=system",
+ "objectClass: inetOrgPerson",
+ "cn: person2",
+ "sn: sn_person2" }
)
-@RunWith ( CiRunner.class )
-public class SchemaServiceIT
+@RunWith(FrameworkRunner.class)
+public class SchemaServiceIT extends AbstractLdapTestUnit
{
- /** The Directory service */
- public static DirectoryService service;
-
/**
* For <a href="https://issues.apache.org/jira/browse/DIRSERVER-925">DIRSERVER-925</a>.
@@ -180,13 +177,13 @@
// should be fine with unique OID
service.getAdminSession().add(
- new DefaultServerEntry( service.getRegistries(), numberOfGunsAttrEntry.getEntry() ) );
+ new DefaultServerEntry( service.getSchemaManager(), numberOfGunsAttrEntry.getEntry() ) );
// should blow chuncks using same OID
try
{
service.getAdminSession().add(
- new DefaultServerEntry( service.getRegistries(), shipOCEntry.getEntry() ) );
+ new DefaultServerEntry( service.getSchemaManager(), shipOCEntry.getEntry() ) );
fail( "Should not be possible to create two schema entities with the same OID." );
}