Return-Path: Delivered-To: apmail-jakarta-avalon-cvs-archive@apache.org Received: (qmail 77254 invoked from network); 25 Sep 2002 18:12:38 -0000 Received: from unknown (HELO nagoya.betaversion.org) (192.18.49.131) by daedalus.apache.org with SMTP; 25 Sep 2002 18:12:38 -0000 Received: (qmail 29078 invoked by uid 97); 25 Sep 2002 17:52:36 -0000 Delivered-To: qmlist-jakarta-archive-avalon-cvs@jakarta.apache.org Received: (qmail 29003 invoked by uid 97); 25 Sep 2002 17:52:36 -0000 Mailing-List: contact avalon-cvs-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Avalon CVS List" Reply-To: "Avalon Developers List" Delivered-To: mailing list avalon-cvs@jakarta.apache.org Received: (qmail 28858 invoked by uid 97); 25 Sep 2002 17:52:34 -0000 X-Antivirus: nagoya (v4218 created Aug 14 2002) Date: 25 Sep 2002 15:01:43 -0000 Message-ID: <20020925150143.26275.qmail@icarus.apache.org> From: bloritsch@apache.org To: jakarta-avalon-excalibur-cvs@apache.org Subject: cvs commit: jakarta-avalon-excalibur/event/src/test/org/apache/excalibur/util/test StringUtilTestCase.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N bloritsch 2002/09/25 08:01:43 Modified: event build.xml default.properties Added: event/src/java/org/apache/excalibur/util StringUtil.java event/src/test/org/apache/excalibur/util/test StringUtilTestCase.java Log: remove dependency and move the last remaining class Revision Changes Path 1.34 +0 -2 jakarta-avalon-excalibur/event/build.xml Index: build.xml =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/event/build.xml,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- build.xml 7 Sep 2002 00:17:46 -0000 1.33 +++ build.xml 25 Sep 2002 15:01:43 -0000 1.34 @@ -17,7 +17,6 @@ - @@ -48,7 +47,6 @@ - 1.18 +1 -1 jakarta-avalon-excalibur/event/default.properties Index: default.properties =================================================================== RCS file: /home/cvs/jakarta-avalon-excalibur/event/default.properties,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- default.properties 14 Aug 2002 14:58:23 -0000 1.17 +++ default.properties 25 Sep 2002 15:01:43 -0000 1.18 @@ -1 +1 @@ -# ------------------------------------------------------------------- # B U I L D P R O P E R T I E S # ------------------------------------------------------------------- # Specifies default property values # Overridden by ../default.properties and all ant.properties # Not user-editable; use ant.properties files instead name=excalibur-event Name=Excalibur Event dir-name=event version=1.0a package-version=0.99 year=2002 # -------------------------------------------------- # REQUIRED LIBRARIES # -------------------------------------------------- # ----- Excalibur util, version 1.0 or later ----- excalibur-util.home=${basedir}/../util/dist excalibur-util.lib=${excalibur-util.home} excalibur-util.jar=${excalibur-util.lib}/excalibur-util-1.0.jar # ----- Excalibur threadcontext, version 1.0 or later ----- excalibur-threadcontext.home=${basedir}/../threadcontext/dist excalibur-threadcontext.lib=${excalibur-threadcontext.home} excalibur-threadcontext.jar=${excalibur-threadcontext.lib}/excalibur-threadcontext-1.0.jar # ----- Excalibur Collections, version 1.0 or later ----- excalibur-collections.home=${basedir}/../collections/dist excalibur-collections.lib=${excalibur-collections.home} excalibur-collections.jar=${excalibur-collections.lib}/excalibur-collections-1.0.jar # ----- Excalibur Concurrent, version 1.0 or later ----- excalibur-concurrent.home=${basedir}/../concurrent/dist excalibur-concurrent.lib=${excalibur-concurrent.home} excalibur-concurrent.jar=${excalibur-concurrent.lib}/excalibur-concurrent-1.0.jar # ----- Excalibur Util, version 1.0 or later ----- excalibur-util.home=${basedir}/../util/build/lib excalibur-util.lib=${excalibur-util.home} excalibur-util.jar=${excalibur-util.lib}/excalibur-util-1.0.jar # ----- Excalibur Core ----- excalibur-core.home=${basedir}/../all excalibur-core.lib=${excalibur-core.home}/build/lib excalibur-core.jar=${excalibur-core.lib}/excalibur-core.jar # ----- Avalon Framework, version 4.1 or later ----- avalon-framework.home=${basedir}/../../jakarta-avalon avalon-framework.lib=${avalon-framework.home}/build/lib avalon-framework.jar=${avalon-framework.lib}/avalon-framework.jar # -------------------------------------------------- # REQUIRED LIBRARIES FOR UNIT TESTS # -------------------------------------------------- # For unit testing # ----- Excalibur Testcase, version 1.0 or later ----- excalibur-testcase.home=${basedir}/../testcase/dist excalibur-testcase.lib=${excalibur-testcase.home} excalibur-testcase.jar=${excalibur-testcase.lib}/excalibur-testcase-1.0.jar # ----- Excalibur Pool, version 1.0 or later ----- excalibur-pool.home=${basedir}/../pool/dist excalibur-pool.lib=${excalibur-pool.home} excalibur-pool.jar=${excalibur-pool.lib}/excalibur-pool-1.1.jar # ----- Logkit ----- logkit.home=${basedir}/../../jakarta-avalon-logkit logkit.lib=${logkit.home}/build/lib logkit.jar=${logkit.lib}/logkit.jar # ----- Excalibur instrument, version 1.0 or later ----- excalibur-instrument.home=${basedir}/../instrument/dist excalibur-instrument.lib=${excalibur-instrument.home} excalibur-instrument.jar=${excalibur-instrument.lib}/excalibur-instrument-0.3.jar # ----- Excalibur instrument-manager, version 1.0 or later ----- excalibur-instrument-manager.home=${basedir}/../instrument-manager/dist excalibur-instrument-manager.lib=${excalibur-instrument-manager.home} excalibur-instrument-manager.jar=${excalibur-instrument-manager.lib}/excalibur-instrument-manager-0.3.jar excalibur-instrument-manager-interfaces.jar=${excalibur-instrument-manager.lib}/excalibur-instrument-manager-interfaces-0.3.jar # -------------------------------------------------- # Settings used to configure compile environment build.debug = on build.optimize = off build.deprecation = off build.compress = false junit.failonerror = false # location of intermediate products build.dir = build build.testsrc = ${build.dir}/testsrc build.testclasses = ${build.dir}/testclasses build.lib = ${build.dir}/lib build.conf = ${build.dir}/conf build.classes = ${build.dir}/classes build.tests = ${build.dir}/tests build.reports = ${build.dir}/reports # Set the properties for source directories src.dir = src java.dir = ${src.dir}/java conf.dir = ${src.dir}/conf test.dir = ${src.dir}/test # needed by Cocoon build.context = ${build.dir}/documentation build.docs = ${build.dir}/docs build.xdocs = ${build.dir}/xdocs context.dir = ../../jakarta-avalon/src/documentation tools.dir = ../../jakarta-avalon/tools tools.jar = ${java.home}/../lib/tools.jar docs.dir = docs xdocs.dir = ${src.dir}/xdocs # Set the properties for distribution directories dist.dir = dist dist.javadocs = ${docs.dir}/api # name of .zip/.tar.gz/.bz2 files and their top-level directory dist.name = ${name}-${version} # name of jar file jar.name = ${name}-${version}.jar # property indicating directory where all distribution archives are placed dist.base = distributions depchecker.prefix=. \ No newline at end of file +# ------------------------------------------------------------------- # B U I L D P R O P E R T I E S # ------------------------------------------------------------------- # Specifies default property values # Overridden by ../default.properties and all ant.properties # Not user-editable; use ant.properties files instead name=excalibur-event Name=Excalibur Event dir-name=event version=1.0a package-version=0.99 year=2002 # -------------------------------------------------- # REQUIRED LIBRARIES # -------------------------------------------------- # ----- Excalibur util, version 1.0 or later ----- excalibur-util.home=${basedir}/../util/dist excalibur-util.lib=${excalibur-util.home} excalibur-util.jar=${excalibur-util.lib}/excalibur-util-1.0.jar # ----- Excalibur threadcontext, version 1.0 or later ----- excalibur-threadcontext.home=${basedir}/../threadcontext/dist excalibur-threadcontext.lib=${excalibur-threadcontext.home} excalibur-threadcontext.jar=${excalibur-threadcontext.lib}/excalibur-threadcontext-1.0.jar # ----- Excalibur Collections, version 1.0 or later ----- excalibur-collections.home=${basedir}/../collections/dist excalibur-collections.lib=${excalibur-collections.home} excalibur-collections.jar=${excalibur-collections.lib}/excalibur-collections-1.0.jar # ----- Excalibur Concurrent, version 1.0 or later ----- excalibur-concurrent.home=${basedir}/../concurrent/dist excalibur-concurrent.lib=${excalibur-concurrent.home} excalibur-concurrent.jar=${excalibur-concurrent.lib}/excalibur-concurrent-1.0.jar # ----- Excalibur Core ----- excalibur-core.home=${basedir}/../all excalibur-core.lib=${excalibur-core.home}/build/lib excalibur-core.jar=${excalibur-core.lib}/excalibur-core.jar # ----- Avalon Framework, version 4.1 or later ----- avalon-framework.home=${basedir}/../../jakarta-avalon avalon-framework.lib=${avalon-framework.home}/build/lib avalon-framework.jar=${avalon-framework.lib}/avalon-framework.jar # -------------------------------------------------- # REQUIRED LIBRARIES FOR UNIT TESTS # -------------------------------------------------- # For unit testing # ----- Excalibur Testcase, version 1.0 or later ----- excalibur-testcase.home=${basedir}/../testcase/dist excalibur-testcase.lib=${excalibur-testcase.home} excalibur-testcase.jar=${excalibur-testcase.lib}/excalibur-testcase-1.0.jar # ----- Excalibur Pool, version 1.0 or later ----- excalibur-pool.home=${basedir}/../pool/dist excalibur-pool.lib=${excalibur-pool.home} excalibur-pool.jar=${excalibur-pool.lib}/excalibur-pool-1.1.jar # ----- Logkit ----- logkit.home=${basedir}/../../jakarta-avalon-logkit logkit.lib=${logkit.home}/build/lib logkit.jar=${logkit.lib}/logkit.jar # ----- Excalibur instrument, version 1.0 or later ----- excalibur-instrument.home=${basedir}/../instrument/dist excalibur-instrument.lib=${excalibur-instrument.home} excalibur-instrument.jar=${excalibur-instrument.lib}/excalibur-instrument-0.3.jar # ----- Excalibur instrument-manager, version 1.0 or later ----- excalibur-instrument-manager.home=${basedir}/../instrument-manager/dist excalibur-instrument-manager.lib=${excalibur-instrument-manager.home} excalibur-instrument-manager.jar=${excalibur-instrument-manager.lib}/excalibur-instrument-manager-0.3.jar excalibur-instrument-manager-interfaces.jar=${excalibur-instrument-manager.lib}/excalibur-instrument-manager-interfaces-0.3.jar # -------------------------------------------------- # Settings used to configure compile environment build.debug = on build.optimize = off build.deprecation = off build.compress = false junit.failonerror = false # location of intermediate products build.dir = build build.testsrc = ${build.dir}/testsrc build.testclasses = ${build.dir}/testclasses build.lib = ${build.dir}/lib build.conf = ${build.dir}/conf build.classes = ${build.dir}/classes build.tests = ${build.dir}/tests build.reports = ${build.dir}/reports # Set the properties for source directories src.dir = src java.dir = ${src.dir}/java conf.dir = ${src.dir}/conf test.dir = ${src.dir}/test # needed by Cocoon build.context = ${build.dir}/documentation build.docs = ${build.dir}/docs build.xdocs = ${build.dir}/xdocs context.dir = ../../jakarta-avalon/src/documentation tools.dir = ../../jakarta-avalon/tools tools.jar = ${java.home}/../lib/tools.jar docs.dir = docs xdocs.dir = ${src.dir}/xdocs # Set the properties for distribution directories dist.dir = dist dist.javadocs = ${docs.dir}/api # name of .zip/.tar.gz/.bz2 files and their top-level directory dist.name = ${name}-${version} # name of jar file jar.name = ${name}-${version}.jar # property indicating directory where all distribution archives are placed dist.base = distributions depchecker.prefix=. \ No newline at end of file 1.1 jakarta-avalon-excalibur/event/src/java/org/apache/excalibur/util/StringUtil.java Index: StringUtil.java =================================================================== /* * Copyright (C) The Apache Software Foundation. All rights reserved. * * This software is published under the terms of the Apache Software License * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ package org.apache.excalibur.util; import java.util.StringTokenizer; /** * A set of utility operations that work on or create strings. * * @author Peter Donald * @version CVS $Revision: 1.1 $ $Date: 2002/09/25 15:01:43 $ */ public final class StringUtil { /** * the line separator for this OS */ public static final String LINE_SEPARATOR = System.getProperty( "line.separator" ); private static final String SPACE_16 = " "; private static final String SPACE_8 = " "; private static final String SPACE_4 = " "; private static final String SPACE_2 = " "; private static final String SPACE_1 = " "; ///Private Constructor to block instantiation private StringUtil() { } /** * Convenience utility to concatenate three strings together. */ public static final String concat( final String first, final String second, final String third ) { return new StringBuffer( first ).append( second ).append( third ).toString(); } /** * Convenience utility to concatenate an array of strings together. */ public static final String concat( final String[] list ) { final StringBuffer buffer = new StringBuffer(); for( int i = 0; i < list.length; i++ ) { buffer.append( list[ i ] ); } return buffer.toString(); } /** * Replace substrings of one string with another string and return altered string. * * @param original input string * @param oldString the substring section to replace * @param newString the new substring replacing old substring section * @return converted string */ public static final String replaceSubString( final String original, final String oldString, final String newString ) { final StringBuffer sb = new StringBuffer(); int end = original.indexOf( oldString ); int start = 0; final int stringSize = oldString.length(); while( end != -1 ) { sb.append( original.substring( start, end ) ); sb.append( newString ); start = end + stringSize; end = original.indexOf( oldString, start ); } end = original.length(); sb.append( original.substring( start, end ) ); return sb.toString(); } /** * Display bytes in hex format. *

