From cedfe056e1ce3de8a7e4f34edbb5bdc6f29900f3 Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Tue, 26 Sep 2006 10:20:20 +0000
Subject: [PATCH] Split the Attribute syntaxes tests. Add some tests for better coverage of the Bit String syntax
---
opends/tests/unit-tests-testng/src/server/org/opends/server/schema/AttributeSyntaxTest.java | 283 ++++++--------------------------------------------------
1 files changed, 31 insertions(+), 252 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/AttributeSyntaxTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/AttributeSyntaxTest.java
index 8f8f4dc..0651abf 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/AttributeSyntaxTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/schema/AttributeSyntaxTest.java
@@ -27,280 +27,59 @@
package org.opends.server.schema;
import static org.testng.Assert.*;
-import static org.opends.server.schema.SchemaConstants.*;
import org.opends.server.api.AttributeSyntax;
-import org.opends.server.core.DirectoryServer;
import org.opends.server.protocols.asn1.ASN1OctetString;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
-public class AttributeSyntaxTest extends SchemaTestCase
+public abstract class AttributeSyntaxTest extends SchemaTestCase
{
+ /**
+ * Create data for the testAcceptableValues test.
+ * This should be a table of tables with 2 elements.
+ * The first one should be the value to test, the second the expected
+ * result of the test.
+ *
+ * @return a table containing data for the testAcceptableValues Test.
+ */
@DataProvider(name="acceptableValues")
- public Object[][] createapproximateMatchingRuleTest()
- {
- // fill this table with tables containing :
- // - the name of the Syntax rule to test
- // - a value that must be tested for correctness
- // - a boolean indicating if the value is correct.
- return new Object[][] {
-
- // tests for the UTC time syntax. This time syntax only uses 2 digits
- // for the year but it is currently implemented using 4 digits
- // disable the tests for now.
- // see issue 637
- /*
- {SYNTAX_UTC_TIME_OID,"060906135030+01", true},
- {SYNTAX_UTC_TIME_OID,"0609061350Z", true},
- {SYNTAX_UTC_TIME_OID,"060906135030Z", true},
- {SYNTAX_UTC_TIME_OID,"061116135030Z", true},
- {SYNTAX_UTC_TIME_OID,"061126135030Z", true},
- {SYNTAX_UTC_TIME_OID,"061231235959Z", true},
- {SYNTAX_UTC_TIME_OID,"060906135030+0101", true},
- {SYNTAX_UTC_TIME_OID,"060906135030+2359", true},
- */
- {SYNTAX_UTC_TIME_OID,"060906135030+3359", false},
- {SYNTAX_UTC_TIME_OID,"060906135030+2389", false},
- {SYNTAX_UTC_TIME_OID,"062231235959Z", false},
- {SYNTAX_UTC_TIME_OID,"061232235959Z", false},
- {SYNTAX_UTC_TIME_OID,"06123123595aZ", false},
- {SYNTAX_UTC_TIME_OID,"0a1231235959Z", false},
- {SYNTAX_UTC_TIME_OID,"06j231235959Z", false},
- {SYNTAX_UTC_TIME_OID,"0612-1235959Z", false},
- {SYNTAX_UTC_TIME_OID,"061231#35959Z", false},
- {SYNTAX_UTC_TIME_OID,"2006", false},
+ public abstract Object[][] createAcceptableValues();
- // generalized time.
- {SYNTAX_GENERALIZED_TIME_OID,"2006090613Z", true},
- {SYNTAX_GENERALIZED_TIME_OID,"20060906135030+01", true},
- {SYNTAX_GENERALIZED_TIME_OID,"200609061350Z", true},
- {SYNTAX_GENERALIZED_TIME_OID,"20060906135030Z", true},
- {SYNTAX_GENERALIZED_TIME_OID,"20061116135030Z", true},
- {SYNTAX_GENERALIZED_TIME_OID,"20061126135030Z", true},
- {SYNTAX_GENERALIZED_TIME_OID,"20061231235959Z", true},
- {SYNTAX_GENERALIZED_TIME_OID,"20060906135030+0101", true},
- {SYNTAX_GENERALIZED_TIME_OID,"20060906135030+2359", true},
- {SYNTAX_GENERALIZED_TIME_OID,"20060906135030+3359", false},
- {SYNTAX_GENERALIZED_TIME_OID,"20060906135030+2389", false},
- {SYNTAX_GENERALIZED_TIME_OID,"20060906135030+2361", false},
- {SYNTAX_GENERALIZED_TIME_OID,"20060906135030+", false},
- {SYNTAX_GENERALIZED_TIME_OID,"20060906135030+0", false},
- {SYNTAX_GENERALIZED_TIME_OID,"20060906135030+010", false},
- {SYNTAX_GENERALIZED_TIME_OID,"20061200235959Z", false},
- {SYNTAX_GENERALIZED_TIME_OID,"2006121a235959Z", false},
- {SYNTAX_GENERALIZED_TIME_OID,"2006122a235959Z", false},
- {SYNTAX_GENERALIZED_TIME_OID,"20060031235959Z", false},
- {SYNTAX_GENERALIZED_TIME_OID,"20061331235959Z", false},
- {SYNTAX_GENERALIZED_TIME_OID,"20062231235959Z", false},
- {SYNTAX_GENERALIZED_TIME_OID,"20061232235959Z", false},
- {SYNTAX_GENERALIZED_TIME_OID,"2006123123595aZ", false},
- {SYNTAX_GENERALIZED_TIME_OID,"200a1231235959Z", false},
- {SYNTAX_GENERALIZED_TIME_OID,"2006j231235959Z", false},
- {SYNTAX_GENERALIZED_TIME_OID,"200612-1235959Z", false},
- {SYNTAX_GENERALIZED_TIME_OID,"20061231#35959Z", false},
- {SYNTAX_GENERALIZED_TIME_OID,"2006", false},
-
- // here starts the data for the tests of the Content rule syntax
- {SYNTAX_DIT_CONTENT_RULE_OID,
- "( 2.5.6.4 DESC 'content rule for organization' NOT "
- + "( x121Address $ telexNumber ) )", true},
- {SYNTAX_DIT_CONTENT_RULE_OID,
- "( 2.5.6.4 NAME 'full rule' DESC 'rule with all possible fields' "
- + " OBSOLETE"
- + " AUX ( person )"
- + " MUST ( cn $ sn )"
- + " MAY ( dc )"
- + " NOT ( x121Address $ telexNumber ) )"
- , true},
- {SYNTAX_DIT_CONTENT_RULE_OID,
- "( 2.5.6.4 NAME 'full rule' DESC 'ommit parenthesis' "
- + " OBSOLETE"
- + " AUX person "
- + " MUST cn "
- + " MAY dc "
- + " NOT x121Address )"
- , true},
- {SYNTAX_DIT_CONTENT_RULE_OID,
- "( 2.5.6.4 NAME 'full rule' DESC 'use numeric OIDs' "
- + " OBSOLETE"
- + " AUX 2.5.6.6"
- + " MUST cn "
- + " MAY dc "
- + " NOT x121Address )"
- , true},
- {SYNTAX_DIT_CONTENT_RULE_OID,
- "( 2.5.6.4 NAME 'full rule' DESC 'illegal OIDs' "
- + " OBSOLETE"
- + " AUX 2.5.6.."
- + " MUST cn "
- + " MAY dc "
- + " NOT x121Address )"
- , false},
- {SYNTAX_DIT_CONTENT_RULE_OID,
- "( 2.5.6.4 NAME 'full rule' DESC 'illegal OIDs' "
- + " OBSOLETE"
- + " AUX 2.5.6.x"
- + " MUST cn "
- + " MAY dc "
- + " NOT x121Address )"
- , false},
- {SYNTAX_DIT_CONTENT_RULE_OID,
- "( 2.5.6.4 NAME 'full rule' DESC 'missing closing parenthesis' "
- + " OBSOLETE"
- + " AUX person "
- + " MUST cn "
- + " MAY dc "
- + " NOT x121Address"
- , false},
- {SYNTAX_DIT_CONTENT_RULE_OID,
- "( 2.5.6.4 NAME 'full rule' DESC 'extra parameterss' "
- + " MUST cn "
- + "( this is an extra parameter )"
- , true},
-
- // Here start the data for the tests of the matching rule syntaxes
- {SYNTAX_MATCHING_RULE_OID,
- "( 1.2.3.4 NAME 'full matching rule' "
- + " DESC 'description of matching rule' OBSOLETE "
- + " SYNTAX 1.3.6.1.4.1.1466.115.121.1.17 "
- + " ( this is an extension ) )", true},
- {SYNTAX_MATCHING_RULE_OID,
- "( 1.2.3.4 NAME 'missing closing parenthesis' "
- + " DESC 'description of matching rule' "
- + " SYNTAX 1.3.6.1.4.1.1466.115.121.1.17 "
- + " ( this is an extension ) ", false},
-
- // Here start the data for the tests of the matching rule use syntaxes
- {SYNTAX_MATCHING_RULE_USE_OID,
- "( 2.5.13.10 NAME 'full matching rule' "
- + " DESC 'description of matching rule' OBSOLETE "
- + " APPLIES 2.5.4.3 "
- + " ( this is an extension ) )", true},
- {SYNTAX_MATCHING_RULE_USE_OID,
- "( 2.5.13.10 NAME 'missing closing parenthesis' "
- + " DESC 'description of matching rule' "
- + " SYNTAX 2.5.4.3 "
- + " ( this is an extension ) ", false},
-
- {SYNTAX_BIT_STRING_OID, "'0101'B", true},
- {SYNTAX_BIT_STRING_OID, "'1'B", true},
- {SYNTAX_BIT_STRING_OID, "'0'B", true},
- {SYNTAX_BIT_STRING_OID, "invalid", false},
-
- // disabled because test is failing :
- // {SYNTAX_LDAP_SYNTAX_OID,
- // "( 2.5.4.3 DESC 'full syntax description' "
- // + "( this is an extension ) )", true},
- {SYNTAX_LDAP_SYNTAX_OID,
- "( 2.5.4.3 DESC 'full syntax description' )", true},
- {SYNTAX_LDAP_SYNTAX_OID,
- " ( 2.5.4.3 DESC ' syntax description' )", true},
- {SYNTAX_LDAP_SYNTAX_OID,
- "( 2.5.4.3 DESC syntax description )", false},
- {SYNTAX_LDAP_SYNTAX_OID,
- "($%^*&!@ DESC 'syntax description' )", false},
- {SYNTAX_LDAP_SYNTAX_OID,
- "(temp-oid DESC 'syntax description' )", true},
- {SYNTAX_LDAP_SYNTAX_OID,
- "2.5.4.3 DESC 'syntax description' )", false},
- {SYNTAX_LDAP_SYNTAX_OID,
- "(2.5.4.3 DESC 'syntax description' ", false},
-
- {SYNTAX_GUIDE_OID, "sn$EQ|!(sn$EQ)", true},
- {SYNTAX_GUIDE_OID, "!(sn$EQ)", true},
- {SYNTAX_GUIDE_OID, "person#sn$EQ", true},
- {SYNTAX_GUIDE_OID, "(sn$EQ)", true},
- {SYNTAX_GUIDE_OID, "sn$EQ", true},
- {SYNTAX_GUIDE_OID, "sn$SUBSTR", true},
- {SYNTAX_GUIDE_OID, "sn$GE", true},
- {SYNTAX_GUIDE_OID, "sn$LE", true},
- {SYNTAX_GUIDE_OID, "sn$ME", false},
- {SYNTAX_GUIDE_OID, "?true", true},
- {SYNTAX_GUIDE_OID, "?false", true},
- {SYNTAX_GUIDE_OID, "true|sn$GE", false},
- {SYNTAX_GUIDE_OID, "sn$APPROX", true},
- {SYNTAX_GUIDE_OID, "sn$EQ|(sn$EQ)", true},
- {SYNTAX_GUIDE_OID, "sn$EQ|(sn$EQ", false},
- {SYNTAX_GUIDE_OID, "sn$EQ|(sn$EQ)|sn$EQ", true},
- {SYNTAX_GUIDE_OID, "sn$EQ|(cn$APPROX&?false)", true},
- {SYNTAX_GUIDE_OID, "sn$EQ|(cn$APPROX&|?false)", false},
-
- {SYNTAX_ATTRIBUTE_TYPE_OID,
- "(1.2.8.5 NAME 'testtype' DESC 'full type' OBSOLETE SUP 1.2" +
- " EQUALITY 2.3 ORDERING 5.6 SUBSTR 7.8 SYNTAX 9.1 SINGLE-VALUE" +
- " COLLECTIVE NO-USER-MODIFICATION USAGE directoryOperations )",
- true},
- {SYNTAX_ATTRIBUTE_TYPE_OID,
- "(1.2.8.5 NAME 'testtype' DESC 'full type')",
- true},
- {SYNTAX_ATTRIBUTE_TYPE_OID,
- "(1.2.8.5 USAGE directoryOperations )",
- true},
-
-
- {SYNTAX_UUID_OID, "12345678-9ABC-DEF0-1234-1234567890ab", true},
- {SYNTAX_UUID_OID, "12345678-9abc-def0-1234-1234567890ab", true},
- {SYNTAX_UUID_OID, "12345678-9abc-def0-1234-1234567890ab", true},
- {SYNTAX_UUID_OID, "12345678-9abc-def0-1234-1234567890ab", true},
- {SYNTAX_UUID_OID, "02345678-9abc-def0-1234-1234567890ab", true},
- {SYNTAX_UUID_OID, "12345678-9abc-def0-1234-1234567890ab", true},
- {SYNTAX_UUID_OID, "12345678-9abc-def0-1234-1234567890ab", true},
- {SYNTAX_UUID_OID, "02345678-9abc-def0-1234-1234567890ab", true},
- {SYNTAX_UUID_OID, "G2345678-9abc-def0-1234-1234567890ab", false},
- {SYNTAX_UUID_OID, "g2345678-9abc-def0-1234-1234567890ab", false},
- {SYNTAX_UUID_OID, "12345678/9abc/def0/1234/1234567890ab", false},
- {SYNTAX_UUID_OID, "12345678-9abc-def0-1234-1234567890a", false},
-
- {SYNTAX_IA5_STRING_OID, "12345678", true},
- {SYNTAX_IA5_STRING_OID, "12345678\u2163", false},
-
- {SYNTAX_OTHER_MAILBOX_OID, "MyMail$Mymailbox", true},
- {SYNTAX_OTHER_MAILBOX_OID, "MyMailMymailbox", false},
-
- {SYNTAX_TELEX_OID, "123$france$456", true},
- {SYNTAX_TELEX_OID, "abcdefghijk$lmnopqr$stuvwxyz", true},
- {SYNTAX_TELEX_OID, "12345$67890$()+,-./:? ", true},
- /*
- * disabled because of issue : 701
- * should accept "
- {SYNTAX_TELEX_OID, "12345$67890$\"\"\"", true},
- */
- /* disabled because of issue : 701
- * should not accept backslash and equal sign
- {SYNTAX_TELEX_OID, "12345$67890$\'\'", false},
- {SYNTAX_TELEX_OID, "12345$67890$===", false},*/
-
- };
- }
+ /**
+ * Get an instance of the attribute syntax that muste be tested.
+ *
+ * @return An instance of the attribute syntax that muste be tested.
+ */
+ public abstract AttributeSyntax getRule();
/**
* Test the normalization and the approximate comparison.
*/
@Test(dataProvider= "acceptableValues")
- public void testAcceptableValues(String oid, String value,
- Boolean result) throws Exception
+ public void testAcceptableValues(String value, Boolean result)
+ throws Exception
{
// Make sure that the specified class can be instantiated as a task.
- AttributeSyntax rule = DirectoryServer.getAttributeSyntax(oid, false);
+ AttributeSyntax syntax = getRule();
StringBuilder reason = new StringBuilder();
- // normalize the 2 provided values and check that they are equals
+ // test the valueIsAcceptable method
Boolean liveResult =
- rule.valueIsAcceptable(new ASN1OctetString(value), reason);
+ syntax.valueIsAcceptable(new ASN1OctetString(value), reason);
if (liveResult != result)
- fail(rule + ".valueIsAcceptable gave bad result for " + value +
+ fail(syntax + ".valueIsAcceptable gave bad result for " + value +
"reason : " + reason);
- // call the getters to increase code coverage...
- rule.getApproximateMatchingRule();
- rule.getDescription();
- rule.getEqualityMatchingRule();
- rule.getOID();
- rule.getOrderingMatchingRule();
- rule.getSubstringMatchingRule();
- rule.getSyntaxName();
- rule.toString();
+ // call the getters
+ syntax.getApproximateMatchingRule();
+ syntax.getDescription();
+ syntax.getEqualityMatchingRule();
+ syntax.getOID();
+ syntax.getOrderingMatchingRule();
+ syntax.getSubstringMatchingRule();
+ syntax.getSyntaxName();
+ syntax.toString();
}
}
--
Gitblit v1.10.0