From 2b6ac7f0718a3be4cfac897af71dd9391a60bd0b Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Thu, 28 Sep 2006 09:24:27 +0000
Subject: [PATCH] split the Ordering Matching rule tests in separate classes for each rule

---
 opends/tests/unit-tests-testng/src/server/org/opends/server/schema/OrderingMatchingRuleTest.java                |  208 +++++-----------
 opends/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseIgnoreOrderingMatchingRuleTest.java      |   75 ++++++
 opends/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseExactOrderingMatchingRuleTest.java       |   72 ++++++
 opends/tests/unit-tests-testng/src/server/org/opends/server/schema/NumericStringOrderingMatchingRuleTest.java   |   80 ++++++
 opends/tests/unit-tests-testng/src/server/org/opends/server/schema/UUIDOrderingMatchingRuleTest.java            |   81 ++++++
 opends/tests/unit-tests-testng/src/server/org/opends/server/schema/GeneralizedTimeOrderingMatchingRuleTest.java |   97 ++++++++
 opends/tests/unit-tests-testng/src/server/org/opends/server/schema/IntegerOrderingMatchingRuleTest.java         |   82 ++++++
 7 files changed, 557 insertions(+), 138 deletions(-)

diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseExactOrderingMatchingRuleTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseExactOrderingMatchingRuleTest.java
new file mode 100644
index 0000000..d18badc
--- /dev/null
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseExactOrderingMatchingRuleTest.java
@@ -0,0 +1,72 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * 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/opends/resource/legal-notices/OpenDS.LICENSE.  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
+ *
+ *
+ *      Portions Copyright 2006 Sun Microsystems, Inc.
+ */
+package org.opends.server.schema;
+
+import org.opends.server.api.OrderingMatchingRule;
+import org.testng.annotations.DataProvider;
+
+/**
+ * Test the CaseExactOrderingMatchingRule.
+ */
+public class CaseExactOrderingMatchingRuleTest extends
+    OrderingMatchingRuleTest
+{
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  @DataProvider(name="OrderingMatchingRuleInvalidValues")
+  public Object[][] createOrderingMatchingRuleInvalidValues()
+  {
+    return new Object[][] {
+    };
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  @DataProvider(name="Orderingmatchingrules")
+  public Object[][] createOrderingMatchingRuleTestData()
+  {
+    return new Object[][] {
+        {"12345678", "02345678", 1},
+        {"abcdef", "bcdefa", -1},
+        {"abcdef", "abcdef", 0},
+    };
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public OrderingMatchingRule getRule()
+  {
+    return new CaseExactOrderingMatchingRule();
+  }
+}
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseIgnoreOrderingMatchingRuleTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseIgnoreOrderingMatchingRuleTest.java
new file mode 100644
index 0000000..ee37621
--- /dev/null
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseIgnoreOrderingMatchingRuleTest.java
@@ -0,0 +1,75 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * 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/opends/resource/legal-notices/OpenDS.LICENSE.  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
+ *
+ *
+ *      Portions Copyright 2006 Sun Microsystems, Inc.
+ */
+package org.opends.server.schema;
+
+import org.opends.server.api.OrderingMatchingRule;
+import org.testng.annotations.DataProvider;
+
+/**
+ * Test the CaseIgnoreOrderingMatchingRule.
+ */
+public class CaseIgnoreOrderingMatchingRuleTest extends
+    OrderingMatchingRuleTest
+{
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  @DataProvider(name="OrderingMatchingRuleInvalidValues")
+  public Object[][] createOrderingMatchingRuleInvalidValues()
+  {
+    return new Object[][] {
+    };
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  @DataProvider(name="Orderingmatchingrules")
+  public Object[][] createOrderingMatchingRuleTestData()
+  {
+    return new Object[][] {
+        {"12345678", "02345678", 1},
+        {"abcdef", "bcdefa", -1},
+        {"abcdef", "abcdef", 0},
+        {"abcdef", "ABCDEF", 0},
+        {"abcdef", "aCcdef", -1},
+        {"aCcdef", "abcdef", 1},
+    };
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public OrderingMatchingRule getRule()
+  {
+    return new CaseIgnoreOrderingMatchingRule();
+  }
+}
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/GeneralizedTimeOrderingMatchingRuleTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/GeneralizedTimeOrderingMatchingRuleTest.java
new file mode 100644
index 0000000..433ab3a
--- /dev/null
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/GeneralizedTimeOrderingMatchingRuleTest.java
@@ -0,0 +1,97 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * 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/opends/resource/legal-notices/OpenDS.LICENSE.  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
+ *
+ *
+ *      Portions Copyright 2006 Sun Microsystems, Inc.
+ */
+package org.opends.server.schema;
+
+import org.opends.server.api.OrderingMatchingRule;
+import org.testng.annotations.DataProvider;
+
+/**
+ * Test the GeneralizedTimeOrderingMatchingRule.
+ */
+public class GeneralizedTimeOrderingMatchingRuleTest extends
+    OrderingMatchingRuleTest
+{
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  @DataProvider(name="OrderingMatchingRuleInvalidValues")
+  public Object[][] createOrderingMatchingRuleInvalidValues()
+  {
+    return new Object[][] {
+        { "20060912180130"},
+        {"2006123123595aZ"},
+        {"200a1231235959Z"},
+        {"2006j231235959Z"},
+        {"20061231#35959Z"},
+        {"20060912180a30Z"},
+        {"20060912180030Z.01"},
+        {"200609121800"},
+        {"20060912180129.hhZ"},
+        {"20060912180129.1hZ"},
+        {"20060906135030+aa01"},
+        {"2006"},
+        /* disabled because these tests are failing
+         * see issue 675
+         * {"20060906135030+3359"},
+         * {"20060906135030+2389"},
+         * {"20060906135030+2361"},*/
+        {"20060906135030+"},
+        {"20060906135030+0"},
+        {"20060906135030+010"},
+    };
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  @DataProvider(name="Orderingmatchingrules")
+  public Object[][] createOrderingMatchingRuleTestData()
+  {
+    return new Object[][] {
+        {"20060906135030+0101", "20060906135030+2359",  1},
+        {"20060912180130Z",     "20060912180130Z",      0},
+        {"20060912180130Z",     "20060912180129Z",      1},
+        {"20060912180129Z",     "20060912180130Z",     -1},
+        {"20060912180129.000Z", "20060912180130.001Z", -1},
+        {"20060912180129.1Z",   "20060912180130.2Z",   -1},
+        {"20060912180129.11Z",  "20060912180130.12Z",  -1},
+    };
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public OrderingMatchingRule getRule()
+  {
+    return new GeneralizedTimeOrderingMatchingRule();
+  }
+
+}
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/IntegerOrderingMatchingRuleTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/IntegerOrderingMatchingRuleTest.java
new file mode 100644
index 0000000..136bc4a
--- /dev/null
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/IntegerOrderingMatchingRuleTest.java
@@ -0,0 +1,82 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * 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/opends/resource/legal-notices/OpenDS.LICENSE.  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
+ *
+ *
+ *      Portions Copyright 2006 Sun Microsystems, Inc.
+ */
+package org.opends.server.schema;
+
+import org.opends.server.api.OrderingMatchingRule;
+import org.testng.annotations.DataProvider;
+
+/**
+ * Test the IntegerOrderingMatchingRule.
+ */
+public class IntegerOrderingMatchingRuleTest extends
+    OrderingMatchingRuleTest
+{
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  @DataProvider(name="OrderingMatchingRuleInvalidValues")
+  public Object[][] createOrderingMatchingRuleInvalidValues()
+  {
+    return new Object[][] {
+        {" 63 "},
+        {"- 63"},
+        {"+63" },
+        {"AB"  },
+        {"0xAB"},
+    };
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  @DataProvider(name="Orderingmatchingrules")
+  public Object[][] createOrderingMatchingRuleTestData()
+  {
+    return new Object[][] {
+        {"1",   "0",   1},
+        {"1",   "1",   0},
+        {"45",  "54", -1},
+        {"-63", "63", -1},
+        {"-63", "0",  -1},
+        {"63",  "0",   1},
+        {"0",   "-63", 1},
+        {"987654321987654321987654321", "987654321987654321987654322", -1},
+    };
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public OrderingMatchingRule getRule()
+  {
+    return new IntegerOrderingMatchingRule();
+  }
+}
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/NumericStringOrderingMatchingRuleTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/NumericStringOrderingMatchingRuleTest.java
new file mode 100644
index 0000000..46517bd
--- /dev/null
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/NumericStringOrderingMatchingRuleTest.java
@@ -0,0 +1,80 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * 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/opends/resource/legal-notices/OpenDS.LICENSE.  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
+ *
+ *
+ *      Portions Copyright 2006 Sun Microsystems, Inc.
+ */
+package org.opends.server.schema;
+
+import org.opends.server.api.OrderingMatchingRule;
+import org.testng.annotations.DataProvider;
+
+/**
+ * Test the NumericStringOrderingMatchingRule.
+ */
+public class NumericStringOrderingMatchingRuleTest extends
+    OrderingMatchingRuleTest
+{
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  @DataProvider(name="OrderingMatchingRuleInvalidValues")
+  public Object[][] createOrderingMatchingRuleInvalidValues()
+  {
+    return new Object[][] {
+        {"jfhslur"},
+        {"123AB"},
+    };
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  @DataProvider(name="Orderingmatchingrules")
+  public Object[][] createOrderingMatchingRuleTestData()
+  {
+    return new Object[][] {
+        // following test is currently disabled because it does not work
+        // {"1", "09", -1},
+        // see issue 638
+        {"1", "999999999999999999999", -1},
+        {"1", "9",  -1},
+        {"1", " 1 ", 0},
+        {"0", "1",  -1},
+        {"1", "0",  1},
+    };
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public OrderingMatchingRule getRule()
+  {
+    return new NumericStringOrderingMatchingRule();
+  }
+
+}
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/OrderingMatchingRuleTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/OrderingMatchingRuleTest.java
index b9eccce..57d930e 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/OrderingMatchingRuleTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/OrderingMatchingRuleTest.java
@@ -40,86 +40,26 @@
 /**
  * Test The Ordering matching rules and the Ordering matching rule api.
  */
-public class OrderingMatchingRuleTest extends SchemaTestCase
+public abstract class OrderingMatchingRuleTest extends SchemaTestCase
 {
+  /**
+   * Create data for the OrderingMatchingRules test.
+   *
+   * @return The data for the OrderingMatchingRules test.
+   */
   @DataProvider(name="Orderingmatchingrules")
-  public Object[][] createOrderingMatchingRuleTest()
-  {
-    return new Object[][] {
-        {"GeneralizedTimeOrderingMatchingRule","20060906135030+0101",
-          "20060906135030+2359", 1},
-        {"GeneralizedTimeOrderingMatchingRule", "20060912180130Z",
-          "20060912180130Z", 0},
-        {"GeneralizedTimeOrderingMatchingRule", "20060912180130Z",
-          "20060912180129Z", 1},
-        {"GeneralizedTimeOrderingMatchingRule", "20060912180129Z",
-          "20060912180130Z", -1},
-        {"GeneralizedTimeOrderingMatchingRule", "20060912180129.000Z",
-            "20060912180130.001Z", -1},
-        {"GeneralizedTimeOrderingMatchingRule", "20060912180129.1Z",
-            "20060912180130.2Z", -1},
-        {"GeneralizedTimeOrderingMatchingRule", "20060912180129.11Z",
-              "20060912180130.12Z", -1},
+  public abstract Object[][] createOrderingMatchingRuleTestData();
 
-         
-        // following test is currently disabled because it does not work  
-        // {"NumericStringOrderingMatchingRule", "1", "09", -1},
-        // see issue 638
-        {"NumericStringOrderingMatchingRule", "1", "999999999999999999999", -1},
-        {"NumericStringOrderingMatchingRule", "1", "9", -1},
-        {"NumericStringOrderingMatchingRule", "1", " 1 ", 0},
-        {"NumericStringOrderingMatchingRule", "0", "1", -1},
-        {"NumericStringOrderingMatchingRule", "1", "0", 1},
-      
-        {"IntegerOrderingMatchingRule", "1", "0", 1},
-        {"IntegerOrderingMatchingRule", "1", "1", 0},
-        {"IntegerOrderingMatchingRule", "45", "54", -1},
-        {"IntegerOrderingMatchingRule", "-63", "63", -1},
-        {"IntegerOrderingMatchingRule", "-63", "0", -1},
-        {"IntegerOrderingMatchingRule", "63", "0", 1},
-        {"IntegerOrderingMatchingRule", "0", "-63", 1},
-        {"IntegerOrderingMatchingRule", "987654321987654321987654321",
-                                        "987654321987654321987654322", -1},
-                                        
-         {"UUIDOrderingMatchingRule",
-             "12345678-9ABC-DEF0-1234-1234567890ab",
-             "12345678-9abc-def0-1234-1234567890ab", 0},
-         {"UUIDOrderingMatchingRule",
-             "12345678-9abc-def0-1234-1234567890ab",
-             "12345678-9abc-def0-1234-1234567890ab", 0},
-         {"UUIDOrderingMatchingRule",
-               "02345678-9abc-def0-1234-1234567890ab",
-               "12345678-9abc-def0-1234-1234567890ab", -1},
-         {"UUIDOrderingMatchingRule",
-               "12345678-9abc-def0-1234-1234567890ab",
-               "02345678-9abc-def0-1234-1234567890ab", 1},
-               
-         {"CaseExactOrderingMatchingRule", "12345678", "02345678", 1},
-         {"CaseExactOrderingMatchingRule","abcdef", "bcdefa", -1},
-         {"CaseExactOrderingMatchingRule","abcdef", "abcdef", 0},
-         
-         {"CaseIgnoreOrderingMatchingRule", "12345678", "02345678", 1},
-         {"CaseIgnoreOrderingMatchingRule","abcdef", "bcdefa", -1},
-         {"CaseIgnoreOrderingMatchingRule","abcdef", "abcdef", 0},
-         {"CaseIgnoreOrderingMatchingRule","abcdef", "ABCDEF", 0},
-         {"CaseIgnoreOrderingMatchingRule","abcdef", "aCcdef", -1},
-         {"CaseIgnoreOrderingMatchingRule","aCcdef", "abcdef", 1},
-    };
-  }
 
   /**
    * Test the comparison of valid values.
    */
   @Test(dataProvider= "Orderingmatchingrules")
-  public void OrderingMatchingRules(String ruleClassName, String value1,
-      String value2, int result) throws Exception
+  public void OrderingMatchingRules(String value1,String value2, int result)
+         throws Exception
   {
-    // load the mathing rule code
-    Class rule = Class.forName("org.opends.server.schema."+ruleClassName);
-
     // Make sure that the specified class can be instantiated as a task.
-    OrderingMatchingRule ruleInstance =
-      (OrderingMatchingRule) rule.newInstance();
+    OrderingMatchingRule ruleInstance = getRule();
 
     // we should call initializeMatchingRule but they all seem empty at the
     // moment.
@@ -134,7 +74,7 @@
     {
       if (res != 0)
       {
-        fail(ruleClassName + ".compareValues should return 0 for values " +
+        fail(ruleInstance + ".compareValues should return 0 for values " +
             value1 + " and " + value2);
       }
     }
@@ -142,7 +82,7 @@
     {
       if (res <= 0)
       {
-        fail(ruleClassName + ".compareValues should return a positive integer "
+        fail(ruleInstance + ".compareValues should return a positive integer "
             + "for values : " + value1 + " and " + value2);
       }
     }
@@ -150,102 +90,62 @@
     {
       if (res >= 0)
       {
-        fail(ruleClassName + ".compareValues should return a negative integer "
+        fail(ruleInstance + ".compareValues should return a negative integer "
             + "for values : " + value1 + " and " + value2);
       }
     }
   }
 
+  /**
+   * Get the Ordering matching Rules that is to be tested.
+   *
+   * @return The Ordering matching Rules that is to be tested.
+   */
+  public abstract OrderingMatchingRule getRule();
+
+
+  /**
+   * Create data for the OrderingMatchingRulesInvalidValues test.
+   *
+   * @return The data for the OrderingMatchingRulesInvalidValues test.
+   */
   @DataProvider(name="OrderingMatchingRuleInvalidValues")
-  public Object[][] createOrderingMatchingRuleInvalidValues()
-  {
-    return new Object[][] {
-        {"GeneralizedTimeOrderingMatchingRule", "20060912180130"},
-        {"GeneralizedTimeOrderingMatchingRule","2006123123595aZ"},
-        {"GeneralizedTimeOrderingMatchingRule","200a1231235959Z"},
-        {"GeneralizedTimeOrderingMatchingRule","2006j231235959Z"},
-        {"GeneralizedTimeOrderingMatchingRule","20061231#35959Z"},
-        {"GeneralizedTimeOrderingMatchingRule","20060912180a30Z"},
-        {"GeneralizedTimeOrderingMatchingRule","20060912180030Z.01"},
-        {"GeneralizedTimeOrderingMatchingRule","200609121800"},
-        {"GeneralizedTimeOrderingMatchingRule","20060912180129.hhZ"},
-        {"GeneralizedTimeOrderingMatchingRule","20060912180129.1hZ"},
-        {"GeneralizedTimeOrderingMatchingRule","20060906135030+aa01"},
-        {"GeneralizedTimeOrderingMatchingRule","2006"},
-        /* disabled because these tests are failing
-         * see issue 675
-        {"GeneralizedTimeOrderingMatchingRule","20060906135030+3359"},
-        {"GeneralizedTimeOrderingMatchingRule","20060906135030+2389"},
-        {"GeneralizedTimeOrderingMatchingRule","20060906135030+2361"},*/
-        {"GeneralizedTimeOrderingMatchingRule","20060906135030+"},
-        {"GeneralizedTimeOrderingMatchingRule","20060906135030+0"},
-        {"GeneralizedTimeOrderingMatchingRule","20060906135030+010"},
-        
-        {"NumericStringOrderingMatchingRule", "jfhslur"},
-        {"NumericStringOrderingMatchingRule", "123AB"},
-        
-        {"IntegerOrderingMatchingRule", " 63 "},
-        {"IntegerOrderingMatchingRule", "- 63"},
-        {"IntegerOrderingMatchingRule", "+63"},
-        {"IntegerOrderingMatchingRule", "AB"},
-        {"IntegerOrderingMatchingRule", "0xAB"},
-        
-        {"UUIDOrderingMatchingRule", "G2345678-9abc-def0-1234-1234567890ab"},
-        {"UUIDOrderingMatchingRule", "g2345678-9abc-def0-1234-1234567890ab"},
-        {"UUIDOrderingMatchingRule", "12345678/9abc/def0/1234/1234567890ab"},
-        {"UUIDOrderingMatchingRule", "12345678-9abc-def0-1234-1234567890a"},
-    };
-  }
+  public abstract Object[][] createOrderingMatchingRuleInvalidValues();
+
 
   /**
    * Test that invalid values are rejected.
    */
   @Test(dataProvider= "OrderingMatchingRuleInvalidValues")
-  public void OrderingMatchingRulesInvalidValues(String ruleClassName,
-      String value) throws Exception
+  public void OrderingMatchingRulesInvalidValues(String value) throws Exception
   {
-
-    // load the matching rule code
-    Class rule = Class.forName("org.opends.server.schema."+ruleClassName);
-
     // Make sure that the specified class can be instantiated as a task.
-    OrderingMatchingRule ruleInstance =
-      (OrderingMatchingRule) rule.newInstance();
-
-    // we should call initializeMatchingRule but they all seem empty at the
-    // moment.
-    // ruleInstance.initializeMatchingRule(configEntry);
+    OrderingMatchingRule ruleInstance = getRule();
 
     // normalize the 2 provided values
     try
     {
       ruleInstance.normalizeValue(new ASN1OctetString(value));
     } catch (DirectoryException e) {
-      // that's the expected path : the matching rule has detected that 
+      // that's the expected path : the matching rule has detected that
       // the value is incorrect.
       return;
     }
     // if we get there with false value for  success then the tested
     // matching rule did not raised the Exception.
 
-    fail(ruleClassName + " did not catch that value " + value + " is invalid.");
+    fail(ruleInstance + " did not catch that value " + value + " is invalid.");
   }
-  
+
   /**
    * Test that invalid values are rejected.
    */
   @Test(dataProvider= "OrderingMatchingRuleInvalidValues")
-  public void OrderingMatchingRulesInvalidValuesWarn(String ruleClassName,
-      String value) throws Exception
+  public void OrderingMatchingRulesInvalidValuesWarn(String value)
+         throws Exception
   {
-    
-    
-    // load the matching rule code
-    Class rule = Class.forName("org.opends.server.schema."+ruleClassName);
-
     // Make sure that the specified class can be instantiated as a task.
-    OrderingMatchingRule ruleInstance =
-      (OrderingMatchingRule) rule.newInstance();
+    OrderingMatchingRule ruleInstance = getRule();
 
     AcceptRejectWarn accept = DirectoryServer.getSyntaxEnforcementPolicy();
     DirectoryServer.setSyntaxEnforcementPolicy(AcceptRejectWarn.WARN);
@@ -255,12 +155,44 @@
       ruleInstance.normalizeValue(new ASN1OctetString(value));
     } catch (Exception e)
     {
-      fail(ruleClassName + " in warn mode should not reject value " + value + e);
+      fail(ruleInstance + " in warn mode should not reject value " + value + e);
       return;
     }
     finally
     {
       DirectoryServer.setSyntaxEnforcementPolicy(accept);
-    } 
+    }
+  }
+
+  private void dummy ()
+  {
+  
+       Object a = new Object[][] {
+        
+  
+  
+      
+  
+           
+  
+          
+  
+         
+      };
+  
+  }
+
+
+  private Object dummy_invalid()
+  {
+    return new Object[][] {
+      
+
+
+
+
+
+        
+    };
   }
 }
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/UUIDOrderingMatchingRuleTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/UUIDOrderingMatchingRuleTest.java
new file mode 100644
index 0000000..6c7f34b
--- /dev/null
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/UUIDOrderingMatchingRuleTest.java
@@ -0,0 +1,81 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * 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/opends/resource/legal-notices/OpenDS.LICENSE.  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
+ *
+ *
+ *      Portions Copyright 2006 Sun Microsystems, Inc.
+ */
+package org.opends.server.schema;
+
+import org.opends.server.api.OrderingMatchingRule;
+import org.testng.annotations.DataProvider;
+
+/**
+ * Test the UUIDOrderingMatchingRule.
+ */
+public class UUIDOrderingMatchingRuleTest extends
+    OrderingMatchingRuleTest
+{
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  @DataProvider(name="OrderingMatchingRuleInvalidValues")
+  public Object[][] createOrderingMatchingRuleInvalidValues()
+  {
+    return new Object[][] {
+        {"G2345678-9abc-def0-1234-1234567890ab"},
+        {"g2345678-9abc-def0-1234-1234567890ab"},
+        {"12345678/9abc/def0/1234/1234567890ab"},
+        {"12345678-9abc-def0-1234-1234567890a"},
+    };
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  @DataProvider(name="Orderingmatchingrules")
+  public Object[][] createOrderingMatchingRuleTestData()
+  {
+    return new Object[][] {
+        {"12345678-9ABC-DEF0-1234-1234567890ab", 
+          "12345678-9abc-def0-1234-1234567890ab", 0},
+        {"12345678-9abc-def0-1234-1234567890ab",
+          "12345678-9abc-def0-1234-1234567890ab", 0},
+        {"02345678-9abc-def0-1234-1234567890ab",
+          "12345678-9abc-def0-1234-1234567890ab", -1},
+        {"12345678-9abc-def0-1234-1234567890ab",
+          "02345678-9abc-def0-1234-1234567890ab", 1},
+    };
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public OrderingMatchingRule getRule()
+  {
+    return new UUIDOrderingMatchingRule();
+  }
+}

--
Gitblit v1.10.0