The display puts hex display on left and then writes out * textual representation on right. The text replaces any * non-printing character with a '.'

* *

Note that this code was based on work done by Barry Peterson * on the Q2Java project

* * @param data the bytes to display * @param length the number of bytes to display per line * @return The display string */ public static final String hexDisplay( final byte[] data, final int length ) { final StringBuffer sb = new StringBuffer(); for( int i = 0; i < length; i += 16 ) { //int lineEnd = Math.min( i+16, fArrayLength ); int lineSize = Math.min( 16, length - i ); final int lineEnd = lineSize + i; for( int j = i; j < lineEnd; j++ ) { final int value = data[ j ] & 0xFF; if( value < 16 ) sb.append( '0' ); sb.append( Integer.toHexString( value ) ); sb.append( ' ' ); } int padcount = 16 - lineSize; while( padcount > 0 ) { padcount--; sb.append( " " ); } sb.append( " " ); for( int j = i; j < lineEnd; j++ ) { final int value = data[ j ] & 0xFF; //Shouldn't 255 be lower???????? if( ( value < 32 ) || ( value > 255 ) ) sb.append( '.' ); else sb.append( (char)value ); } sb.append( '\n' ); } return sb.toString(); } /** * Truncate a string to maximum length; * * @param string the string * @param length the length * @return a truncated string or original string if it is short enough */ public static final String truncate( final String string, final int length ) { if( length >= string.length() ) return string; else return string.substring( 0, length ); } /** * Truncate a string in a nice manner. * The method will attempt to truncate the string * on whitespace and append "..." to the end. * * @author Nate Sammons */ public static final String truncateNicely( final String string, final int length ) { if( length >= string.length() ) return string; else if( 3 >= length ) { final StringBuffer sb = new StringBuffer( length ); for( int i = 0; i < length; i++ ) sb.append( '.' ); return sb.toString(); } final StringBuffer sb = new StringBuffer( length ); getIndexOfBreak( sb, string, 0, length - 3, true ); sb.append( "..." ); return sb.toString(); } /** * Wordwrap string to specified column. * if force is true then words that exceed column length will be * cut otherwise each word will exist on a line by itself. * * @param string string to word-wrap * @param column the column at which to wrap * @param force true if string should be force split at column * @return The word-wrapped string */ public static final String wordWrap( final String string, final int column, final boolean force ) { final int length = string.length(); final StringBuffer sb = new StringBuffer(); int start = 0; int end = getIndexOfBreak( sb, string, start, column, force ); while( length != end ) { //TODO: Make this EOL parameterizable sb.append( "\n" ); start = end; end = getIndexOfBreak( sb, string, start, column, force ); } return sb.toString(); } /** * Splits the string on every token into an array of strings. * * @param string the string * @param onToken the token * @return the resultant array */ public static final String[] split( final String string, final String onToken ) { final StringTokenizer tokenizer = new StringTokenizer( string, onToken ); final String[] result = new String[ tokenizer.countTokens() ]; for( int i = 0; i < result.length; i++ ) { result[ i ] = tokenizer.nextToken(); } return result; } /** * Removes all the whitespace in a string */ public static final String stripWhitespace( final String string ) { return concat( split( string, " \t\r\n\b" ) ); } /** * Joins the string array using specified separator. * * @param strings the array of strings to join * @param separator the separator to use when joining * @return the joined string */ public static final String join( final String[] strings, final String separator ) { final StringBuffer sb = new StringBuffer(); for( int i = 0; i < strings.length; i++ ) { sb.append( strings[ i ] ); sb.append( separator ); } return sb.toString(); } /** * Utility to format a string given a set of constraints. * TODO: Think of a better name than format!!!! ;) * * @param minSize the minimum size of output (0 to ignore) * @param maxSize the maximum size of output (0 to ignore) * @param rightJustify true if the string is to be right justified in it's box. * @param string the input string */ public static final String format( final int minSize, final int maxSize, final boolean rightJustify, final String string ) { final StringBuffer sb = new StringBuffer( maxSize ); format( sb, minSize, maxSize, rightJustify, string ); return sb.toString(); } /** * Utility to format a string given a set of constraints. * TODO: Think of a better name than format!!!! ;) * Note this was thieved from the logkit project. * * @param sb the StringBuffer * @param minSize the minimum size of output (0 to ignore) * @param maxSize the maximum size of output (0 to ignore) * @param rightJustify true if the string is to be right justified in it's box. * @param string the input string */ public static final void format( final StringBuffer sb, final int minSize, final int maxSize, final boolean rightJustify, final String string ) { final int size = string.length(); if( size < minSize ) { //assert( minSize > 0 ); if( rightJustify ) { appendWhiteSpace( sb, minSize - size ); sb.append( string ); } else { sb.append( string ); appendWhiteSpace( sb, minSize - size ); } } else if( maxSize > 0 && maxSize < size ) { if( rightJustify ) { sb.append( string.substring( size - maxSize ) ); } else { sb.append( string.substring( 0, maxSize ) ); } } else { sb.append( string ); } } /** * Append a certain number of whitespace characters to a StringBuffer. * * @param sb the StringBuffer * @param length the number of spaces to append */ public static final void appendWhiteSpace( final StringBuffer sb, int length ) { while( length >= 16 ) { sb.append( SPACE_16 ); length -= 16; } if( length >= 8 ) { sb.append( SPACE_8 ); length -= 8; } if( length >= 4 ) { sb.append( SPACE_4 ); length -= 4; } if( length >= 2 ) { sb.append( SPACE_2 ); length -= 2; } if( length >= 1 ) { sb.append( SPACE_1 ); length -= 1; } } /** * Get index of good place to break line. * The index is the last whitespace character. * * @param string the input string * @param start the start index of line * @param maxCount the max size of the line * @return the index to break line */ private static final int getIndexOfBreak( final StringBuffer sb, final String string, final int start, final int maxCount, final boolean forceBreak ) { final int end = string.length() - start; int max = Math.min( maxCount, end ); int base = 0; for( int i = 0; i < max; i++ ) { final int index = start + i; final char ch = string.charAt( index ); if( !Character.isWhitespace( ch ) ) break; base = i + 1; } max += base; int breakIndex = -1; for( int i = base; i < max; i++ ) { final int index = start + i; final char ch = string.charAt( index ); if( Character.isWhitespace( ch ) ) breakIndex = index; } if( -1 != breakIndex ) { final String part = string.substring( start + base, breakIndex ); sb.append( part ); return breakIndex + 1; } else { if( forceBreak ) { final String part = string.substring( start + base, start + max ); sb.append( part ); return start + max; } else { return getIndexOfBreak( sb, string, start, Integer.MAX_VALUE, true ); } } } } 1.1 jakarta-avalon-excalibur/event/src/test/org/apache/excalibur/util/test/StringUtilTestCase.java Index: StringUtilTestCase.java =================================================================== /* * Copyright The Apache Software Foundation. All rights reserved. * * This software is published under the terms of the Apache Software License * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ package org.apache.excalibur.util.test; import junit.framework.TestCase; import org.apache.excalibur.util.StringUtil; /** * This is used to test StringUtil for correctness. * * @author Peter Donald */ public final class StringUtilTestCase extends TestCase { private static final String S1 = "TestMe"; private static final String S2 = "TestMeTestMe"; private static final String S3 = "TestMeTestMeTestMe"; private static final String S4 = "MeeeMer"; private static final String S5 = "MeeeeMer"; private static final String P11 = "eT"; private static final String P21 = "eT"; private static final String P31 = "eT"; private static final String P41 = "ee"; private static final String P51 = "ee"; private static final String P12 = "Te"; private static final String P22 = "Te"; private static final String P32 = "Te"; private static final String P42 = "ff"; private static final String P52 = "ff"; private static final String SR1 = "TestMe"; private static final String SR2 = "TestMTeestMe"; private static final String SR3 = "TestMTeestMTeestMe"; private static final String SR4 = "MffeMer"; private static final String SR5 = "MffffMer"; private static final String ST1 = "TestMe"; private static final String ST2 = "TestMeT"; private static final String ST3 = "TestMeT"; private static final String ST4 = "MeeeMer"; private static final String ST5 = "MeeeeMe"; private static final String STN1 = "TestMe"; private static final String STN2 = "Test..."; private static final String STN3 = "Test..."; private static final String STN4 = "MeeeMer"; private static final String STN5 = "Meee..."; private static final String[] SS1 = new String[]{"T", "stM"}; private static final String[] SS2 = new String[]{"T", "stM", "T", "stM"}; private static final String[] SS3 = new String[]{"T", "stM", "T", "stM", "T", "stM"}; private static final String[] SS4 = new String[]{"M", "M", "r"}; private static final String[] SS5 = new String[]{"M", "M", "r"}; private static final String SP = " "; private static final String WU1 = S1 + SP + S2 + SP + S3 + SP + S4 + SP + S5; private static final String WW1 = "TestMe\n" + "TestMeTe\n" + "stMe\n" + "TestMeTe\n" + "stMeTest\n" + "Me\n" + "MeeeMer\n" + "MeeeeMer"; private static final String WW2 = "TestMe\n" + "TestMeT\n" + "estMe\n" + "TestMeT\n" + "estMeTe\n" + "stMe\n" + "MeeeMer\n" + "MeeeeMe\n" + "r"; public StringUtilTestCase( final String name ) { super( name ); } public void testReplaceSubString() throws Exception { final String result1 = StringUtil.replaceSubString( S1, P11, P12 ); final String result2 = StringUtil.replaceSubString( S2, P21, P22 ); final String result3 = StringUtil.replaceSubString( S3, P31, P32 ); final String result4 = StringUtil.replaceSubString( S4, P41, P42 ); final String result5 = StringUtil.replaceSubString( S5, P51, P52 ); assertEquals( "ReplaceSubString SR1", SR1, result1 ); assertEquals( "ReplaceSubString SR2", SR2, result2 ); assertEquals( "ReplaceSubString SR3", SR3, result3 ); assertEquals( "ReplaceSubString SR4", SR4, result4 ); assertEquals( "ReplaceSubString SR5", SR5, result5 ); } public void testWordWrap() throws Exception { assertEquals( "WordWrap S1", WW1, StringUtil.wordWrap( WU1, 8, true ) ); assertEquals( "WordWrap S1", WW2, StringUtil.wordWrap( WU1, 7, true ) ); } public void testTruncate() throws Exception { assertEquals( "Truncate S1", ST1, StringUtil.truncate( S1, 7 ) ); assertEquals( "Truncate S2", ST2, StringUtil.truncate( S2, 7 ) ); assertEquals( "Truncate S3", ST3, StringUtil.truncate( S3, 7 ) ); assertEquals( "Truncate S4", ST4, StringUtil.truncate( S4, 7 ) ); assertEquals( "Truncate S5", ST5, StringUtil.truncate( S5, 7 ) ); } public void testTruncateNicely() throws Exception { assertEquals( "Truncate Nicely S1", STN1, StringUtil.truncateNicely( S1, 7 ) ); assertEquals( "Truncate Nicely S2", STN2, StringUtil.truncateNicely( S2, 7 ) ); assertEquals( "Truncate Nicely S3", STN3, StringUtil.truncateNicely( S3, 7 ) ); assertEquals( "Truncate Nicely S4", STN4, StringUtil.truncateNicely( S4, 7 ) ); assertEquals( "Truncate Nicely S5", STN5, StringUtil.truncateNicely( S5, 7 ) ); assertEquals( "Truncate Nicely 1", ".", StringUtil.truncateNicely( S5, 1 ) ); assertEquals( "Truncate Nicely 2", "..", StringUtil.truncateNicely( S5, 2 ) ); assertEquals( "Truncate Nicely 3", "...", StringUtil.truncateNicely( S5, 3 ) ); } public void testSplitString() throws Exception { assertEqualArrays( SS1, StringUtil.split( S1, "e" ) ); assertEqualArrays( SS2, StringUtil.split( S2, "e" ) ); assertEqualArrays( SS3, StringUtil.split( S3, "e" ) ); assertEqualArrays( SS4, StringUtil.split( S4, "e" ) ); assertEqualArrays( SS5, StringUtil.split( S5, "e" ) ); } public void testConcatStrings() throws Exception { assertEquals( "TestMeTruly", StringUtil.concat( "Test", "Me", "Truly" ) ); assertEquals( "", StringUtil.concat( new String[]{ "<", "prefix", ":", "name", "/>" } ) ); } public void testStripWhiteSpace() { assertEquals( "TestMeTruly", StringUtil.stripWhitespace( " Test Me Truly" ) ); } private void assertEqualArrays( final String[] s1, final String[] s2 ) { assertEquals( "Array Length Equality", s1.length, s2.length ); assertEquals( "Array Type Equality", s1.getClass().getComponentType(), s2.getClass().getComponentType() ); for( int i = 0; i < s1.length; i++ ) { assertEquals( "Array Element " + i, s1[ i ], s2[ i ] ); } } } -- To unsubscribe, e-mail: For additional commands, e-mail: