From 263d085885df024dca9250cc03c807912b0a7662 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Tue, 24 Apr 2012 22:33:21 +0000
Subject: [PATCH] Reformat to comply with new Checkstyle rules.
---
opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/schema/SchemaBuilderTest.java | 673 +++++++++++++++++++++++++-------------------------------
1 files changed, 300 insertions(+), 373 deletions(-)
diff --git a/opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/schema/SchemaBuilderTest.java b/opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/schema/SchemaBuilderTest.java
index 3b6125c..1174f0d 100644
--- a/opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/schema/SchemaBuilderTest.java
+++ b/opendj3/opendj-ldap-sdk/src/test/java/org/forgerock/opendj/ldap/schema/SchemaBuilderTest.java
@@ -6,17 +6,16 @@
* (the "License"). You may not use this file except in compliance
* with the License.
*
- * You can obtain a copy of the license at
- * trunk/opendj3/legal-notices/CDDLv1_0.txt
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
* or http://forgerock.org/license/CDDLv1.0.html.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at
- * trunk/opendj3/legal-notices/CDDLv1_0.txt. If applicable,
- * add the following below this CDDL HEADER, with the fields enclosed
- * by brackets "[]" replaced with your own identifying information:
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
@@ -26,397 +25,325 @@
*/
package org.forgerock.opendj.ldap.schema;
-
-
import static org.fest.assertions.Assertions.assertThat;
import static org.fest.assertions.Fail.fail;
import org.forgerock.i18n.LocalizedIllegalArgumentException;
import org.testng.annotations.Test;
-
-
/**
* Test SchemaBuilder.
*/
-public class SchemaBuilderTest extends SchemaTestCase
-{
+public class SchemaBuilderTest extends SchemaTestCase {
- /**
- * Tests that schema validation resolves dependencies between parent/child
- * attribute types regardless of the order in which they were added.
- */
- @Test
- public void testAttributeTypeDependenciesChildThenParent()
- {
- final Schema schema = new SchemaBuilder(Schema.getCoreSchema())
- .addAttributeType("( childtype-oid NAME 'childtype' SUP parenttype )",
- false)
- .addAttributeType(
- "( parenttype-oid NAME 'parenttype' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
- false).toSchema();
- assertThat(schema.getAttributeType("childtype").getSyntax()).isNotNull();
- assertThat(schema.getAttributeType("childtype").getSyntax().getOID())
- .isEqualTo("1.3.6.1.4.1.1466.115.121.1.15");
- }
-
-
-
- /**
- * Tests that schema validation resolves dependencies between parent/child
- * attribute types regardless of the order in which they were added.
- */
- @Test
- public void testAttributeTypeDependenciesParentThenChild()
- {
- final Schema schema = new SchemaBuilder(Schema.getCoreSchema())
- .addAttributeType(
- "( parenttype-oid NAME 'parenttype' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
- false)
- .addAttributeType("( childtype-oid NAME 'childtype' SUP parenttype )",
- false).toSchema();
- assertThat(schema.getAttributeType("childtype").getSyntax()).isNotNull();
- assertThat(schema.getAttributeType("childtype").getSyntax().getOID())
- .isEqualTo("1.3.6.1.4.1.1466.115.121.1.15");
- }
-
-
-
- /**
- * Tests that attribute types must have a syntax or a superior.
- */
- @Test(expectedExceptions = LocalizedIllegalArgumentException.class)
- public void testAttributeTypeNoSuperiorNoSyntax()
- {
- new SchemaBuilder(Schema.getCoreSchema()).addAttributeType(
- "( parenttype-oid NAME 'parenttype' )", false);
- }
-
-
-
- /**
- * Tests that schema validation handles validation failures for superior
- * attribute types regardless of the order.
- */
- @Test
- public void testAttributeTypeSuperiorFailureChildThenParent()
- {
- final Schema schema = new SchemaBuilder(Schema.getCoreSchema())
- .addAttributeType("( childtype-oid NAME 'childtype' SUP parenttype )",
- false)
- .addAttributeType("( parenttype-oid NAME 'parenttype' SUP xxx )", false)
- .toSchema();
-
- try
- {
- schema.getAttributeType("childtype");
- fail("childtype should not be in the schema because its parent is invalid");
- }
- catch (final UnknownSchemaElementException e)
- {
- // Expected.
+ /**
+ * Tests that schema validation resolves dependencies between parent/child
+ * attribute types regardless of the order in which they were added.
+ */
+ @Test
+ public void testAttributeTypeDependenciesChildThenParent() {
+ final Schema schema =
+ new SchemaBuilder(Schema.getCoreSchema())
+ .addAttributeType("( childtype-oid NAME 'childtype' SUP parenttype )",
+ false)
+ .addAttributeType(
+ "( parenttype-oid NAME 'parenttype' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
+ false).toSchema();
+ assertThat(schema.getAttributeType("childtype").getSyntax()).isNotNull();
+ assertThat(schema.getAttributeType("childtype").getSyntax().getOID()).isEqualTo(
+ "1.3.6.1.4.1.1466.115.121.1.15");
}
- try
- {
- schema.getAttributeType("parenttype");
- fail("parenttype should not be in the schema because it is invalid");
- }
- catch (final UnknownSchemaElementException e)
- {
- // Expected.
- }
- }
-
-
-
- /**
- * Tests that schema validation handles validation failures for superior
- * attribute types regardless of the order.
- */
- @Test
- public void testAttributeTypeSuperiorFailureParentThenChild()
- {
- final Schema schema = new SchemaBuilder(Schema.getCoreSchema())
- .addAttributeType("( parenttype-oid NAME 'parenttype' SUP xxx )", false)
- .addAttributeType("( childtype-oid NAME 'childtype' SUP parenttype )",
- false).toSchema();
-
- try
- {
- schema.getAttributeType("childtype");
- fail("childtype should not be in the schema because its parent is invalid");
- }
- catch (final UnknownSchemaElementException e)
- {
- // Expected.
+ /**
+ * Tests that schema validation resolves dependencies between parent/child
+ * attribute types regardless of the order in which they were added.
+ */
+ @Test
+ public void testAttributeTypeDependenciesParentThenChild() {
+ final Schema schema =
+ new SchemaBuilder(Schema.getCoreSchema())
+ .addAttributeType(
+ "( parenttype-oid NAME 'parenttype' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )",
+ false).addAttributeType(
+ "( childtype-oid NAME 'childtype' SUP parenttype )", false)
+ .toSchema();
+ assertThat(schema.getAttributeType("childtype").getSyntax()).isNotNull();
+ assertThat(schema.getAttributeType("childtype").getSyntax().getOID()).isEqualTo(
+ "1.3.6.1.4.1.1466.115.121.1.15");
}
- try
- {
- schema.getAttributeType("parenttype");
- fail("parenttype should not be in the schema because it is invalid");
- }
- catch (final UnknownSchemaElementException e)
- {
- // Expected.
- }
- }
-
-
-
- /**
- * Test for OPENDJ-156: Errors when parsing collective attribute definitions.
- */
- @Test
- public void testCollectiveAttribute()
- {
- final Schema schema = new SchemaBuilder(Schema.getCoreSchema())
- .addAttributeType(
- "( 2.5.4.11.1 NAME 'c-ou' "
- + "SUP ou SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 "
- + "COLLECTIVE X-ORIGIN 'RFC 3671' )", false).toSchema();
- assertThat(schema.getWarnings()).isEmpty();
- }
-
-
-
- /**
- * Tests that it is possible to create a schema which is an exact copy of
- * another and take advantage of copy on write.
- */
- @Test
- public void testCopyOnWriteNoChanges()
- {
- final Schema baseSchema = Schema.getCoreSchema();
- final Schema schema = new SchemaBuilder(baseSchema).toSchema();
-
- assertThat(schema).isSameAs(baseSchema);
- }
-
-
-
- /**
- * Tests that it is possible to create a schema which is based on another.
- */
- @Test
- public void testCopyOnWriteWithChanges()
- {
- final Schema baseSchema = Schema.getCoreSchema();
- final Schema schema = new SchemaBuilder(baseSchema).addAttributeType(
- "( testtype-oid NAME 'testtype' SUP name )", false).toSchema();
- assertThat(schema).isNotSameAs(baseSchema);
- assertThat(schema.getObjectClasses().containsAll(
- baseSchema.getObjectClasses()));
- assertThat(schema.getObjectClasses().size()).isEqualTo(
- baseSchema.getObjectClasses().size());
- assertThat(schema.getAttributeTypes().containsAll(
- baseSchema.getAttributeTypes()));
- assertThat(schema.getAttributeType("testtype")).isNotNull();
- assertThat(schema.getSchemaName()).isEqualTo(baseSchema.getSchemaName());
- assertThat(schema.allowMalformedNamesAndOptions()).isEqualTo(
- baseSchema.allowMalformedNamesAndOptions());
- }
-
-
-
- /**
- * Tests that it is possible to create an empty schema.
- */
- @Test
- public void testCreateEmptySchema()
- {
- final Schema schema = new SchemaBuilder().toSchema();
- assertThat(schema.getAttributeTypes()).isEmpty();
- assertThat(schema.getObjectClasses()).isEmpty();
- assertThat(schema.getSyntaxes()).isEmpty();
- assertThat(schema.getWarnings()).isEmpty();
- // Could go on...
- }
-
-
-
- /**
- * Tests that multiple consecutive invocations of toSchema return the exact
- * same schema.
- */
- @Test
- public void testMultipleToSchema1()
- {
- final Schema baseSchema = Schema.getCoreSchema();
- final SchemaBuilder builder = new SchemaBuilder(baseSchema);
- final Schema schema1 = builder.toSchema();
- final Schema schema2 = builder.toSchema();
- assertThat(schema1).isSameAs(baseSchema);
- assertThat(schema1).isSameAs(schema2);
- }
-
-
-
- /**
- * Tests that multiple consecutive invocations of toSchema return the exact
- * same schema.
- */
- @Test
- public void testMultipleToSchema2()
- {
- final SchemaBuilder builder = new SchemaBuilder()
- .addAttributeType(
- "( testtype-oid NAME 'testtype' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )",
- false);
- final Schema schema1 = builder.toSchema();
- final Schema schema2 = builder.toSchema();
- assertThat(schema1).isSameAs(schema2);
- assertThat(schema1.getAttributeType("testtype")).isNotNull();
- assertThat(schema2.getAttributeType("testtype")).isNotNull();
- }
-
-
-
- /**
- * Tests that schema validation resolves dependencies between parent/child
- * object classes regardless of the order in which they were added.
- */
- @Test
- public void testObjectClassDependenciesChildThenParent()
- {
- final Schema schema = new SchemaBuilder(Schema.getCoreSchema())
- .addObjectClass(
- "( childtype-oid NAME 'childtype' SUP parenttype STRUCTURAL MUST sn )",
- false)
- .addObjectClass(
- "( parenttype-oid NAME 'parenttype' SUP top STRUCTURAL MUST cn )",
- false).toSchema();
-
- final AttributeType cn = schema.getAttributeType("cn");
- final AttributeType sn = schema.getAttributeType("sn");
-
- assertThat(schema.getObjectClass("childtype").isRequired(cn)).isTrue();
- assertThat(schema.getObjectClass("childtype").isRequired(sn)).isTrue();
- }
-
-
-
- /**
- * Tests that schema validation resolves dependencies between parent/child
- * object classes regardless of the order in which they were added.
- */
- @Test
- public void testObjectClassDependenciesParentThenChild()
- {
- final Schema schema = new SchemaBuilder(Schema.getCoreSchema())
- .addObjectClass(
- "( parenttype-oid NAME 'parenttype' SUP top STRUCTURAL MUST cn )",
- false)
- .addObjectClass(
- "( childtype-oid NAME 'childtype' SUP parenttype STRUCTURAL MUST sn )",
- false).toSchema();
-
- final AttributeType cn = schema.getAttributeType("cn");
- final AttributeType sn = schema.getAttributeType("sn");
-
- assertThat(schema.getObjectClass("childtype").isRequired(cn)).isTrue();
- assertThat(schema.getObjectClass("childtype").isRequired(sn)).isTrue();
- }
-
-
-
- /**
- * Tests that schema validation handles validation failures for superior
- * object classes regardless of the order.
- */
- @Test
- public void testObjectClassSuperiorFailureChildThenParent()
- {
- final Schema schema = new SchemaBuilder(Schema.getCoreSchema())
- .addObjectClass(
- "( childtype-oid NAME 'childtype' SUP parenttype STRUCTURAL MUST sn )",
- false)
- .addObjectClass(
- "( parenttype-oid NAME 'parenttype' SUP top STRUCTURAL MUST xxx )",
- false).toSchema();
-
- try
- {
- schema.getObjectClass("childtype");
- fail("childtype should not be in the schema because its parent is invalid");
- }
- catch (final UnknownSchemaElementException e)
- {
- // Expected.
+ /**
+ * Tests that attribute types must have a syntax or a superior.
+ */
+ @Test(expectedExceptions = LocalizedIllegalArgumentException.class)
+ public void testAttributeTypeNoSuperiorNoSyntax() {
+ new SchemaBuilder(Schema.getCoreSchema()).addAttributeType(
+ "( parenttype-oid NAME 'parenttype' )", false);
}
- try
- {
- schema.getObjectClass("parenttype");
- fail("parenttype should not be in the schema because it is invalid");
- }
- catch (final UnknownSchemaElementException e)
- {
- // Expected.
- }
- }
+ /**
+ * Tests that schema validation handles validation failures for superior
+ * attribute types regardless of the order.
+ */
+ @Test
+ public void testAttributeTypeSuperiorFailureChildThenParent() {
+ final Schema schema =
+ new SchemaBuilder(Schema.getCoreSchema()).addAttributeType(
+ "( childtype-oid NAME 'childtype' SUP parenttype )", false)
+ .addAttributeType("( parenttype-oid NAME 'parenttype' SUP xxx )", false)
+ .toSchema();
+ try {
+ schema.getAttributeType("childtype");
+ fail("childtype should not be in the schema because its parent is invalid");
+ } catch (final UnknownSchemaElementException e) {
+ // Expected.
+ }
-
- /**
- * Tests that schema validation handles validation failures for superior
- * object classes regardless of the order.
- */
- @Test
- public void testObjectClassSuperiorFailureParentThenChild()
- {
- final Schema schema = new SchemaBuilder(Schema.getCoreSchema())
- .addObjectClass(
- "( parenttype-oid NAME 'parenttype' SUP top STRUCTURAL MUST xxx )",
- false)
- .addObjectClass(
- "( childtype-oid NAME 'childtype' SUP parenttype STRUCTURAL MUST sn )",
- false).toSchema();
-
- try
- {
- schema.getObjectClass("childtype");
- fail("childtype should not be in the schema because its parent is invalid");
- }
- catch (final UnknownSchemaElementException e)
- {
- // Expected.
+ try {
+ schema.getAttributeType("parenttype");
+ fail("parenttype should not be in the schema because it is invalid");
+ } catch (final UnknownSchemaElementException e) {
+ // Expected.
+ }
}
- try
- {
- schema.getObjectClass("parenttype");
- fail("parenttype should not be in the schema because it is invalid");
+ /**
+ * Tests that schema validation handles validation failures for superior
+ * attribute types regardless of the order.
+ */
+ @Test
+ public void testAttributeTypeSuperiorFailureParentThenChild() {
+ final Schema schema =
+ new SchemaBuilder(Schema.getCoreSchema()).addAttributeType(
+ "( parenttype-oid NAME 'parenttype' SUP xxx )", false).addAttributeType(
+ "( childtype-oid NAME 'childtype' SUP parenttype )", false).toSchema();
+
+ try {
+ schema.getAttributeType("childtype");
+ fail("childtype should not be in the schema because its parent is invalid");
+ } catch (final UnknownSchemaElementException e) {
+ // Expected.
+ }
+
+ try {
+ schema.getAttributeType("parenttype");
+ fail("parenttype should not be in the schema because it is invalid");
+ } catch (final UnknownSchemaElementException e) {
+ // Expected.
+ }
}
- catch (final UnknownSchemaElementException e)
- {
- // Expected.
+
+ /**
+ * Test for OPENDJ-156: Errors when parsing collective attribute
+ * definitions.
+ */
+ @Test
+ public void testCollectiveAttribute() {
+ final Schema schema =
+ new SchemaBuilder(Schema.getCoreSchema()).addAttributeType(
+ "( 2.5.4.11.1 NAME 'c-ou' "
+ + "SUP ou SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 "
+ + "COLLECTIVE X-ORIGIN 'RFC 3671' )", false).toSchema();
+ assertThat(schema.getWarnings()).isEmpty();
}
- }
+ /**
+ * Tests that it is possible to create a schema which is an exact copy of
+ * another and take advantage of copy on write.
+ */
+ @Test
+ public void testCopyOnWriteNoChanges() {
+ final Schema baseSchema = Schema.getCoreSchema();
+ final Schema schema = new SchemaBuilder(baseSchema).toSchema();
+ assertThat(schema).isSameAs(baseSchema);
+ }
- /**
- * Tests that a schema builder can be re-used after toSchema has been called.
- */
- @Test
- public void testReuseSchemaBuilder()
- {
- final SchemaBuilder builder = new SchemaBuilder();
- final Schema schema1 = builder
- .addAttributeType(
- "( testtype1-oid NAME 'testtype1' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )",
- false).toSchema();
+ /**
+ * Tests that it is possible to create a schema which is based on another.
+ */
+ @Test
+ public void testCopyOnWriteWithChanges() {
+ final Schema baseSchema = Schema.getCoreSchema();
+ final Schema schema =
+ new SchemaBuilder(baseSchema).addAttributeType(
+ "( testtype-oid NAME 'testtype' SUP name )", false).toSchema();
+ assertThat(schema).isNotSameAs(baseSchema);
+ assertThat(schema.getObjectClasses().containsAll(baseSchema.getObjectClasses()));
+ assertThat(schema.getObjectClasses().size())
+ .isEqualTo(baseSchema.getObjectClasses().size());
+ assertThat(schema.getAttributeTypes().containsAll(baseSchema.getAttributeTypes()));
+ assertThat(schema.getAttributeType("testtype")).isNotNull();
+ assertThat(schema.getSchemaName()).isEqualTo(baseSchema.getSchemaName());
+ assertThat(schema.allowMalformedNamesAndOptions()).isEqualTo(
+ baseSchema.allowMalformedNamesAndOptions());
+ }
- final Schema schema2 = builder
- .addAttributeType(
- "( testtype2-oid NAME 'testtype2' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )",
- false).toSchema();
- assertThat(schema1).isNotSameAs(schema2);
- assertThat(schema1.getAttributeType("testtype1")).isNotNull();
- assertThat(schema1.hasAttributeType("testtype2")).isFalse();
- assertThat(schema2.getAttributeType("testtype1")).isNotNull();
- assertThat(schema2.getAttributeType("testtype2")).isNotNull();
- }
+ /**
+ * Tests that it is possible to create an empty schema.
+ */
+ @Test
+ public void testCreateEmptySchema() {
+ final Schema schema = new SchemaBuilder().toSchema();
+ assertThat(schema.getAttributeTypes()).isEmpty();
+ assertThat(schema.getObjectClasses()).isEmpty();
+ assertThat(schema.getSyntaxes()).isEmpty();
+ assertThat(schema.getWarnings()).isEmpty();
+ // Could go on...
+ }
+
+ /**
+ * Tests that multiple consecutive invocations of toSchema return the exact
+ * same schema.
+ */
+ @Test
+ public void testMultipleToSchema1() {
+ final Schema baseSchema = Schema.getCoreSchema();
+ final SchemaBuilder builder = new SchemaBuilder(baseSchema);
+ final Schema schema1 = builder.toSchema();
+ final Schema schema2 = builder.toSchema();
+ assertThat(schema1).isSameAs(baseSchema);
+ assertThat(schema1).isSameAs(schema2);
+ }
+
+ /**
+ * Tests that multiple consecutive invocations of toSchema return the exact
+ * same schema.
+ */
+ @Test
+ public void testMultipleToSchema2() {
+ final SchemaBuilder builder =
+ new SchemaBuilder().addAttributeType(
+ "( testtype-oid NAME 'testtype' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )",
+ false);
+ final Schema schema1 = builder.toSchema();
+ final Schema schema2 = builder.toSchema();
+ assertThat(schema1).isSameAs(schema2);
+ assertThat(schema1.getAttributeType("testtype")).isNotNull();
+ assertThat(schema2.getAttributeType("testtype")).isNotNull();
+ }
+
+ /**
+ * Tests that schema validation resolves dependencies between parent/child
+ * object classes regardless of the order in which they were added.
+ */
+ @Test
+ public void testObjectClassDependenciesChildThenParent() {
+ final Schema schema =
+ new SchemaBuilder(Schema.getCoreSchema()).addObjectClass(
+ "( childtype-oid NAME 'childtype' SUP parenttype STRUCTURAL MUST sn )",
+ false).addObjectClass(
+ "( parenttype-oid NAME 'parenttype' SUP top STRUCTURAL MUST cn )", false)
+ .toSchema();
+
+ final AttributeType cn = schema.getAttributeType("cn");
+ final AttributeType sn = schema.getAttributeType("sn");
+
+ assertThat(schema.getObjectClass("childtype").isRequired(cn)).isTrue();
+ assertThat(schema.getObjectClass("childtype").isRequired(sn)).isTrue();
+ }
+
+ /**
+ * Tests that schema validation resolves dependencies between parent/child
+ * object classes regardless of the order in which they were added.
+ */
+ @Test
+ public void testObjectClassDependenciesParentThenChild() {
+ final Schema schema =
+ new SchemaBuilder(Schema.getCoreSchema())
+ .addObjectClass(
+ "( parenttype-oid NAME 'parenttype' SUP top STRUCTURAL MUST cn )",
+ false)
+ .addObjectClass(
+ "( childtype-oid NAME 'childtype' SUP parenttype STRUCTURAL MUST sn )",
+ false).toSchema();
+
+ final AttributeType cn = schema.getAttributeType("cn");
+ final AttributeType sn = schema.getAttributeType("sn");
+
+ assertThat(schema.getObjectClass("childtype").isRequired(cn)).isTrue();
+ assertThat(schema.getObjectClass("childtype").isRequired(sn)).isTrue();
+ }
+
+ /**
+ * Tests that schema validation handles validation failures for superior
+ * object classes regardless of the order.
+ */
+ @Test
+ public void testObjectClassSuperiorFailureChildThenParent() {
+ final Schema schema =
+ new SchemaBuilder(Schema.getCoreSchema()).addObjectClass(
+ "( childtype-oid NAME 'childtype' SUP parenttype STRUCTURAL MUST sn )",
+ false).addObjectClass(
+ "( parenttype-oid NAME 'parenttype' SUP top STRUCTURAL MUST xxx )", false)
+ .toSchema();
+
+ try {
+ schema.getObjectClass("childtype");
+ fail("childtype should not be in the schema because its parent is invalid");
+ } catch (final UnknownSchemaElementException e) {
+ // Expected.
+ }
+
+ try {
+ schema.getObjectClass("parenttype");
+ fail("parenttype should not be in the schema because it is invalid");
+ } catch (final UnknownSchemaElementException e) {
+ // Expected.
+ }
+ }
+
+ /**
+ * Tests that schema validation handles validation failures for superior
+ * object classes regardless of the order.
+ */
+ @Test
+ public void testObjectClassSuperiorFailureParentThenChild() {
+ final Schema schema =
+ new SchemaBuilder(Schema.getCoreSchema())
+ .addObjectClass(
+ "( parenttype-oid NAME 'parenttype' SUP top STRUCTURAL MUST xxx )",
+ false)
+ .addObjectClass(
+ "( childtype-oid NAME 'childtype' SUP parenttype STRUCTURAL MUST sn )",
+ false).toSchema();
+
+ try {
+ schema.getObjectClass("childtype");
+ fail("childtype should not be in the schema because its parent is invalid");
+ } catch (final UnknownSchemaElementException e) {
+ // Expected.
+ }
+
+ try {
+ schema.getObjectClass("parenttype");
+ fail("parenttype should not be in the schema because it is invalid");
+ } catch (final UnknownSchemaElementException e) {
+ // Expected.
+ }
+ }
+
+ /**
+ * Tests that a schema builder can be re-used after toSchema has been
+ * called.
+ */
+ @Test
+ public void testReuseSchemaBuilder() {
+ final SchemaBuilder builder = new SchemaBuilder();
+ final Schema schema1 =
+ builder.addAttributeType(
+ "( testtype1-oid NAME 'testtype1' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )",
+ false).toSchema();
+
+ final Schema schema2 =
+ builder.addAttributeType(
+ "( testtype2-oid NAME 'testtype2' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )",
+ false).toSchema();
+ assertThat(schema1).isNotSameAs(schema2);
+ assertThat(schema1.getAttributeType("testtype1")).isNotNull();
+ assertThat(schema1.hasAttributeType("testtype2")).isFalse();
+ assertThat(schema2.getAttributeType("testtype1")).isNotNull();
+ assertThat(schema2.getAttributeType("testtype2")).isNotNull();
+ }
}
--
Gitblit v1.10.0