You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2006/12/27 17:36:51 UTC
svn commit: r490535 [3/3] - in /directory/trunks/shared/ldap/src:
main/java/org/apache/directory/shared/ldap/schema/
main/java/org/apache/directory/shared/ldap/util/unicode/
test/java/org/apache/directory/shared/ldap/schema/
Added: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/util/unicode/InvalidCharacterException.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/util/unicode/InvalidCharacterException.java?view=auto&rev=490535
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/util/unicode/InvalidCharacterException.java (added)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/util/unicode/InvalidCharacterException.java Wed Dec 27 08:36:50 2006
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License. For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+package org.apache.directory.shared.ldap.util.unicode;
+
+
+import java.io.IOException;
+
+/**
+ *
+ * Exception thrown when a Character is invalid
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class InvalidCharacterException extends IOException
+{
+ private static final long serialVersionUID = 1L;
+ private int input;
+
+
+ public InvalidCharacterException( int input )
+ {
+ this.input = input;
+ }
+
+
+ @Override
+ public String getMessage()
+ {
+ return "Invalid Character 0x" + Integer.toHexString( input );
+ }
+}
\ No newline at end of file
Added: directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/schema/PrepareStringTest.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/schema/PrepareStringTest.java?view=auto&rev=490535
==============================================================================
--- directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/schema/PrepareStringTest.java (added)
+++ directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/schema/PrepareStringTest.java Wed Dec 27 08:36:50 2006
@@ -0,0 +1,194 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.shared.ldap.schema;
+
+import org.apache.directory.shared.ldap.util.unicode.InvalidCharacterException;
+
+import junit.framework.TestCase;
+
+/**
+ *
+ * Test the PrepareString class
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class PrepareStringTest extends TestCase
+{
+ public void testInsignifiantSpacesStringNull() throws InvalidCharacterException
+ {
+ assertEquals( " ", PrepareString.insignifiantSpacesString( (String)null ) );
+ }
+
+ public void testInsignifiantSpacesStringEmpty() throws InvalidCharacterException
+ {
+ assertEquals( " ", PrepareString.insignifiantSpacesString( "" ) );
+ }
+
+ public void testInsignifiantSpacesStringOneSpace() throws InvalidCharacterException
+ {
+ assertEquals( " ", PrepareString.insignifiantSpacesString( " " ) );
+ }
+
+ public void testInsignifiantSpacesStringTwoSpaces() throws InvalidCharacterException
+ {
+ assertEquals( " ", PrepareString.insignifiantSpacesString( " " ) );
+ }
+
+ public void testInsignifiantSpacesStringNSpaces() throws InvalidCharacterException
+ {
+ assertEquals( " ", PrepareString.insignifiantSpacesString( " " ) );
+ }
+
+ public void testInsignifiantSpacesStringOneChar() throws InvalidCharacterException
+ {
+ assertEquals( " a ", PrepareString.insignifiantSpacesString( "a" ) );
+ }
+
+ public void testInsignifiantSpacesStringTwoChars() throws InvalidCharacterException
+ {
+ assertEquals( " aa ", PrepareString.insignifiantSpacesString( "aa" ) );
+ }
+
+ public void testInsignifiantSpacesStringNChars() throws InvalidCharacterException
+ {
+ assertEquals( " aaaaa ", PrepareString.insignifiantSpacesString( "aaaaa" ) );
+ }
+
+ public void testInsignifiantSpacesStringOneCombining() throws InvalidCharacterException
+ {
+ char[] chars = new char[]{ ' ', 0x0310 };
+ char[] expected = new char[]{ ' ', ' ', 0x0310, ' ' };
+ assertEquals( new String( expected ), PrepareString.insignifiantSpacesString( new String( chars ) ) );
+ }
+
+ public void testInsignifiantSpacesStringNCombining() throws InvalidCharacterException
+ {
+ char[] chars = new char[]{ ' ', 0x0310, ' ', 0x0311, ' ', 0x0312 };
+ char[] expected = new char[]{ ' ', ' ', 0x0310, ' ', 0x0311, ' ', 0x0312, ' ' };
+ assertEquals( new String( expected ), PrepareString.insignifiantSpacesString( new String( chars ) ) );
+ }
+
+ public void testInsignifiantSpacesStringCharsSpaces() throws InvalidCharacterException
+ {
+ assertEquals( " a ", PrepareString.insignifiantSpacesString( " a" ) );
+ assertEquals( " a ", PrepareString.insignifiantSpacesString( "a " ) );
+ assertEquals( " a ", PrepareString.insignifiantSpacesString( " a " ) );
+ assertEquals( " a a ", PrepareString.insignifiantSpacesString( "a a" ) );
+ assertEquals( " a a ", PrepareString.insignifiantSpacesString( " a a" ) );
+ assertEquals( " a a ", PrepareString.insignifiantSpacesString( "a a " ) );
+ assertEquals( " a a ", PrepareString.insignifiantSpacesString( "a a" ) );
+ assertEquals( " a a ", PrepareString.insignifiantSpacesString( " a a " ) );
+ assertEquals( " aaa aaa aaa ", PrepareString.insignifiantSpacesString( " aaa aaa aaa " ) );
+ }
+
+ public void testInsignifiantSpacesStringCharsCombiningSpaces() throws InvalidCharacterException
+ {
+ char[] chars = new char[]{ ' ', 0x0310, 'a', 'a', ' ', ' ', 0x0311, ' ', ' ', 'a', 0x0311, 0x0312 };
+ char[] expected = new char[]{ ' ', ' ', 0x0310, 'a', 'a', ' ', ' ', 0x0311, ' ', 'a', 0x0311, 0x0312, ' ' };
+ assertEquals( new String( expected ), PrepareString.insignifiantSpacesString( new String( chars ) ) );
+ }
+
+ public void testMapNull()
+ {
+ assertNull( PrepareString.map( (String)null ) );
+ }
+
+ public void testMapEmpty()
+ {
+ assertEquals( "", PrepareString.map( "" ) );
+ }
+
+ public void testMapString()
+ {
+ assertEquals( "abcd", PrepareString.map( "abcd" ) );
+ }
+
+ public void testMapToLower()
+ {
+ assertEquals( "abcdefghijklmnopqrstuvwxyz", PrepareString.map( "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ) );
+ }
+
+ public void testMapToSpace()
+ {
+ char[] chars = new char[]{ 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0085, 0x00A0, 0x1680,
+ 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A,
+ 0x2028, 0x2029, 0x202F, 0x205F };
+ assertEquals( " ", PrepareString.map( new String( chars ) ) );
+ }
+
+ public void testMapToIgnore()
+ {
+ char[] chars = new char[58];
+
+ int pos = 0;
+
+ for ( char c = 0x0000; c < 0x0008; c++ )
+ {
+ chars[pos++] = c;
+ }
+
+ for ( char c = 0x000E; c < 0x001F; c++ )
+ {
+ chars[pos++] = c;
+ }
+
+ for ( char c = 0x007F; c < 0x0084; c++ )
+ {
+ chars[pos++] = c;
+ }
+
+ for ( char c = 0x0086; c < 0x009F; c++ )
+ {
+ chars[pos++] = c;
+ }
+
+ chars[pos++] = 0x00AD;
+
+ assertEquals( "", PrepareString.map( new String( chars ) ) );
+ }
+
+ public void testInsignifiantSpacesHandleNumericStringNull()
+ {
+ assertNull( PrepareString.insignifiantCharNumericString( (String )null ) );
+ }
+
+ public void testInsignifiantSpacesHandleNumericStringEmpty()
+ {
+ assertEquals( "", PrepareString.insignifiantCharNumericString( "" ) );
+ }
+
+ public void testInsignifiantSpacesHandleNumericStringSpacesOnly()
+ {
+ assertEquals( "", PrepareString.insignifiantCharNumericString( " " ) );
+ assertEquals( "", PrepareString.insignifiantCharNumericString( " " ) );
+ assertEquals( "", PrepareString.insignifiantCharNumericString( " " ) );
+ assertEquals( "", PrepareString.insignifiantCharNumericString( " " ) );
+ }
+
+ public void testInsignifiantSpacesHandleNumericString()
+ {
+ assertEquals( "1", PrepareString.insignifiantCharNumericString( "1" ) );
+ assertEquals( "123456789", PrepareString.insignifiantCharNumericString( "123456789" ) );
+ assertEquals( "111", PrepareString.insignifiantCharNumericString( " 111" ) );
+ assertEquals( "111", PrepareString.insignifiantCharNumericString( "111 " ) );
+ assertEquals( "11", PrepareString.insignifiantCharNumericString( "1 1" ) );
+ assertEquals( "111", PrepareString.insignifiantCharNumericString( "1 1 1" ) );
+ }
+}