From 61be60eef8694b2c28386faf6dd2d7c4e842addd Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Thu, 16 Jun 2011 18:00:52 +0000
Subject: [PATCH] Fix OPENDJ-198: RFC 4512 compliance for ldap-toolkit
---
opendj3/opendj-ldap-sdk/src/test/java/com/forgerock/opendj/util/ASCIICharPropTestCase.java | 221 +++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 158 insertions(+), 63 deletions(-)
diff --git a/opendj3/opendj-ldap-sdk/src/test/java/com/forgerock/opendj/util/ASCIICharPropTestCase.java b/opendj3/opendj-ldap-sdk/src/test/java/com/forgerock/opendj/util/ASCIICharPropTestCase.java
index e7a4a9c..d1a59c8 100644
--- a/opendj3/opendj-ldap-sdk/src/test/java/com/forgerock/opendj/util/ASCIICharPropTestCase.java
+++ b/opendj3/opendj-ldap-sdk/src/test/java/com/forgerock/opendj/util/ASCIICharPropTestCase.java
@@ -23,6 +23,7 @@
*
*
* Copyright 2010 Sun Microsystems, Inc.
+ * Portions copyright 2011 ForgeRock AS
*/
package com.forgerock.opendj.util;
@@ -30,7 +31,6 @@
import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -68,32 +68,140 @@
@DataProvider(name = "validasciidata")
public Object[][] createValidASCIIData()
{
+ // @formatter:off
return new Object[][] {
- { (char) 1,/* uppercase */false,/* hex value */0,/* decimal value */0,/*
- * is
- * letter
- */
- false,/* is digit */false,/* is keychar */false },
- { '-',/* uppercase */false,/* hex value */-1,/* decimal value */-1,/*
- * is
- * letter
- */
- false,/* is digit */false,/* is keychar */true },
- { 'a',/* uppercase */false,/* hex value */10,/* decimal value */-1,/*
- * is
- * letter
- */
- true,/* is digit */false,/* is keychar */true },
- { 'A',/* uppercase */true,/* hex value */10,/* decimal value */-1,/*
- * is
- * letter
- */
- true,/* is digit */false,/* is keychar */true },
- { '1',/* uppercase */false,/* hex value */1,/* decimal value */1,/*
- * is
- * letter
- */
- false,/* is digit */true,/* is keychar */true }, };
+ {
+ (char) 1,
+ false, // uppercase
+ -1, // hex
+ -1, // decimal
+ false, // is letter
+ false, // is digit
+ false, // is key char
+ false // is compat key char
+ },
+ {
+ '-',
+ false, // uppercase
+ -1, // hex
+ -1, // decimal
+ false, // is letter
+ false, // is digit
+ true, // is key char
+ true // is compat key char
+ },
+ {
+ '_',
+ false, // uppercase
+ -1, // hex
+ -1, // decimal
+ false, // is letter
+ false, // is digit
+ false, // is key char
+ true // is compat key char
+ },
+ {
+ '.',
+ false, // uppercase
+ -1, // hex
+ -1, // decimal
+ false, // is letter
+ false, // is digit
+ false, // is key char
+ true // is compat key char
+ },
+ {
+ '+',
+ false, // uppercase
+ -1, // hex
+ -1, // decimal
+ false, // is letter
+ false, // is digit
+ false, // is key char
+ false // is compat key char
+ },
+ {
+ 'a',
+ false, // uppercase
+ 10, // hex
+ -1, // decimal
+ true, // is letter
+ false, // is digit
+ true, // is key char
+ true // is compat key char
+ },
+ {
+ 'A',
+ true, // uppercase
+ 10, // hex
+ -1, // decimal
+ true, // is letter
+ false, // is digit
+ true, // is key char
+ true // is compat key char
+ },
+ {
+ 'f',
+ false, // uppercase
+ 15, // hex
+ -1, // decimal
+ true, // is letter
+ false, // is digit
+ true, // is key char
+ true // is compat key char
+ },
+ {
+ 'F',
+ true, // uppercase
+ 15, // hex
+ -1, // decimal
+ true, // is letter
+ false, // is digit
+ true, // is key char
+ true // is compat key char
+ },
+ {
+ 'z',
+ false, // uppercase
+ -1, // hex
+ -1, // decimal
+ true, // is letter
+ false, // is digit
+ true, // is key char
+ true // is compat key char
+ },
+ {
+ 'Z',
+ true, // uppercase
+ -1, // hex
+ -1, // decimal
+ true, // is letter
+ false, // is digit
+ true, // is key char
+ true // is compat key char
+ },
+ {
+ '0',
+ false, // uppercase
+ 0, // hex
+ 0, // decimal
+ false, // is letter
+ true, // is digit
+ true, // is key char
+ true // is compat key char
+ },
+ {
+ '9',
+ false, // uppercase
+ 9, // hex
+ 9, // decimal
+ false, // is letter
+ true, // is digit
+ true, // is key char
+ true // is compat key char
+ },
+ };
+ // @formatter:on
}
@@ -107,7 +215,7 @@
* In case of any errors.
*/
@Test(dataProvider = "invalidasciidata")
- public void testEncode(final char myChar) throws Exception
+ public void testValueOf(final char myChar) throws Exception
{
assertEquals(ASCIICharProp.valueOf(myChar), null);
}
@@ -131,55 +239,42 @@
* Whether the character is a digit
* @param isKeyChar
* Whether the character is a key char.
+ * @param isCompatKeyChar
+ * Whether the character is a compat key char.
* @throws Exception
* In case of any errors.
*/
@Test(dataProvider = "validasciidata")
- public void testEncode(final char myChar, final Boolean isUpper,
- final Integer hexValue, final Integer decimalValue,
- final Boolean isLetter, final Boolean isDigit, final Boolean isKeyChar)
+ public void testValueOf(final char myChar, final boolean isUpper,
+ final int hexValue, final int decimalValue,
+ final boolean isLetter, final boolean isDigit,
+ final boolean isKeyChar, final boolean isCompatKeyChar)
throws Exception
{
final ASCIICharProp myProp = ASCIICharProp.valueOf(myChar);
// check letter.
- if (isLetter)
- {
- assertTrue(myProp.isLetter());
- // Check case.
- if (isUpper)
- {
- assertTrue(myProp.isUpperCase());
- }
- else
- {
- assertTrue(myProp.isLowerCase());
- }
- }
+ assertEquals(isLetter, myProp.isLetter());
+
+ // Check case.
+ assertEquals(isLetter & isUpper, myProp.isUpperCase());
+ assertEquals(isLetter & !isUpper, myProp.isLowerCase());
// check digit.
- if (isDigit)
- {
- assertTrue(myProp.isDigit());
- }
+ assertEquals(isDigit, myProp.isDigit());
- if (isLetter || isDigit)
- {
- // Check hex.
- final int hex = myProp.hexValue();
- final int hex1 = hexValue.intValue();
- assertEquals(myProp.hexValue(), hexValue.intValue());
- // Decimal value.
- assertEquals(myProp.decimalValue(), decimalValue.intValue());
- // Check if it is equal to itself.
- assertEquals(myProp.charValue(), myChar);
- assertEquals(myProp.compareTo(ASCIICharProp.valueOf(myChar)), 0);
- }
+ // Check hex.
+ assertEquals(myProp.hexValue(), hexValue);
+
+ // Decimal value.
+ assertEquals(myProp.decimalValue(), decimalValue);
+
+ // Check if it is equal to itself.
+ assertEquals(myProp.charValue(), myChar);
+ assertEquals(myProp.compareTo(ASCIICharProp.valueOf(myChar)), 0);
// keychar.
- if (isKeyChar)
- {
- assertTrue(myProp.isKeyChar());
- }
+ assertEquals(isKeyChar, myProp.isKeyChar(false));
+ assertEquals(isCompatKeyChar, myProp.isKeyChar(true));
}
}
--
Gitblit v1.10.0