bayard 02/01/13 13:52:57 Modified: util/src/test/org/apache/commons/util StringUtilsTest.java Log: Pushed Bernard's rewritten test-case in, though I kept the japanese unicode testing line commented out at the moment. Submitted by: Bernard D'Have <[EMAIL PROTECTED]> Revision Changes Path 1.12 +244 -194 jakarta-commons-sandbox/util/src/test/org/apache/commons/util/StringUtilsTest.java Index: StringUtilsTest.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/util/src/test/org/apache/commons/util/StringUtilsTest.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- StringUtilsTest.java 29 Dec 2001 00:59:01 -0000 1.11 +++ StringUtilsTest.java 13 Jan 2002 21:52:57 -0000 1.12 @@ -1,194 +1,244 @@ -package org.apache.commons.util; - -/* ==================================================================== - * The Apache Software License, Version 1.1 - * - * Copyright (c) 2001 The Apache Software Foundation. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by the - * Apache Software Foundation (http://www.apache.org/)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Apache" and "Apache Software Foundation" and - * "Apache Turbine" must not be used to endorse or promote products - * derived from this software without prior written permission. For - * written permission, please contact [EMAIL PROTECTED] - * - * 5. Products derived from this software may not be called "Apache", - * "Apache Turbine", nor may "Apache" appear in their name, without - * prior written permission of the Apache Software Foundation. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of the Apache Software Foundation. For more - * information on the Apache Software Foundation, please see - * <http://www.apache.org/>. - */ - -import java.util.Arrays; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -/** - * Unit tests {@link org.apache.commons.util.StringUtils}. - * - * @author <a href="mailto:[EMAIL PROTECTED]">Daniel Rall</a> - * @author <a href="mailto:[EMAIL PROTECTED]">Henri Yandell</a> - */ -public class StringUtilsTest extends TestCase -{ - private static final String[] ARRAY_LIST = { "foo", "bar", "baz" }; - - private static final String SEPARATOR = ","; - - private static final String TEXT_LIST = "foo,bar,baz"; - - private static final String FOO = "foo"; - private static final String CAP_FOO = "Foo"; - private static final String UPPER_FOO = "FOO"; - - private static final String SENTENCE = "foo bar baz"; - - public StringUtilsTest(String name) - { - super(name); - } - - public static Test suite() - { - TestSuite suite = new TestSuite(); - suite.addTest(new StringUtilsTest("StringUtilsTest")); - return suite; - } - - protected void runTest() - throws Throwable - { - assertEquals("clean(String) failed", - FOO, StringUtils.clean(FOO + " ")); - assertEquals("clean(String) failed", "", StringUtils.clean(null)); - - assertEquals("trim(String) failed", FOO, StringUtils.trim(FOO + " ")); - assert("trim(String) failed", StringUtils.trim(null) == null); - - assert("isValid(String) failed", - StringUtils.isValid(FOO) && !StringUtils.isValid("")); - - assert("isEmpty(String) failed", - StringUtils.isEmpty(" ") && !StringUtils.isEmpty(FOO)); - - assert("equals(String, String) failed", - StringUtils.equals(null, null) && - !StringUtils.equals(null, FOO) && - StringUtils.equals(FOO, FOO)); - - assertEquals("firstLetterCaps(String) failed", - "Foo", StringUtils.firstLetterCaps(FOO)); - - assertEquals("join(Object[], String) failed", TEXT_LIST, - StringUtils.join(ARRAY_LIST, SEPARATOR)); - assertEquals("join(Iterator, String) failed", TEXT_LIST, - StringUtils.join(Arrays.asList(ARRAY_LIST).iterator(), - SEPARATOR)); - - String[] result = StringUtils.split(TEXT_LIST, SEPARATOR, 2); - String[] expected = { "foo", "bar,baz" }; - assertEquals("split(Object[], String, int) yielded unexpected length", - expected.length, result.length); - for (int i = 0; i < result.length; i++) - { - assertEquals("split(Object[], String, int) failed", expected[i], - result[i]); - } - - assertEquals("replace(String, String, String, int) failed", - FOO, StringUtils.replace("oo" + FOO, "o", "", 2)); - // removed the 4th argument of -1. - assertEquals("replace(String, String, String) failed", - "", StringUtils.replace(FOO + FOO + FOO, FOO, "")); - assertEquals("replaceOnce(String, String, String) failed", - FOO, StringUtils.replaceOnce(FOO + FOO, FOO, "")); - - // bayard's tests - assertEquals("capitalise(String) failed", - CAP_FOO, StringUtils.capitalise(FOO) ); - assertEquals("capitaliseAllWords(String) failed", - "Foo Bar Baz", StringUtils.capitaliseAllWords(SENTENCE) ); - assertEquals("uncapitalise(String) failed", - FOO, StringUtils.uncapitalise(CAP_FOO) ); - - assertEquals("overlayString(String, String, int, int) failed", - "foo foor baz", StringUtils.overlayString(SENTENCE, FOO, 4, 6) ); - - assertEquals("repeat(String, int) failed", - FOO + FOO + FOO, StringUtils.repeat(FOO, 3) ); - - assertEquals("center(String, int) failed", - " "+FOO+" ", StringUtils.center(FOO, 9) ); - - assertEquals("chomp(String) failed", - FOO, StringUtils.chomp(FOO + "\n" + FOO) ); - - assertEquals("chompLast(String) failed", - FOO, StringUtils.chompLast(FOO + "\n") ); - - assertEquals("getChomp(String, String) failed", - "\n" + FOO, StringUtils.getChomp(FOO + "\n" + FOO, "\n") ); - - assertEquals("prechomp(String, String) failed", - FOO, StringUtils.prechomp(FOO + "\n" + FOO, "\n") ); - - assertEquals("getPrechomp(String, String) failed", - FOO + "\n", StringUtils.getPrechomp(FOO + "\n" + FOO, "\n") ); - - assertEquals("chop(String, String) failed", - FOO, StringUtils.chop(FOO + "\r\n") ); - - assertEquals("chopNewline(String, String) failed", - FOO, StringUtils.chopNewline(FOO + "\r\n") ); - - // next, StringUtils.count - - - /* TODO: Make into a JUnit assertion. - String input = "これは日本楔譴離謄好箸任后#"; - String unicode = - StringUtils.convertNativeToUnicode(input, "iso-2022-jp"); - String iso = StringUtils.convertUnicodeToNative(unicode, "iso-2022-jp"); - System.err.println(input); - System.err.println(unicode); - System.err.println(iso); - */ - } -} +package org.apache.commons.util; + +/* ==================================================================== + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2001 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" and + * "Apache Turbine" must not be used to endorse or promote products + * derived from this software without prior written permission. For + * written permission, please contact [EMAIL PROTECTED] + * + * 5. Products derived from this software may not be called "Apache", + * "Apache Turbine", nor may "Apache" appear in their name, without + * prior written permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ + +import java.util.Arrays; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit tests {@link org.apache.commons.util.StringUtils}. + * + * @author <a href="mailto:[EMAIL PROTECTED]">Daniel Rall</a> + * @author <a href="mailto:[EMAIL PROTECTED]">Henri Yandell</a> + */ +public class StringUtilsTest extends TestCase +{ + private static final String[] ARRAY_LIST = { "foo", "bar", "baz" }; + + private static final String SEPARATOR = ","; + + private static final String TEXT_LIST = "foo,bar,baz"; + + private static final String FOO = "foo"; + private static final String CAP_FOO = "Foo"; + private static final String UPPER_FOO = "FOO"; + + private static final String SENTENCE = "foo bar baz"; + + public StringUtilsTest(String name) + { + super(name); + } + + public void testClean() + { + assertEquals("clean(String) failed", + FOO, StringUtils.clean(FOO + " ")); + assertEquals("clean(String) failed", "", StringUtils.clean(null)); + } + + public void testTrim() + { + assertEquals("trim(String) failed", FOO, StringUtils.trim(FOO + " ")); + assertTrue("trim(String) failed", StringUtils.trim(null) == null); + } + + public void testIsValid() + { + assertTrue("isValid(String) failed", + StringUtils.isValid(FOO) && !StringUtils.isValid("")); + } + + public void testIsEmpty() + { + assertTrue("isEmpty(String) failed", + StringUtils.isEmpty(" ") && !StringUtils.isEmpty(FOO)); + } + + public void testEquals() + { + assertTrue("equals(String, String) failed", + StringUtils.equals(null, null) && + !StringUtils.equals(null, FOO) && + StringUtils.equals(FOO, FOO)); + } + + public void testCapitalizeFunctions() + { + assertEquals("firstLetterCaps(String) failed", + CAP_FOO, StringUtils.firstLetterCaps(FOO)); + + assertEquals("capitalise(String) failed", + CAP_FOO, StringUtils.capitalise(FOO) ); + assertEquals("capitaliseAllWords(String) failed", + "Foo Bar Baz", StringUtils.capitaliseAllWords(SENTENCE) ); + assertEquals("uncapitalise(String) failed", + FOO, StringUtils.uncapitalise(CAP_FOO) ); + } + + public void testJoin() + { + assertEquals("join(Object[], String) failed", TEXT_LIST, + StringUtils.join(ARRAY_LIST, SEPARATOR)); + assertEquals("join(Iterator, String) failed", TEXT_LIST, + StringUtils.join(Arrays.asList(ARRAY_LIST).iterator(), + SEPARATOR)); + } + + public void testSplit() + { + String[] result = StringUtils.split(TEXT_LIST, SEPARATOR, 2); + String[] expected = { "foo", "bar,baz" }; + assertEquals("split(Object[], String, int) yielded unexpected length", + expected.length, result.length); + for (int i = 0; i < result.length; i++) + { + assertEquals("split(Object[], String, int) failed", expected[i], + result[i]); + } + } + + public void testReplaceFunctions() + { + assertEquals("replace(String, String, String, int) failed", + FOO, StringUtils.replace("oo" + FOO, "o", "", 2)); + // removed the 4th argument of -1. + assertEquals("replace(String, String, String) failed", + "", StringUtils.replace(FOO + FOO + FOO, FOO, "")); + assertEquals("replaceOnce(String, String, String) failed", + FOO, StringUtils.replaceOnce(FOO + FOO, FOO, "")); + } + + public void testOverlayString() + { + assertEquals("overlayString(String, String, int, int) failed", + "foo foor baz", StringUtils.overlayString(SENTENCE, FOO, 4, 6) ); + } + + public void testRepeat() + { + assertEquals("repeat(String, int) failed", + FOO + FOO + FOO, StringUtils.repeat(FOO, 3) ); + } + + public void testCenter() + { + assertEquals("center(String, int) failed", + " "+FOO+" ", StringUtils.center(FOO, 9) ); + } + + public void testChompFunctions() + { + + assertEquals("chomp(String) failed", + FOO, StringUtils.chomp(FOO + "\n" + FOO) ); + + assertEquals("chompLast(String) failed", + FOO, StringUtils.chompLast(FOO + "\n") ); + + assertEquals("getChomp(String, String) failed", + "\n" + FOO, StringUtils.getChomp(FOO + "\n" + FOO, "\n") ); + + assertEquals("prechomp(String, String) failed", + FOO, StringUtils.prechomp(FOO + "\n" + FOO, "\n") ); + + assertEquals("getPrechomp(String, String) failed", + FOO + "\n", StringUtils.getPrechomp(FOO + "\n" + FOO, "\n") ); + + assertEquals("chop(String, String) failed", + FOO, StringUtils.chop(FOO + "\r\n") ); + + assertEquals("chopNewline(String, String) failed", + FOO, StringUtils.chopNewline(FOO + "\r\n") ); + } + + public void testPadFunctions() + { + assertEquals("rightPad(String, int) failed", + "1234 ", StringUtils.rightPad ("1234", 8) ); + + assertEquals("rightPad(String, int, String) failed", + "1234-+-+", StringUtils.rightPad ("1234", 8, "-+") ); + + assertEquals("rightPad(String, int, String) failed", + "123456-+~", StringUtils.rightPad ("123456", 9, "-+~") ); + + assertEquals("leftPad(String, int) failed", + " 1234", StringUtils.leftPad("1234", 8) ); + + assertEquals("leftPad(String, int, String) failed", + "-+-+1234", StringUtils.leftPad("1234", 8, "-+") ); + + assertEquals("leftPad(String, int, String) failed", + "-+~123456", StringUtils.leftPad("123456", 9, "-+~") ); + } + + public void testUnicodeFunctions() throws java.io.IOException + { + /* this test fails on my window box with an Sun english JDK 1.3.1 + I think that the input string is not right + */ +/* Kept out for the moment. + String input = "これは日本楔譴離謄好箸任后#"; + String unicode = StringUtils.convertNativeToUnicode(input, "iso-2022-jp"); + String iso = StringUtils.convertUnicodeToNative(unicode, "iso-2022-jp"); + assertEquals("Unicode conversions failed", input, iso); +*/ + } +} +
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
