You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by st...@apache.org on 2004/07/11 18:49:07 UTC
cvs commit: jakarta-commons/lang/src/test/org/apache/commons/lang StringUtilsTest.java
stevencaswell 2004/07/11 09:49:07
Modified: lang/src/test/org/apache/commons/lang StringUtilsTest.java
Log:
added tests for new splitPreserveAllTokens methods (http://issues.apache.org/bugzilla/show_bug.cgi?id=22692)
Revision Changes Path
1.60 +314 -1 jakarta-commons/lang/src/test/org/apache/commons/lang/StringUtilsTest.java
Index: StringUtilsTest.java
===================================================================
RCS file: /home/cvs/jakarta-commons/lang/src/test/org/apache/commons/lang/StringUtilsTest.java,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -r1.59 -r1.60
--- StringUtilsTest.java 10 Mar 2004 23:54:48 -0000 1.59
+++ StringUtilsTest.java 11 Jul 2004 16:49:07 -0000 1.60
@@ -360,6 +360,319 @@
assertEquals(msg, str.substring(2), res[1]);
}
+ public void testSplitPreserveAllTokens_String() {
+ assertEquals(null, StringUtils.splitPreserveAllTokens(null));
+ assertEquals(0, StringUtils.splitPreserveAllTokens("").length);
+
+ String str = "a b .c";
+ String[] res = StringUtils.splitPreserveAllTokens(str);
+ assertEquals(3, res.length);
+ assertEquals("a", res[0]);
+ assertEquals("b", res[1]);
+ assertEquals(".c", res[2]);
+
+ str = " a b .c";
+ res = StringUtils.splitPreserveAllTokens(str);
+ assertEquals(4, res.length);
+ assertEquals("", res[0]);
+ assertEquals("a", res[1]);
+ assertEquals("b", res[2]);
+ assertEquals(".c", res[3]);
+
+ str = "a b .c";
+ res = StringUtils.splitPreserveAllTokens(str);
+ assertEquals(5, res.length);
+ assertEquals("a", res[0]);
+ assertEquals("", res[1]);
+ assertEquals("b", res[2]);
+ assertEquals("", res[3]);
+ assertEquals(".c", res[4]);
+
+ str = " a ";
+ res = StringUtils.splitPreserveAllTokens(str);
+ assertEquals(4, res.length);
+ assertEquals("", res[0]);
+ assertEquals("a", res[1]);
+ assertEquals("", res[2]);
+ assertEquals("", res[3]);
+
+ str = " a b";
+ res = StringUtils.splitPreserveAllTokens(str);
+ assertEquals(4, res.length);
+ assertEquals("", res[0]);
+ assertEquals("a", res[1]);
+ assertEquals("", res[2]);
+ assertEquals("b", res[3]);
+
+ str = "a" + WHITESPACE + "b" + NON_WHITESPACE + "c";
+ res = StringUtils.splitPreserveAllTokens(str);
+ assertEquals(WHITESPACE.length() + 1, res.length);
+ assertEquals("a", res[0]);
+ for(int i = 1; i < WHITESPACE.length()-1; i++)
+ {
+ assertEquals("", res[i]);
+ }
+ assertEquals("b" + NON_WHITESPACE + "c", res[WHITESPACE.length()]);
+ }
+
+ public void testSplitPreserveAllTokens_StringChar() {
+ assertEquals(null, StringUtils.splitPreserveAllTokens(null, '.'));
+ assertEquals(0, StringUtils.splitPreserveAllTokens("", '.').length);
+
+ String str = "a.b. c";
+ String[] res = StringUtils.splitPreserveAllTokens(str, '.');
+ assertEquals(3, res.length);
+ assertEquals("a", res[0]);
+ assertEquals("b", res[1]);
+ assertEquals(" c", res[2]);
+
+ str = "a.b.. c";
+ res = StringUtils.splitPreserveAllTokens(str, '.');
+ assertEquals(4, res.length);
+ assertEquals("a", res[0]);
+ assertEquals("b", res[1]);
+ assertEquals("", res[2]);
+ assertEquals(" c", res[3]);
+
+ str = ".a.";
+ res = StringUtils.splitPreserveAllTokens(str, '.');
+ assertEquals(3, res.length);
+ assertEquals("", res[0]);
+ assertEquals("a", res[1]);
+ assertEquals("", res[2]);
+
+ str = ".a..";
+ res = StringUtils.splitPreserveAllTokens(str, '.');
+ assertEquals(4, res.length);
+ assertEquals("", res[0]);
+ assertEquals("a", res[1]);
+ assertEquals("", res[2]);
+ assertEquals("", res[3]);
+
+ str = "..a.";
+ res = StringUtils.splitPreserveAllTokens(str, '.');
+ assertEquals(4, res.length);
+ assertEquals("", res[0]);
+ assertEquals("", res[1]);
+ assertEquals("a", res[2]);
+ assertEquals("", res[3]);
+
+ str = "..a";
+ res = StringUtils.splitPreserveAllTokens(str, '.');
+ assertEquals(3, res.length);
+ assertEquals("", res[0]);
+ assertEquals("", res[1]);
+ assertEquals("a", res[2]);
+
+ str = "a b c";
+ res = StringUtils.splitPreserveAllTokens(str,' ');
+ assertEquals(3, res.length);
+ assertEquals("a", res[0]);
+ assertEquals("b", res[1]);
+ assertEquals("c", res[2]);
+
+ str = "a b c";
+ res = StringUtils.splitPreserveAllTokens(str,' ');
+ assertEquals(5, res.length);
+ assertEquals("a", res[0]);
+ assertEquals("", res[1]);
+ assertEquals("b", res[2]);
+ assertEquals("", res[3]);
+ assertEquals("c", res[4]);
+
+ str = " a b c";
+ res = StringUtils.splitPreserveAllTokens(str,' ');
+ assertEquals(4, res.length);
+ assertEquals("", res[0]);
+ assertEquals("a", res[1]);
+ assertEquals("b", res[2]);
+ assertEquals("c", res[3]);
+
+ str = " a b c";
+ res = StringUtils.splitPreserveAllTokens(str,' ');
+ assertEquals(5, res.length);
+ assertEquals("", res[0]);
+ assertEquals("", res[1]);
+ assertEquals("a", res[2]);
+ assertEquals("b", res[3]);
+ assertEquals("c", res[4]);
+
+ }
+
+ public void testSplitPreserveAllTokens_StringString_StringStringInt() {
+ assertEquals(null, StringUtils.splitPreserveAllTokens(null, "."));
+ assertEquals(null, StringUtils.splitPreserveAllTokens(null, ".", 3));
+
+ assertEquals(0, StringUtils.splitPreserveAllTokens("", ".").length);
+ assertEquals(0, StringUtils.splitPreserveAllTokens("", ".", 3).length);
+
+ innerTestSplitPreserveAllTokens('.', ".", ' ');
+ innerTestSplitPreserveAllTokens('.', ".", ',');
+ innerTestSplitPreserveAllTokens('.', ".,", 'x');
+ for (int i = 0; i < WHITESPACE.length(); i++) {
+ for (int j = 0; j < NON_WHITESPACE.length(); j++) {
+ innerTestSplitPreserveAllTokens(WHITESPACE.charAt(i), null, NON_WHITESPACE.charAt(j));
+ innerTestSplitPreserveAllTokens(WHITESPACE.charAt(i), String.valueOf(WHITESPACE.charAt(i)), NON_WHITESPACE.charAt(j));
+ }
+ }
+
+ {
+ String[] results = null;
+ String[] expectedResults = {"ab", "de fg"};
+ results = StringUtils.splitPreserveAllTokens("ab de fg", null, 2);
+ assertEquals(expectedResults.length, results.length);
+ for (int i = 0; i < expectedResults.length; i++) {
+ assertEquals(expectedResults[i], results[i]);
+ }
+ }
+
+ {
+ String[] results = null;
+ String[] expectedResults = {"ab", " de fg"};
+ results = StringUtils.splitPreserveAllTokens("ab de fg", null, 2);
+ System.out.println("");
+ assertEquals(expectedResults.length, results.length);
+ for (int i = 0; i < expectedResults.length; i++) {
+ assertEquals(expectedResults[i], results[i]);
+ }
+ }
+
+ {
+ String[] results = null;
+ String[] expectedResults = {"ab", "::de:fg"};
+ results = StringUtils.splitPreserveAllTokens("ab:::de:fg", ":", 2);
+ assertEquals(expectedResults.length, results.length);
+ for (int i = 0; i < expectedResults.length; i++) {
+ assertEquals(expectedResults[i], results[i]);
+ }
+ }
+
+ {
+ String[] results = null;
+ String[] expectedResults = {"ab", "", " de fg"};
+ results = StringUtils.splitPreserveAllTokens("ab de fg", null, 3);
+ assertEquals(expectedResults.length, results.length);
+ for (int i = 0; i < expectedResults.length; i++) {
+ assertEquals(expectedResults[i], results[i]);
+ }
+ }
+
+ {
+ String[] results = null;
+ String[] expectedResults = {"ab", "", "", "de fg"};
+ results = StringUtils.splitPreserveAllTokens("ab de fg", null, 4);
+ assertEquals(expectedResults.length, results.length);
+ for (int i = 0; i < expectedResults.length; i++) {
+ assertEquals(expectedResults[i], results[i]);
+ }
+ }
+
+ {
+ String[] expectedResults = {"ab", "cd:ef"};
+ String[] results = null;
+ results = StringUtils.splitPreserveAllTokens("ab:cd:ef",":", 2);
+ assertEquals(expectedResults.length, results.length);
+ for (int i = 0; i < expectedResults.length; i++) {
+ assertEquals(expectedResults[i], results[i]);
+ }
+ }
+
+ {
+ String[] results = null;
+ String[] expectedResults = {"ab", ":cd:ef"};
+ results = StringUtils.splitPreserveAllTokens("ab::cd:ef",":", 2);
+ assertEquals(expectedResults.length, results.length);
+ for (int i = 0; i < expectedResults.length; i++) {
+ assertEquals(expectedResults[i], results[i]);
+ }
+ }
+
+ {
+ String[] results = null;
+ String[] expectedResults = {"ab", "", ":cd:ef"};
+ results = StringUtils.splitPreserveAllTokens("ab:::cd:ef",":", 3);
+ assertEquals(expectedResults.length, results.length);
+ for (int i = 0; i < expectedResults.length; i++) {
+ assertEquals(expectedResults[i], results[i]);
+ }
+ }
+
+ {
+ String[] results = null;
+ String[] expectedResults = {"ab", "", "", "cd:ef"};
+ results = StringUtils.splitPreserveAllTokens("ab:::cd:ef",":", 4);
+ assertEquals(expectedResults.length, results.length);
+ for (int i = 0; i < expectedResults.length; i++) {
+ assertEquals(expectedResults[i], results[i]);
+ }
+ }
+
+ {
+ String[] results = null;
+ String[] expectedResults = {"", "ab", "", "", "cd:ef"};
+ results = StringUtils.splitPreserveAllTokens(":ab:::cd:ef",":", 5);
+ assertEquals(expectedResults.length, results.length);
+ for (int i = 0; i < expectedResults.length; i++) {
+ assertEquals(expectedResults[i], results[i]);
+ }
+ }
+
+ {
+ String[] results = null;
+ String[] expectedResults = {"", "", "ab", "", "", "cd:ef"};
+ results = StringUtils.splitPreserveAllTokens("::ab:::cd:ef",":", 6);
+ assertEquals(expectedResults.length, results.length);
+ for (int i = 0; i < expectedResults.length; i++) {
+ assertEquals(expectedResults[i], results[i]);
+ }
+ }
+ }
+
+ private void innerTestSplitPreserveAllTokens(char separator, String sepStr, char noMatch) {
+ String msg = "Failed on separator hex(" + Integer.toHexString(separator) +
+ "), noMatch hex(" + Integer.toHexString(noMatch) + "), sepStr(" + sepStr + ")";
+
+ final String str = "a" + separator + "b" + separator + separator + noMatch + "c";
+ String[] res;
+ // (str, sepStr)
+ res = StringUtils.splitPreserveAllTokens(str, sepStr);
+ assertEquals(msg, 4, res.length);
+ assertEquals(msg, "a", res[0]);
+ assertEquals(msg, "b", res[1]);
+ assertEquals(msg, "", res[2]);
+ assertEquals(msg, noMatch + "c", res[3]);
+
+ final String str2 = separator + "a" + separator;
+ res = StringUtils.splitPreserveAllTokens(str2, sepStr);
+ assertEquals(msg, 3, res.length);
+ assertEquals(msg, "", res[0]);
+ assertEquals(msg, "a", res[1]);
+ assertEquals(msg, "", res[2]);
+
+ res = StringUtils.splitPreserveAllTokens(str, sepStr, -1);
+ assertEquals(msg, 4, res.length);
+ assertEquals(msg, "a", res[0]);
+ assertEquals(msg, "b", res[1]);
+ assertEquals(msg, "", res[2]);
+ assertEquals(msg, noMatch + "c", res[3]);
+
+ res = StringUtils.splitPreserveAllTokens(str, sepStr, 0);
+ assertEquals(msg, 4, res.length);
+ assertEquals(msg, "a", res[0]);
+ assertEquals(msg, "b", res[1]);
+ assertEquals(msg, "", res[2]);
+ assertEquals(msg, noMatch + "c", res[3]);
+
+ res = StringUtils.splitPreserveAllTokens(str, sepStr, 1);
+ assertEquals(msg, 1, res.length);
+ assertEquals(msg, str, res[0]);
+
+ res = StringUtils.splitPreserveAllTokens(str, sepStr, 2);
+ assertEquals(msg, 2, res.length);
+ assertEquals(msg, "a", res[0]);
+ assertEquals(msg, str.substring(2), res[1]);
+ }
+
public void testDeleteSpace_String() {
assertEquals(null, StringUtils.deleteSpaces(null));
assertEquals("", StringUtils.deleteSpaces(""));
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org