From 36ad5988b43dba78b8e2efa3aca5cff9443a93f0 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 24 Jun 2016 09:50:01 +0000
Subject: [PATCH] GenericSchemaTestCase.java: code cleanup
---
opendj-server-legacy/src/test/java/org/opends/server/schema/GenericSchemaTestCase.java | 274 +++++++++++++++---------------------------------------
1 files changed, 75 insertions(+), 199 deletions(-)
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/schema/GenericSchemaTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/schema/GenericSchemaTestCase.java
index cefa1b5..9a30f66 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/schema/GenericSchemaTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/schema/GenericSchemaTestCase.java
@@ -20,7 +20,9 @@
import static org.opends.server.util.ServerConstants.*;
import java.io.File;
+import java.util.Collections;
import java.util.List;
+import java.util.Set;
import java.util.StringTokenizer;
import java.util.TreeSet;
@@ -51,18 +53,12 @@
*/
@Override
@BeforeClass
- public void setUp()
- throws Exception
+ public void setUp() throws Exception
{
TestCaseUtils.startServer();
}
-
-
- /**
- * Tests to ensure that all attribute syntaxes defined in the schema have
- * valid OIDs.
- */
+ /** Tests to ensure that all attribute syntaxes defined in the schema have valid OIDs. */
@Test
public void testEnsureValidSyntaxOIDs()
{
@@ -77,26 +73,10 @@
}
}
- if (! invalidOIDs.isEmpty())
- {
- StringBuilder message = new StringBuilder();
- message.append("All attribute syntaxes defined in OpenDS must have valid OIDs assigned.").append(EOL);
- message.append("Attribute syntaxes without valid OIDs:").append(EOL);
- for (String s : invalidOIDs)
- {
- message.append("- ").append(s).append(EOL);
- }
-
- throw new AssertionError(message.toString());
- }
+ throwIfInvalidOidsExist("attribute syntaxes", invalidOIDs);
}
-
-
- /**
- * Tests to ensure that all matching rules defined in the schema have valid
- * OIDs.
- */
+ /** Tests to ensure that all matching rules defined in the schema have valid OIDs. */
@Test
public void testEnsureValidMatchingRuleOIDs()
{
@@ -111,28 +91,11 @@
}
}
- if (! invalidOIDs.isEmpty())
- {
- StringBuilder message = new StringBuilder();
- message.append("All matching rules defined in OpenDS must have valid ").append("OIDs assigned.");
- message.append(EOL);
- message.append("Matching rules without valid OIDs:");
- message.append(EOL);
- for (String s : invalidOIDs)
- {
- message.append("- ").append(s);
- message.append(EOL);
- }
-
- throw new AssertionError(message.toString());
- }
+ throwIfInvalidOidsExist("matching rules", invalidOIDs);
}
-
-
/**
- * Tests to ensure that all attribute types defined in the schema have valid
- * OIDs.
+ * Tests to ensure that all attribute types defined in the schema have valid OIDs.
*
* @throws Exception If an unexpected problem occurs.
*/
@@ -142,35 +105,9 @@
{
TreeSet<String> invalidOIDs = new TreeSet<>();
- String buildRoot = System.getProperty(TestCaseUtils.PROPERTY_BUILD_ROOT);
- File schemaDir = new File(new File(buildRoot, "resource"), "schema");
- for (File f : schemaDir.listFiles())
+ for (File f : getSchemaFiles())
{
- if (! f.getName().toLowerCase().endsWith(".ldif"))
- {
- // This could be some other kind of file, like ".svn".
- continue;
- }
-
- LDIFImportConfig importConfig = new LDIFImportConfig(f.getAbsolutePath());
- LDIFReader reader = new LDIFReader(importConfig);
- Entry e = reader.readEntry();
- reader.close();
-
- if (e == null)
- {
- // An empty schema file. This is OK.
- continue;
- }
-
- List<Attribute> attrList = e.getAttribute(getAttributeTypesAttributeType());
- if (attrList.isEmpty())
- {
- // No attribute types in the schema file. This is OK.
- continue;
- }
-
- for (Attribute a : attrList)
+ for (Attribute a : getAttributesFromSchemaFile(f, getAttributeTypesAttributeType()))
{
for (ByteString v : a)
{
@@ -183,30 +120,14 @@
}
}
- if (! invalidOIDs.isEmpty())
- {
- StringBuilder message = new StringBuilder();
- message.append("All attribute types defined in OpenDS must have valid ").append("OIDs assigned.");
- message.append(EOL);
- message.append("Attribute types without valid OIDs:");
- message.append(EOL);
- for (String s : invalidOIDs)
- {
- message.append("- ").append(s);
- message.append(EOL);
- }
-
- throw new AssertionError(message.toString());
- }
+ throwIfInvalidOidsExist("attribute types", invalidOIDs);
}
-
-
/**
- * Tests to ensure that all object classes defined in the schema have valid
- * OIDs.
+ * Tests to ensure that all object classes defined in the schema have valid OIDs.
*
- * @throws Exception If an unexpected problem occurs.
+ * @throws Exception
+ * If an unexpected problem occurs.
*/
@Test
public void testEnsureValidObjectClassOIDs()
@@ -214,36 +135,9 @@
{
TreeSet<String> invalidOIDs = new TreeSet<>();
- String buildRoot = System.getProperty(TestCaseUtils.PROPERTY_BUILD_ROOT);
- File schemaDir = new File(new File(buildRoot, "resource"), "schema");
- for (File f : schemaDir.listFiles())
+ for (File f : getSchemaFiles())
{
- if (! f.getName().toLowerCase().endsWith(".ldif"))
- {
- // This could be some other kind of file, like ".svn".
- continue;
- }
-
- LDIFImportConfig importConfig = new LDIFImportConfig(f.getAbsolutePath());
- Entry e;
- try (LDIFReader reader = new LDIFReader(importConfig))
- {
- e = reader.readEntry();
- if (e == null)
- {
- // An empty schema file. This is OK.
- continue;
- }
- }
-
- List<Attribute> attrList = e.getAttribute("objectclasses");
- if (attrList.isEmpty())
- {
- // No attribute types in the schema file. This is OK.
- continue;
- }
-
- for (Attribute a : attrList)
+ for (Attribute a : getAttributesFromSchemaFile(f, getObjectClassesAttributeType()))
{
for (ByteString v : a)
{
@@ -256,21 +150,9 @@
}
}
- if (! invalidOIDs.isEmpty())
- {
- StringBuilder message = new StringBuilder()
- .append("All object classes defined in OpenDJ must have valid OIDs assigned.").append(EOL)
- .append("Object classes without valid OIDs:").append(EOL);
- for (String s : invalidOIDs)
- {
- message.append("- ").append(s).append(EOL);
- }
- throw new AssertionError(message.toString());
- }
+ throwIfInvalidOidsExist("object classes", invalidOIDs);
}
-
-
/**
* Tests to ensure that all name forms defined in the schema have valid OIDs.
*
@@ -282,35 +164,9 @@
{
TreeSet<String> invalidOIDs = new TreeSet<>();
- String buildRoot = System.getProperty(TestCaseUtils.PROPERTY_BUILD_ROOT);
- File schemaDir = new File(new File(buildRoot, "resource"), "schema");
- for (File f : schemaDir.listFiles())
+ for (File f : getSchemaFiles())
{
- if (! f.getName().toLowerCase().endsWith(".ldif"))
- {
- // This could be some other kind of file, like ".svn".
- continue;
- }
-
- LDIFImportConfig importConfig = new LDIFImportConfig(f.getAbsolutePath());
- LDIFReader reader = new LDIFReader(importConfig);
- Entry e = reader.readEntry();
- reader.close();
-
- if (e == null)
- {
- // An empty schema file. This is OK.
- continue;
- }
-
- List<Attribute> attrList = e.getAttribute(getNameFormsAttributeType());
- if (attrList.isEmpty())
- {
- // No attribute types in the schema file. This is OK.
- continue;
- }
-
- for (Attribute a : attrList)
+ for (Attribute a : getAttributesFromSchemaFile(f, getNameFormsAttributeType()))
{
for (ByteString v : a)
{
@@ -323,24 +179,54 @@
}
}
- if (! invalidOIDs.isEmpty())
- {
- StringBuilder message = new StringBuilder();
- message.append("All name forms defined in OpenDS must have valid OIDs ").append("assigned.");
- message.append(EOL);
- message.append("Name forms without valid OIDs:");
- message.append(EOL);
- for (String s : invalidOIDs)
- {
- message.append("- ").append(s);
- message.append(EOL);
- }
+ throwIfInvalidOidsExist("name forms", invalidOIDs);
+ }
- throw new AssertionError(message.toString());
+ private File[] getSchemaFiles()
+ {
+ String buildRoot = System.getProperty(TestCaseUtils.PROPERTY_BUILD_ROOT);
+ File schemaDir = new File(new File(buildRoot, "resource"), "schema");
+ return schemaDir.listFiles();
+ }
+
+ private List<Attribute> getAttributesFromSchemaFile(File f, AttributeType attributeType) throws Exception
+ {
+ Entry e = readSchemaEntry(f);
+ return e != null
+ ? e.getAttribute(attributeType)
+ // An empty schema file. This is OK.
+ : Collections.<Attribute> emptyList();
+ }
+
+ private Entry readSchemaEntry(File f) throws Exception
+ {
+ if (!f.getName().toLowerCase().endsWith(".ldif"))
+ {
+ // This could be some other kind of file, like ".svn".
+ return null;
+ }
+
+ LDIFImportConfig importConfig = new LDIFImportConfig(f.getAbsolutePath());
+ try (LDIFReader reader = new LDIFReader(importConfig))
+ {
+ return reader.readEntry();
}
}
-
+ private void throwIfInvalidOidsExist(String elementType, Set<String> invalidOIDs) throws AssertionError
+ {
+ if (! invalidOIDs.isEmpty())
+ {
+ StringBuilder message = new StringBuilder()
+ .append("All ").append(elementType).append(" defined in OpenDJ must have valid OIDs assigned." + EOL)
+ .append(elementType).append(" without valid OIDs:" + EOL);
+ for (String oid : invalidOIDs)
+ {
+ message.append("- ").append(oid).append(EOL);
+ }
+ throw new AssertionError(message.toString());
+ }
+ }
/**
* Indicates whether the string represents a valid numeric OID.
@@ -352,27 +238,13 @@
*/
private boolean isNumericOID(String oid)
{
- // It must not be null, and it must not be empty.
- if (oid == null || oid.length() == 0)
- {
- return false;
- }
-
- // It must start and end with numeric digits.
- if (!Character.isDigit(oid.charAt(0)) ||
- !Character.isDigit(oid.charAt(oid.length()-1)))
- {
- return false;
- }
-
- // It must contain at least one period.
- if (!oid.contains("."))
- {
- return false;
- }
-
- // It must not contain any double periods.
- if (oid.contains(".."))
+ if (oid == null
+ || oid.isEmpty()
+ || !startsAndEndsWithDigit(oid)
+ // It must contain at least one period.
+ || !oid.contains(".")
+ // It must not contain any double periods.
+ || oid.contains(".."))
{
return false;
}
@@ -394,5 +266,9 @@
// If we've gotten here, then it should be a valid numeric OID.
return true;
}
-}
+ private boolean startsAndEndsWithDigit(String oid)
+ {
+ return Character.isDigit(oid.charAt(0)) && Character.isDigit(oid.charAt(oid.length() - 1));
+ }
+}
--
Gitblit v1.10.0