blob: f4228862a25caa67626152cdec0ba784f2d57949 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2010 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0, which accompanies this distribution
* and is available at http://www.eclipse.org/legal/epl-v10.html.
*
* Contributors:
* Oracle - initial API and implementation
******************************************************************************/
package org.eclipse.jpt.utility.tests.internal;
import java.io.StringWriter;
import java.io.Writer;
import junit.framework.TestCase;
import org.eclipse.jpt.utility.internal.StringTools;
@SuppressWarnings("nls")
public class StringToolsTests extends TestCase {
public StringToolsTests(String name) {
super(name);
}
private static void assertEquals(String expected, char[] actual) {
assertEquals(expected, new String(actual));
}
// ********** padding/truncating **********
public void testPad() {
assertEquals("fred", StringTools.pad("fred", 4));
assertEquals("fred ", StringTools.pad("fred", 6));
boolean exThrown = false;
try {
assertEquals("fr", StringTools.pad("fred", 2));
} catch (IllegalArgumentException ex) {
exThrown = true;
}
assertTrue(exThrown);
}
public void testPadCharArray() {
assertEquals("fred", StringTools.pad(new char[] { 'f', 'r', 'e', 'd' }, 4));
assertEquals("fred ", StringTools.pad(new char[] { 'f', 'r', 'e', 'd' }, 6));
boolean exThrown = false;
try {
assertEquals("fr", StringTools.pad(new char[] { 'f', 'r', 'e', 'd' }, 2));
} catch (IllegalArgumentException ex) {
exThrown = true;
}
assertTrue(exThrown);
}
public void testPadOnWriter() {
Writer writer;
writer = new StringWriter();
StringTools.padOn("fred", 4, writer);
assertEquals("fred", writer.toString());
writer = new StringWriter();
StringTools.padOn("fred", 6, writer);
assertEquals("fred ", writer.toString());
writer = new StringWriter();
boolean exThrown = false;
try {
StringTools.padOn("fred", 2, writer);
fail();
} catch (IllegalArgumentException ex) {
exThrown = true;
}
assertTrue(exThrown);
}
public void testPadOnStringBuffer() {
StringBuffer sb;
sb = new StringBuffer();
StringTools.padOn("fred", 4, sb);
assertEquals("fred", sb.toString());
sb = new StringBuffer();
StringTools.padOn("fred", 6, sb);
assertEquals("fred ", sb.toString());
sb = new StringBuffer();
boolean exThrown = false;
try {
StringTools.padOn("fred", 2, sb);
fail();
} catch (IllegalArgumentException ex) {
exThrown = true;
}
assertTrue(exThrown);
}
public void testPadOnStringBuilder() {
StringBuilder sb;
sb = new StringBuilder();
StringTools.padOn("fred", 4, sb);
assertEquals("fred", sb.toString());
sb = new StringBuilder();
StringTools.padOn("fred", 6, sb);
assertEquals("fred ", sb.toString());
sb = new StringBuilder();
boolean exThrown = false;
try {
StringTools.padOn("fred", 2, sb);
fail();
} catch (IllegalArgumentException ex) {
exThrown = true;
}
assertTrue(exThrown);
}
public void testPadOrTruncate() {
assertEquals("fred", StringTools.padOrTruncate("fred", 4));
assertEquals("fred ", StringTools.padOrTruncate("fred", 6));
assertEquals("fr", StringTools.padOrTruncate("fred", 2));
}
public void testPadOrTruncateCharArray() {
assertEquals("fred", StringTools.padOrTruncate(new char[] { 'f', 'r', 'e', 'd' }, 4));
assertEquals("fred ", StringTools.padOrTruncate(new char[] { 'f', 'r', 'e', 'd' }, 6));
assertEquals("fr", StringTools.padOrTruncate(new char[] { 'f', 'r', 'e', 'd' }, 2));
}
public void testPadOrTruncateOnWriter() {
this.verifyPadOrTruncateOnWriter("fred", "fred", 4);
this.verifyPadOrTruncateOnWriter("fred ", "fred", 6);
this.verifyPadOrTruncateOnWriter("fr", "fred", 2);
}
private void verifyPadOrTruncateOnWriter(String expected, String string, int length) {
Writer writer = new StringWriter();
StringTools.padOrTruncateOn(string, length, writer);
assertEquals(expected, writer.toString());
}
public void testPadOrTruncateOnStringBuffer() {
this.verifyPadOrTruncateOnStringBuffer("fred", "fred", 4);
this.verifyPadOrTruncateOnStringBuffer("fred ", "fred", 6);
this.verifyPadOrTruncateOnStringBuffer("fr", "fred", 2);
}
private void verifyPadOrTruncateOnStringBuffer(String expected, String string, int length) {
StringBuffer sb = new StringBuffer();
StringTools.padOrTruncateOn(string, length, sb);
assertEquals(expected, sb.toString());
}
public void testPadOrTruncateOnStringBuilder() {
this.verifyPadOrTruncateOnStringBuilder("fred", "fred", 4);
this.verifyPadOrTruncateOnStringBuilder("fred ", "fred", 6);
this.verifyPadOrTruncateOnStringBuilder("fr", "fred", 2);
}
private void verifyPadOrTruncateOnStringBuilder(String expected, String string, int length) {
StringBuilder sb = new StringBuilder();
StringTools.padOrTruncateOn(string, length, sb);
assertEquals(expected, sb.toString());
}
public void testZeroPad() {
assertEquals("1234", StringTools.zeroPad("1234", 4));
assertEquals("001234", StringTools.zeroPad("1234", 6));
boolean exThrown = false;
try {
assertEquals("12", StringTools.zeroPad("1234", 2));
} catch (IllegalArgumentException ex) {
exThrown = true;
}
assertTrue(exThrown);
}
public void testZeroPadCharArray() {
assertEquals("1234", StringTools.zeroPad(new char[] { '1', '2', '3', '4' }, 4));
assertEquals("001234", StringTools.zeroPad(new char[] { '1', '2', '3', '4' }, 6));
boolean exThrown = false;
try {
assertEquals("12", StringTools.zeroPad(new char[] { '1', '2', '3', '4' }, 2));
} catch (IllegalArgumentException ex) {
exThrown = true;
}
assertTrue(exThrown);
}
public void testZeroPadOnWriter() {
Writer writer;
writer = new StringWriter();
StringTools.zeroPadOn("1234", 4, writer);
assertEquals("1234", writer.toString());
writer = new StringWriter();
StringTools.zeroPadOn("1234", 6, writer);
assertEquals("001234", writer.toString());
writer = new StringWriter();
boolean exThrown = false;
try {
StringTools.zeroPadOn("1234", 2, writer);
fail();
} catch (IllegalArgumentException ex) {
exThrown = true;
}
assertTrue(exThrown);
}
public void testZeroPadOnStringBuffer() {
StringBuffer sb;
sb = new StringBuffer();
StringTools.zeroPadOn("1234", 4, sb);
assertEquals("1234", sb.toString());
sb = new StringBuffer();
StringTools.zeroPadOn("1234", 6, sb);
assertEquals("001234", sb.toString());
sb = new StringBuffer();
boolean exThrown = false;
try {
StringTools.zeroPadOn("1234", 2, sb);
fail();
} catch (IllegalArgumentException ex) {
exThrown = true;
}
assertTrue(exThrown);
}
public void testZeroPadOnStringBuilder() {
StringBuilder sb;
sb = new StringBuilder();
StringTools.zeroPadOn("1234", 4, sb);
assertEquals("1234", sb.toString());
sb = new StringBuilder();
StringTools.zeroPadOn("1234", 6, sb);
assertEquals("001234", sb.toString());
sb = new StringBuilder();
boolean exThrown = false;
try {
StringTools.zeroPadOn("1234", 2, sb);
fail();
} catch (IllegalArgumentException ex) {
exThrown = true;
}
assertTrue(exThrown);
}
public void testZeroPadOrTruncate() {
assertEquals("1234", StringTools.zeroPadOrTruncate("1234", 4));
assertEquals("001234", StringTools.zeroPadOrTruncate("1234", 6));
assertEquals("34", StringTools.zeroPadOrTruncate("1234", 2));
}
public void testZeroPadOrTruncateCharArray() {
assertEquals("1234", StringTools.zeroPadOrTruncate(new char[] { '1', '2', '3', '4' }, 4));
assertEquals("001234", StringTools.zeroPadOrTruncate(new char[] { '1', '2', '3', '4' }, 6));
assertEquals("34", StringTools.zeroPadOrTruncate(new char[] { '1', '2', '3', '4' }, 2));
}
public void testZeroPadOrTruncateOnWriter() {
this.verifyZeroPadOrTruncateOnWriter("1234", "1234", 4);
this.verifyZeroPadOrTruncateOnWriter("001234", "1234", 6);
this.verifyZeroPadOrTruncateOnWriter("34", "1234", 2);
}
private void verifyZeroPadOrTruncateOnWriter(String expected, String string, int length) {
Writer writer = new StringWriter();
StringTools.zeroPadOrTruncateOn(string, length, writer);
assertEquals(expected, writer.toString());
}
public void testZeroPadOrTruncateOnStringBuffer() {
this.verifyZeroPadOrTruncateOnStringBuffer("1234", "1234", 4);
this.verifyZeroPadOrTruncateOnStringBuffer("001234", "1234", 6);
this.verifyZeroPadOrTruncateOnStringBuffer("34", "1234", 2);
}
private void verifyZeroPadOrTruncateOnStringBuffer(String expected, String string, int length) {
StringBuffer sb = new StringBuffer();
StringTools.zeroPadOrTruncateOn(string, length, sb);
assertEquals(expected, sb.toString());
}
public void testZeroPadOrTruncateOnStringBuilder() {
this.verifyZeroPadOrTruncateOnStringBuilder("1234", "1234", 4);
this.verifyZeroPadOrTruncateOnStringBuilder("001234", "1234", 6);
this.verifyZeroPadOrTruncateOnStringBuilder("34", "1234", 2);
}
private void verifyZeroPadOrTruncateOnStringBuilder(String expected, String string, int length) {
StringBuilder sb = new StringBuilder();
StringTools.zeroPadOrTruncateOn(string, length, sb);
assertEquals(expected, sb.toString());
}
// ********** separating **********
public void testSeparateStringCharInt() {
this.verifySeparate("012345", '-', 22, "012345");
this.verifySeparate("012345", '-', 6, "012345");
this.verifySeparate("012345", '-', 5, "01234-5");
this.verifySeparate("012345", '-', 4, "0123-45");
this.verifySeparate("012345", '-', 3, "012-345");
this.verifySeparate("012345", '-', 2, "01-23-45");
this.verifySeparate("012345", '-', 1, "0-1-2-3-4-5");
}
private void verifySeparate(String string, char separator, int segmentLength, String expected) {
assertEquals(expected, StringTools.separate(string, separator, segmentLength));
}
public void testSeparateOnStringCharIntWriter() {
this.verifySeparateOnWriter("012345", '-', 22, "012345");
this.verifySeparateOnWriter("012345", '-', 6, "012345");
this.verifySeparateOnWriter("012345", '-', 5, "01234-5");
this.verifySeparateOnWriter("012345", '-', 4, "0123-45");
this.verifySeparateOnWriter("012345", '-', 3, "012-345");
this.verifySeparateOnWriter("012345", '-', 2, "01-23-45");
this.verifySeparateOnWriter("012345", '-', 1, "0-1-2-3-4-5");
}
private void verifySeparateOnWriter(String string, char separator, int segmentLength, String expected) {
Writer writer = new StringWriter();
StringTools.separateOn(string, separator, segmentLength, writer);
assertEquals(expected, writer.toString());
}
public void testSeparateOnStringCharIntStringBuffer() {
this.verifySeparateOnStringBuffer("012345", '-', 22, "012345");
this.verifySeparateOnStringBuffer("012345", '-', 6, "012345");
this.verifySeparateOnStringBuffer("012345", '-', 5, "01234-5");
this.verifySeparateOnStringBuffer("012345", '-', 4, "0123-45");
this.verifySeparateOnStringBuffer("012345", '-', 3, "012-345");
this.verifySeparateOnStringBuffer("012345", '-', 2, "01-23-45");
this.verifySeparateOnStringBuffer("012345", '-', 1, "0-1-2-3-4-5");
}
private void verifySeparateOnStringBuffer(String string, char separator, int segmentLength, String expected) {
StringBuffer sb = new StringBuffer();
StringTools.separateOn(string, separator, segmentLength, sb);
assertEquals(expected, sb.toString());
}
public void testSeparateOnStringCharIntStringBuilder() {
this.verifySeparateOnStringBuilder("012345", '-', 22, "012345");
this.verifySeparateOnStringBuilder("012345", '-', 6, "012345");
this.verifySeparateOnStringBuilder("012345", '-', 5, "01234-5");
this.verifySeparateOnStringBuilder("012345", '-', 4, "0123-45");
this.verifySeparateOnStringBuilder("012345", '-', 3, "012-345");
this.verifySeparateOnStringBuilder("012345", '-', 2, "01-23-45");
this.verifySeparateOnStringBuilder("012345", '-', 1, "0-1-2-3-4-5");
}
private void verifySeparateOnStringBuilder(String string, char separator, int segmentLength, String expected) {
StringBuilder sb = new StringBuilder();
StringTools.separateOn(string, separator, segmentLength, sb);
assertEquals(expected, sb.toString());
}
public void testSeparateCharArrayCharInt() {
this.verifySeparateCharArray("012345", '-', 22, "012345");
this.verifySeparateCharArray("012345", '-', 6, "012345");
this.verifySeparateCharArray("012345", '-', 5, "01234-5");
this.verifySeparateCharArray("012345", '-', 4, "0123-45");
this.verifySeparateCharArray("012345", '-', 3, "012-345");
this.verifySeparateCharArray("012345", '-', 2, "01-23-45");
this.verifySeparateCharArray("012345", '-', 1, "0-1-2-3-4-5");
}
private void verifySeparateCharArray(String string, char separator, int segmentLength, String expected) {
assertEquals(expected, StringTools.separate(string.toCharArray(), separator, segmentLength));
}
public void testSeparateOnCharArrayCharIntWriter() {
this.verifySeparateCharArrayOnWriter("012345", '-', 22, "012345");
this.verifySeparateCharArrayOnWriter("012345", '-', 6, "012345");
this.verifySeparateCharArrayOnWriter("012345", '-', 5, "01234-5");
this.verifySeparateCharArrayOnWriter("012345", '-', 4, "0123-45");
this.verifySeparateCharArrayOnWriter("012345", '-', 3, "012-345");
this.verifySeparateCharArrayOnWriter("012345", '-', 2, "01-23-45");
this.verifySeparateCharArrayOnWriter("012345", '-', 1, "0-1-2-3-4-5");
}
private void verifySeparateCharArrayOnWriter(String string, char separator, int segmentLength, String expected) {
Writer writer = new StringWriter();
StringTools.separateOn(string.toCharArray(), separator, segmentLength, writer);
assertEquals(expected, writer.toString());
}
public void testSeparateOnCharArrayCharIntStringBuffer() {
this.verifySeparateCharArrayOnStringBuffer("012345", '-', 22, "012345");
this.verifySeparateCharArrayOnStringBuffer("012345", '-', 6, "012345");
this.verifySeparateCharArrayOnStringBuffer("012345", '-', 5, "01234-5");
this.verifySeparateCharArrayOnStringBuffer("012345", '-', 4, "0123-45");
this.verifySeparateCharArrayOnStringBuffer("012345", '-', 3, "012-345");
this.verifySeparateCharArrayOnStringBuffer("012345", '-', 2, "01-23-45");
this.verifySeparateCharArrayOnStringBuffer("012345", '-', 1, "0-1-2-3-4-5");
}
private void verifySeparateCharArrayOnStringBuffer(String string, char separator, int segmentLength, String expected) {
StringBuffer sb = new StringBuffer();
StringTools.separateOn(string.toCharArray(), separator, segmentLength, sb);
assertEquals(expected, sb.toString());
}
public void testSeparateOnCharArrayCharIntStringBuilder() {
this.verifySeparateCharArrayOnStringBuilder("012345", '-', 22, "012345");
this.verifySeparateCharArrayOnStringBuilder("012345", '-', 6, "012345");
this.verifySeparateCharArrayOnStringBuilder("012345", '-', 5, "01234-5");
this.verifySeparateCharArrayOnStringBuilder("012345", '-', 4, "0123-45");
this.verifySeparateCharArrayOnStringBuilder("012345", '-', 3, "012-345");
this.verifySeparateCharArrayOnStringBuilder("012345", '-', 2, "01-23-45");
this.verifySeparateCharArrayOnStringBuilder("012345", '-', 1, "0-1-2-3-4-5");
}
private void verifySeparateCharArrayOnStringBuilder(String string, char separator, int segmentLength, String expected) {
StringBuilder sb = new StringBuilder();
StringTools.separateOn(string.toCharArray(), separator, segmentLength, sb);
assertEquals(expected, sb.toString());
}
// ********** delimiting **********
public void testDelimit() {
this.verifyDelimit("Employee", "123", "123Employee123");
this.verifyDelimit("123", "123", "123123123");
this.verifyDelimit("", "123", "123123");
}
private void verifyDelimit(String string, String delimiter, String expectedString) {
assertEquals(expectedString, StringTools.delimit(string, delimiter));
}
public void testDelimitOnWriter() {
this.verifyDelimitOnWriter("Employee", "123", "123Employee123");
this.verifyDelimitOnWriter("123", "123", "123123123");
this.verifyDelimitOnWriter("", "123", "123123");
}
private void verifyDelimitOnWriter(String string, String delimiter, String expectedString) {
Writer writer = new StringWriter();
StringTools.delimitOn(string, delimiter, writer);
assertEquals(expectedString, writer.toString());
}
public void testDelimitOnStringBuffer() {
this.verifyDelimitOnStringBuffer("Employee", "123", "123Employee123");
this.verifyDelimitOnStringBuffer("123", "123", "123123123");
this.verifyDelimitOnStringBuffer("", "123", "123123");
}
private void verifyDelimitOnStringBuffer(String string, String delimiter, String expectedString) {
StringBuffer sb = new StringBuffer();
StringTools.delimitOn(string, delimiter, sb);
assertEquals(expectedString, sb.toString());
}
public void testDelimitOnStringBuilder() {
this.verifyDelimitOnStringBuilder("Employee", "123", "123Employee123");
this.verifyDelimitOnStringBuilder("123", "123", "123123123");
this.verifyDelimitOnStringBuilder("", "123", "123123");
}
private void verifyDelimitOnStringBuilder(String string, String delimiter, String expectedString) {
StringBuilder sb = new StringBuilder();
StringTools.delimitOn(string, delimiter, sb);
assertEquals(expectedString, sb.toString());
}
public void testQuote() {
this.verifyQuote("Employee", "\"Employee\"");
this.verifyQuote("123", "\"123\"");
this.verifyQuote("", "\"\"");
this.verifyQuote("Emp\"loyee", "\"Emp\"\"loyee\"");
}
private void verifyQuote(String string, String expectedString) {
assertEquals(expectedString, StringTools.quote(string));
}
public void testQuoteOnWriter() {
this.verifyQuoteOnWriter("Employee", "\"Employee\"");
this.verifyQuoteOnWriter("123", "\"123\"");
this.verifyQuoteOnWriter("", "\"\"");
this.verifyQuoteOnWriter("Emp\"loyee", "\"Emp\"\"loyee\"");
}
private void verifyQuoteOnWriter(String string, String expectedString) {
Writer writer = new StringWriter();
StringTools.quoteOn(string, writer);
assertEquals(expectedString, writer.toString());
}
public void testQuoteOnStringBuffer() {
this.verifyQuoteOnStringBuffer("Employee", "\"Employee\"");
this.verifyQuoteOnStringBuffer("123", "\"123\"");
this.verifyQuoteOnStringBuffer("", "\"\"");
this.verifyQuoteOnStringBuffer("Emp\"loyee", "\"Emp\"\"loyee\"");
}
private void verifyQuoteOnStringBuffer(String string, String expectedString) {
StringBuffer sb = new StringBuffer();
StringTools.quoteOn(string, sb);
assertEquals(expectedString, sb.toString());
}
public void testQuoteOnStringBuilder() {
this.verifyQuoteOnStringBuilder("Employee", "\"Employee\"");
this.verifyQuoteOnStringBuilder("123", "\"123\"");
this.verifyQuoteOnStringBuilder("", "\"\"");
this.verifyQuoteOnStringBuilder("Emp\"loyee", "\"Emp\"\"loyee\"");
}
private void verifyQuoteOnStringBuilder(String string, String expectedString) {
StringBuilder sb = new StringBuilder();
StringTools.quoteOn(string, sb);
assertEquals(expectedString, sb.toString());
}
// ********** removing characters **********
public void testRemoveFirstOccurrence() {
this.verifyRemoveFirstOccurrence("Emplo&yee", '&', "Employee");
this.verifyRemoveFirstOccurrence("Emplo&yee&", '&', "Employee&");
this.verifyRemoveFirstOccurrence("Employee &Foo", '&', "Employee Foo");
this.verifyRemoveFirstOccurrence("Employee&", '&', "Employee");
this.verifyRemoveFirstOccurrence("&Employee", '&', "Employee");
}
private void verifyRemoveFirstOccurrence(String string, char charToRemove, String expectedString) {
assertEquals(expectedString, StringTools.removeFirstOccurrence(string, charToRemove));
}
public void testRemoveFirstOccurrenceCharArray() {
this.verifyRemoveFirstOccurrenceCharArray("Emplo&yee", '&', "Employee");
this.verifyRemoveFirstOccurrenceCharArray("Emplo&yee&", '&', "Employee&");
this.verifyRemoveFirstOccurrenceCharArray("Employee &Foo", '&', "Employee Foo");
this.verifyRemoveFirstOccurrenceCharArray("Employee&", '&', "Employee");
this.verifyRemoveFirstOccurrenceCharArray("&Employee", '&', "Employee");
}
private void verifyRemoveFirstOccurrenceCharArray(String string, char charToRemove, String expectedString) {
assertEquals(expectedString, StringTools.removeFirstOccurrence(string.toCharArray(), charToRemove));
}
public void testRemoveFirstOccurrenceOnWriter() {
this.verifyRemoveFirstOccurrenceOnWriter("Emplo&yee", '&', "Employee");
this.verifyRemoveFirstOccurrenceOnWriter("Emplo&yee&", '&', "Employee&");
this.verifyRemoveFirstOccurrenceOnWriter("Employee &Foo", '&', "Employee Foo");
this.verifyRemoveFirstOccurrenceOnWriter("Employee&", '&', "Employee");
this.verifyRemoveFirstOccurrenceOnWriter("&Employee", '&', "Employee");
}
private void verifyRemoveFirstOccurrenceOnWriter(String string, char charToRemove, String expectedString) {
Writer writer = new StringWriter();
StringTools.removeFirstOccurrenceOn(string, charToRemove, writer);
assertEquals(expectedString, writer.toString());
}
public void testRemoveFirstOccurrenceOnStringBuffer() {
this.verifyRemoveFirstOccurrenceOnStringBuffer("Emplo&yee", '&', "Employee");
this.verifyRemoveFirstOccurrenceOnStringBuffer("Emplo&yee&", '&', "Employee&");
this.verifyRemoveFirstOccurrenceOnStringBuffer("Employee &Foo", '&', "Employee Foo");
this.verifyRemoveFirstOccurrenceOnStringBuffer("Employee&", '&', "Employee");
this.verifyRemoveFirstOccurrenceOnStringBuffer("&Employee", '&', "Employee");
}
private void verifyRemoveFirstOccurrenceOnStringBuffer(String string, char charToRemove, String expectedString) {
StringBuffer sb = new StringBuffer();
StringTools.removeFirstOccurrenceOn(string, charToRemove, sb);
assertEquals(expectedString, sb.toString());
}
public void testRemoveFirstOccurrenceOnStringBuilder() {
this.verifyRemoveFirstOccurrenceOnStringBuilder("Emplo&yee", '&', "Employee");
this.verifyRemoveFirstOccurrenceOnStringBuilder("Emplo&yee&", '&', "Employee&");
this.verifyRemoveFirstOccurrenceOnStringBuilder("Employee &Foo", '&', "Employee Foo");
this.verifyRemoveFirstOccurrenceOnStringBuilder("Employee&", '&', "Employee");
this.verifyRemoveFirstOccurrenceOnStringBuilder("&Employee", '&', "Employee");
}
private void verifyRemoveFirstOccurrenceOnStringBuilder(String string, char charToRemove, String expectedString) {
StringBuilder sb = new StringBuilder();
StringTools.removeFirstOccurrenceOn(string, charToRemove, sb);
assertEquals(expectedString, sb.toString());
}
public void testRemoveAllOccurrences() {
this.verifyRemoveAllOccurrences("Employee Fred", ' ', "EmployeeFred");
this.verifyRemoveAllOccurrences(" Employee ", ' ', "Employee");
this.verifyRemoveAllOccurrences("Employee Foo", ' ', "EmployeeFoo");
this.verifyRemoveAllOccurrences(" Emp loyee Foo", ' ', "EmployeeFoo");
}
private void verifyRemoveAllOccurrences(String string, char charToRemove, String expectedString) {
assertEquals(expectedString, StringTools.removeAllOccurrences(string, charToRemove));
}
public void testRemoveAllOccurrencesCharArray() {
this.verifyRemoveAllOccurrencesCharArray("Employee Fred", ' ', "EmployeeFred");
this.verifyRemoveAllOccurrencesCharArray(" Employee ", ' ', "Employee");
this.verifyRemoveAllOccurrencesCharArray("Employee Foo", ' ', "EmployeeFoo");
this.verifyRemoveAllOccurrencesCharArray(" Emp loyee Foo", ' ', "EmployeeFoo");
}
private void verifyRemoveAllOccurrencesCharArray(String string, char charToRemove, String expectedString) {
assertEquals(expectedString, StringTools.removeAllOccurrences(string.toCharArray(), charToRemove));
}
public void testRemoveAllOccurrencesOnWriter() {
this.verifyRemoveAllOccurrencesOnWriter("Employee Fred", ' ', "EmployeeFred");
this.verifyRemoveAllOccurrencesOnWriter(" Employee ", ' ', "Employee");
this.verifyRemoveAllOccurrencesOnWriter("Employee Foo", ' ', "EmployeeFoo");
this.verifyRemoveAllOccurrencesOnWriter(" Emp loyee Foo", ' ', "EmployeeFoo");
}
private void verifyRemoveAllOccurrencesOnWriter(String string, char charToRemove, String expectedString) {
Writer writer = new StringWriter();
StringTools.removeAllOccurrencesOn(string, charToRemove, writer);
assertEquals(expectedString, writer.toString());
}
public void testRemoveAllOccurrencesOnStringBuffer() {
this.verifyRemoveAllOccurrencesOnStringBuffer("Employee Fred", ' ', "EmployeeFred");
this.verifyRemoveAllOccurrencesOnStringBuffer(" Employee ", ' ', "Employee");
this.verifyRemoveAllOccurrencesOnStringBuffer("Employee Foo", ' ', "EmployeeFoo");
this.verifyRemoveAllOccurrencesOnStringBuffer(" Emp loyee Foo", ' ', "EmployeeFoo");
}
private void verifyRemoveAllOccurrencesOnStringBuffer(String string, char charToRemove, String expectedString) {
StringBuffer sb = new StringBuffer();
StringTools.removeAllOccurrencesOn(string, charToRemove, sb);
assertEquals(expectedString, sb.toString());
}
public void testRemoveAllOccurrencesOnStringBuilder() {
this.verifyRemoveAllOccurrencesOnStringBuilder("Employee Fred", ' ', "EmployeeFred");
this.verifyRemoveAllOccurrencesOnStringBuilder(" Employee ", ' ', "Employee");
this.verifyRemoveAllOccurrencesOnStringBuilder("Employee Foo", ' ', "EmployeeFoo");
this.verifyRemoveAllOccurrencesOnStringBuilder(" Emp loyee Foo", ' ', "EmployeeFoo");
}
private void verifyRemoveAllOccurrencesOnStringBuilder(String string, char charToRemove, String expectedString) {
StringBuilder sb = new StringBuilder();
StringTools.removeAllOccurrencesOn(string, charToRemove, sb);
assertEquals(expectedString, sb.toString());
}
public void testRemoveAllWhitespace() {
this.verifyRemoveAllWhitespace("Employee Fred\t", "EmployeeFred");
this.verifyRemoveAllWhitespace("\tEmployee\n", "Employee");
this.verifyRemoveAllWhitespace("Employee \t Foo", "EmployeeFoo");
this.verifyRemoveAllWhitespace(" Emp\tloyee \n Foo", "EmployeeFoo");
}
private void verifyRemoveAllWhitespace(String string, String expectedString) {
assertEquals(expectedString, StringTools.removeAllWhitespace(string));
}
public void testRemoveAllWhitespaceCharArray() {
this.verifyRemoveAllWhitespaceCharArray("Employee Fred\t", "EmployeeFred");
this.verifyRemoveAllWhitespaceCharArray("\tEmployee\n", "Employee");
this.verifyRemoveAllWhitespaceCharArray("Employee \t Foo", "EmployeeFoo");
this.verifyRemoveAllWhitespaceCharArray(" Emp\tloyee \n Foo", "EmployeeFoo");
}
private void verifyRemoveAllWhitespaceCharArray(String string, String expectedString) {
assertEquals(expectedString, StringTools.removeAllWhitespace(string.toCharArray()));
}
public void testRemoveAllWhitespaceOnWriter() {
this.verifyRemoveAllWhitespaceOnWriter("Employee Fred\t", "EmployeeFred");
this.verifyRemoveAllWhitespaceOnWriter("\tEmployee\n", "Employee");
this.verifyRemoveAllWhitespaceOnWriter("Employee \t Foo", "EmployeeFoo");
this.verifyRemoveAllWhitespaceOnWriter(" Emp\tloyee \n Foo", "EmployeeFoo");
}
private void verifyRemoveAllWhitespaceOnWriter(String string, String expectedString) {
Writer writer = new StringWriter();
StringTools.removeAllWhitespaceOn(string, writer);
assertEquals(expectedString, writer.toString());
}
public void testRemoveAllWhitespaceOnStringBuffer() {
this.verifyRemoveAllWhitespaceOnStringBuffer("Employee Fred\t", "EmployeeFred");
this.verifyRemoveAllWhitespaceOnStringBuffer("\tEmployee\n", "Employee");
this.verifyRemoveAllWhitespaceOnStringBuffer("Employee \t Foo", "EmployeeFoo");
this.verifyRemoveAllWhitespaceOnStringBuffer(" Emp\tloyee \n Foo", "EmployeeFoo");
}
private void verifyRemoveAllWhitespaceOnStringBuffer(String string, String expectedString) {
StringBuffer sb = new StringBuffer();
StringTools.removeAllWhitespaceOn(string, sb);
assertEquals(expectedString, sb.toString());
}
public void testRemoveAllWhitespaceOnStringBuilder() {
this.verifyRemoveAllWhitespaceOnStringBuilder("Employee Fred\t", "EmployeeFred");
this.verifyRemoveAllWhitespaceOnStringBuilder("\tEmployee\n", "Employee");
this.verifyRemoveAllWhitespaceOnStringBuilder("Employee \t Foo", "EmployeeFoo");
this.verifyRemoveAllWhitespaceOnStringBuilder(" Emp\tloyee \n Foo", "EmployeeFoo");
}
private void verifyRemoveAllWhitespaceOnStringBuilder(String string, String expectedString) {
StringBuilder sb = new StringBuilder();
StringTools.removeAllWhitespaceOn(string, sb);
assertEquals(expectedString, sb.toString());
}
//////////////////////////////
public void testCompressWhitespace() {
this.verifyCompressWhitespace("Employee Fred\t", "Employee Fred ");
this.verifyCompressWhitespace("\tEmployee \n", " Employee ");
this.verifyCompressWhitespace("Employee \t Foo", "Employee Foo");
this.verifyCompressWhitespace(" Emp\tloyee \n Foo ", " Emp loyee Foo ");
}
private void verifyCompressWhitespace(String string, String expectedString) {
assertEquals(expectedString, StringTools.compressWhitespace(string));
}
public void testCompressWhitespaceCharArray() {
this.verifyCompressWhitespaceCharArray("Employee Fred\t", "Employee Fred ");
this.verifyCompressWhitespaceCharArray("\tEmployee \n", " Employee ");
this.verifyCompressWhitespaceCharArray("Employee \t Foo", "Employee Foo");
this.verifyCompressWhitespaceCharArray(" Emp\tloyee \n Foo ", " Emp loyee Foo ");
}
private void verifyCompressWhitespaceCharArray(String string, String expectedString) {
assertEquals(expectedString, StringTools.compressWhitespace(string.toCharArray()));
}
public void testCompressWhitespaceOnWriter() {
this.verifyCompressWhitespaceOnWriter("Employee Fred\t", "Employee Fred ");
this.verifyCompressWhitespaceOnWriter("\tEmployee \n", " Employee ");
this.verifyCompressWhitespaceOnWriter("Employee \t Foo", "Employee Foo");
this.verifyCompressWhitespaceOnWriter(" Emp\tloyee \n Foo ", " Emp loyee Foo ");
}
private void verifyCompressWhitespaceOnWriter(String string, String expectedString) {
Writer writer = new StringWriter();
StringTools.compressWhitespaceOn(string, writer);
assertEquals(expectedString, writer.toString());
}
public void testCompressWhitespaceOnStringBuffer() {
this.verifyCompressWhitespaceOnStringBuffer("Employee Fred\t", "Employee Fred ");
this.verifyCompressWhitespaceOnStringBuffer("\tEmployee \n", " Employee ");
this.verifyCompressWhitespaceOnStringBuffer("Employee \t Foo", "Employee Foo");
this.verifyCompressWhitespaceOnStringBuffer(" Emp\tloyee \n Foo ", " Emp loyee Foo ");
}
private void verifyCompressWhitespaceOnStringBuffer(String string, String expectedString) {
StringBuffer sb = new StringBuffer();
StringTools.compressWhitespaceOn(string, sb);
assertEquals(expectedString, sb.toString());
}
public void testCompressWhitespaceOnStringBuilder() {
this.verifyCompressWhitespaceOnStringBuilder("Employee Fred\t", "Employee Fred ");
this.verifyCompressWhitespaceOnStringBuilder("\tEmployee \n", " Employee ");
this.verifyCompressWhitespaceOnStringBuilder("Employee \t Foo", "Employee Foo");
this.verifyCompressWhitespaceOnStringBuilder(" Emp\tloyee \n Foo ", " Emp loyee Foo ");
}
private void verifyCompressWhitespaceOnStringBuilder(String string, String expectedString) {
StringBuilder sb = new StringBuilder();
StringTools.compressWhitespaceOn(string, sb);
assertEquals(expectedString, sb.toString());
}
// ********** common prefix **********
public void testCommonPrefixLength() {
assertEquals(3, StringTools.commonPrefixLength("fooZZZ", "fooBBB"));
assertEquals(3, StringTools.commonPrefixLength("foo", "fooBBB"));
assertEquals(3, StringTools.commonPrefixLength("fooZZZ", "foo"));
assertEquals(3, StringTools.commonPrefixLength("foo", "foo"));
}
public void testCommonPrefixLengthMax() {
assertEquals(2, StringTools.commonPrefixLength("fooZZZ", "fooBBB", 2));
assertEquals(2, StringTools.commonPrefixLength("foo", "fooBBB", 2));
assertEquals(2, StringTools.commonPrefixLength("fooZZZ", "foo", 2));
assertEquals(2, StringTools.commonPrefixLength("foo", "foo", 2));
}
// ********** capitalization **********
public void testCapitalizeCharArray() {
this.verifyCapitalizeCharArray("Oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' });
this.verifyCapitalizeCharArray("Oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' });
this.verifyCapitalizeCharArray(" ", new char[] { ' ', ' ', ' ' });
this.verifyCapitalizeCharArray("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' });
this.verifyCapitalizeCharArray("", new char[0]);
this.verifyCapitalizeCharArray("A", new char[] { 'a' });
this.verifyCapitalizeCharArray("\u00C9cole", new char[] { '\u00E9', 'c', 'o', 'l', 'e' });
}
private void verifyCapitalizeCharArray(String expected, char[] string) {
assertEquals(expected, StringTools.capitalize(string));
}
public void testCapitalizeString() {
this.verifyCapitalizeString("Oracle", "Oracle");
this.verifyCapitalizeString("Oracle", "oracle");
this.verifyCapitalizeString(" ", " ");
this.verifyCapitalizeString("ORACLE", "ORACLE");
this.verifyCapitalizeString("", "");
this.verifyCapitalizeString("A", "a");
this.verifyCapitalizeString("\u00C9cole", "\u00E9cole"); // �cole->�COLE
}
private void verifyCapitalizeString(String expected, String string) {
assertEquals(expected, StringTools.capitalize(string));
}
public void testCapitalizeOnCharArrayStringBuffer() {
this.verifyCapitalizeOnCharArrayStringBuffer("Oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' });
this.verifyCapitalizeOnCharArrayStringBuffer("Oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' });
this.verifyCapitalizeOnCharArrayStringBuffer(" ", new char[] { ' ', ' ', ' ' });
this.verifyCapitalizeOnCharArrayStringBuffer("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' });
this.verifyCapitalizeOnCharArrayStringBuffer("", new char[0]);
this.verifyCapitalizeOnCharArrayStringBuffer("A", new char[] { 'a' });
this.verifyCapitalizeOnCharArrayStringBuffer("\u00C9cole", new char[] { '\u00E9', 'c', 'o', 'l', 'e' });
}
private void verifyCapitalizeOnCharArrayStringBuffer(String expected, char[] string) {
StringBuffer sb = new StringBuffer();
StringTools.capitalizeOn(string, sb);
assertEquals(expected, sb.toString());
}
public void testCapitalizeOnCharArrayStringBuilder() {
this.verifyCapitalizeOnCharArrayStringBuilder("Oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' });
this.verifyCapitalizeOnCharArrayStringBuilder("Oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' });
this.verifyCapitalizeOnCharArrayStringBuilder(" ", new char[] { ' ', ' ', ' ' });
this.verifyCapitalizeOnCharArrayStringBuilder("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' });
this.verifyCapitalizeOnCharArrayStringBuilder("", new char[0]);
this.verifyCapitalizeOnCharArrayStringBuilder("A", new char[] { 'a' });
this.verifyCapitalizeOnCharArrayStringBuilder("\u00C9cole", new char[] { '\u00E9', 'c', 'o', 'l', 'e' });
}
private void verifyCapitalizeOnCharArrayStringBuilder(String expected, char[] string) {
StringBuilder sb = new StringBuilder();
StringTools.capitalizeOn(string, sb);
assertEquals(expected, sb.toString());
}
public void testCapitalizeOnStringStringBuffer() {
this.verifyCapitalizeOnStringStringBuffer("Oracle", "Oracle");
this.verifyCapitalizeOnStringStringBuffer("Oracle", "oracle");
this.verifyCapitalizeOnStringStringBuffer(" ", " ");
this.verifyCapitalizeOnStringStringBuffer("ORACLE", "ORACLE");
this.verifyCapitalizeOnStringStringBuffer("", "");
this.verifyCapitalizeOnStringStringBuffer("A", "a");
this.verifyCapitalizeOnStringStringBuffer("\u00C9cole", "\u00E9cole"); // �cole->�COLE
}
private void verifyCapitalizeOnStringStringBuffer(String expected, String string) {
StringBuffer sb = new StringBuffer();
StringTools.capitalizeOn(string, sb);
assertEquals(expected, sb.toString());
}
public void testCapitalizeOnStringStringBuilder() {
this.verifyCapitalizeOnStringStringBuilder("Oracle", "Oracle");
this.verifyCapitalizeOnStringStringBuilder("Oracle", "oracle");
this.verifyCapitalizeOnStringStringBuilder(" ", " ");
this.verifyCapitalizeOnStringStringBuilder("ORACLE", "ORACLE");
this.verifyCapitalizeOnStringStringBuilder("", "");
this.verifyCapitalizeOnStringStringBuilder("A", "a");
this.verifyCapitalizeOnStringStringBuilder("\u00C9cole", "\u00E9cole"); // �cole->�COLE
}
private void verifyCapitalizeOnStringStringBuilder(String expected, String string) {
StringBuilder sb = new StringBuilder();
StringTools.capitalizeOn(string, sb);
assertEquals(expected, sb.toString());
}
public void testCapitalizeOnCharArrayWriter() {
this.verifyCapitalizeOnCharArrayWriter("Oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' });
this.verifyCapitalizeOnCharArrayWriter("Oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' });
this.verifyCapitalizeOnCharArrayWriter(" ", new char[] { ' ', ' ', ' ' });
this.verifyCapitalizeOnCharArrayWriter("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' });
this.verifyCapitalizeOnCharArrayWriter("", new char[0]);
this.verifyCapitalizeOnCharArrayWriter("A", new char[] { 'a' });
this.verifyCapitalizeOnCharArrayWriter("\u00C9cole", new char[] { '\u00E9', 'c', 'o', 'l', 'e' });
}
private void verifyCapitalizeOnCharArrayWriter(String expected, char[] string) {
Writer writer = new StringWriter();
StringTools.capitalizeOn(string, writer);
assertEquals(expected, writer.toString());
}
public void testCapitalizeOnStringWriter() {
this.verifyCapitalizeOnStringWriter("Oracle", "Oracle");
this.verifyCapitalizeOnStringWriter("Oracle", "oracle");
this.verifyCapitalizeOnStringWriter(" ", " ");
this.verifyCapitalizeOnStringWriter("ORACLE", "ORACLE");
this.verifyCapitalizeOnStringWriter("", "");
this.verifyCapitalizeOnStringWriter("A", "a");
this.verifyCapitalizeOnStringWriter("\u00C9cole", "\u00E9cole"); // �cole->�COLE
}
private void verifyCapitalizeOnStringWriter(String expected, String string) {
Writer writer = new StringWriter();
StringTools.capitalizeOn(string, writer);
assertEquals(expected, writer.toString());
}
public void testUnapitalizeCharArray() {
this.verifyUncapitalizeCharArray("oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' });
this.verifyUncapitalizeCharArray("oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' });
this.verifyUncapitalizeCharArray(" ", new char[] { ' ', ' ', ' ' });
this.verifyUncapitalizeCharArray("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' });
this.verifyUncapitalizeCharArray("", new char[0]);
this.verifyUncapitalizeCharArray("a", new char[] { 'A' });
this.verifyUncapitalizeCharArray("\u00E9cole", new char[] { '\u00C9', 'c', 'o', 'l', 'e' });
}
private void verifyUncapitalizeCharArray(String expected, char[] string) {
assertEquals(expected, StringTools.uncapitalize(string));
}
public void testUncapitalizeString() {
this.verifyUncapitalizeString("oracle", "Oracle");
this.verifyUncapitalizeString("oracle", "oracle");
this.verifyUncapitalizeString(" ", " ");
this.verifyUncapitalizeString("ORACLE", "ORACLE");
this.verifyUncapitalizeString("", "");
this.verifyUncapitalizeString("a", "A");
this.verifyUncapitalizeString("\u00E9cole", "\u00C9cole"); // �cole->�COLE
}
private void verifyUncapitalizeString(String expected, String string) {
assertEquals(expected, StringTools.uncapitalize(string));
}
public void testUncapitalizeOnCharArrayStringBuffer() {
this.verifyUncapitalizeOnCharArrayStringBuffer("oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' });
this.verifyUncapitalizeOnCharArrayStringBuffer("oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' });
this.verifyUncapitalizeOnCharArrayStringBuffer(" ", new char[] { ' ', ' ', ' ' });
this.verifyUncapitalizeOnCharArrayStringBuffer("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' });
this.verifyUncapitalizeOnCharArrayStringBuffer("", new char[0]);
this.verifyUncapitalizeOnCharArrayStringBuffer("a", new char[] { 'A' });
this.verifyUncapitalizeOnCharArrayStringBuffer("\u00E9cole", new char[] { '\u00C9', 'c', 'o', 'l', 'e' });
}
private void verifyUncapitalizeOnCharArrayStringBuffer(String expected, char[] string) {
StringBuffer sb = new StringBuffer();
StringTools.uncapitalizeOn(string, sb);
assertEquals(expected, sb.toString());
}
public void testUncapitalizeOnCharArrayStringBuilder() {
this.verifyUncapitalizeOnCharArrayStringBuilder("oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' });
this.verifyUncapitalizeOnCharArrayStringBuilder("oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' });
this.verifyUncapitalizeOnCharArrayStringBuilder(" ", new char[] { ' ', ' ', ' ' });
this.verifyUncapitalizeOnCharArrayStringBuilder("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' });
this.verifyUncapitalizeOnCharArrayStringBuilder("", new char[0]);
this.verifyUncapitalizeOnCharArrayStringBuilder("a", new char[] { 'A' });
this.verifyUncapitalizeOnCharArrayStringBuilder("\u00E9cole", new char[] { '\u00C9', 'c', 'o', 'l', 'e' });
}
private void verifyUncapitalizeOnCharArrayStringBuilder(String expected, char[] string) {
StringBuilder sb = new StringBuilder();
StringTools.uncapitalizeOn(string, sb);
assertEquals(expected, sb.toString());
}
public void testUncapitalizeOnStringStringBuffer() {
this.verifyUncapitalizeOnStringStringBuffer("oracle", "Oracle");
this.verifyUncapitalizeOnStringStringBuffer("oracle", "oracle");
this.verifyUncapitalizeOnStringStringBuffer(" ", " ");
this.verifyUncapitalizeOnStringStringBuffer("ORACLE", "ORACLE");
this.verifyUncapitalizeOnStringStringBuffer("", "");
this.verifyUncapitalizeOnStringStringBuffer("a", "A");
this.verifyUncapitalizeOnStringStringBuffer("\u00E9cole", "\u00C9cole"); // �cole->�COLE
}
private void verifyUncapitalizeOnStringStringBuffer(String expected, String string) {
StringBuffer sb = new StringBuffer();
StringTools.uncapitalizeOn(string, sb);
assertEquals(expected, sb.toString());
}
public void testUncapitalizeOnStringStringBuilder() {
this.verifyUncapitalizeOnStringStringBuilder("oracle", "Oracle");
this.verifyUncapitalizeOnStringStringBuilder("oracle", "oracle");
this.verifyUncapitalizeOnStringStringBuilder(" ", " ");
this.verifyUncapitalizeOnStringStringBuilder("ORACLE", "ORACLE");
this.verifyUncapitalizeOnStringStringBuilder("", "");
this.verifyUncapitalizeOnStringStringBuilder("a", "A");
this.verifyUncapitalizeOnStringStringBuilder("\u00E9cole", "\u00C9cole"); // �cole->�COLE
}
private void verifyUncapitalizeOnStringStringBuilder(String expected, String string) {
StringBuilder sb = new StringBuilder();
StringTools.uncapitalizeOn(string, sb);
assertEquals(expected, sb.toString());
}
public void testUncapitalizeOnCharArrayWriter() {
this.verifyUncapitalizeOnCharArrayWriter("oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' });
this.verifyUncapitalizeOnCharArrayWriter("oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' });
this.verifyUncapitalizeOnCharArrayWriter(" ", new char[] { ' ', ' ', ' ' });
this.verifyUncapitalizeOnCharArrayWriter("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' });
this.verifyUncapitalizeOnCharArrayWriter("", new char[0]);
this.verifyUncapitalizeOnCharArrayWriter("a", new char[] { 'A' });
this.verifyUncapitalizeOnCharArrayWriter("\u00E9cole", new char[] { '\u00C9', 'c', 'o', 'l', 'e' });
}
private void verifyUncapitalizeOnCharArrayWriter(String expected, char[] string) {
Writer writer = new StringWriter();
StringTools.uncapitalizeOn(string, writer);
assertEquals(expected, writer.toString());
}
public void testUncapitalizeOnStringWriter() {
this.verifyUncapitalizeOnStringWriter("oracle", "Oracle");
this.verifyUncapitalizeOnStringWriter("oracle", "oracle");
this.verifyUncapitalizeOnStringWriter(" ", " ");
this.verifyUncapitalizeOnStringWriter("ORACLE", "ORACLE");
this.verifyUncapitalizeOnStringWriter("", "");
this.verifyUncapitalizeOnStringWriter("a", "A");
this.verifyUncapitalizeOnStringWriter("\u00E9cole", "\u00C9cole"); // �cole->�COLE
}
private void verifyUncapitalizeOnStringWriter(String expected, String string) {
Writer writer = new StringWriter();
StringTools.uncapitalizeOn(string, writer);
assertEquals(expected, writer.toString());
}
// ********** #toString() **********
public void testBuildToStringClassName_anonymous() {
Object o = new Object(){/*anonymous subclass of Object*/};
assertEquals("Object", StringTools.buildToStringClassName(o.getClass()));
}
// ********** queries **********
public void testStringIsEmptyString() {
assertTrue(StringTools.stringIsEmpty((String) null));
assertTrue(StringTools.stringIsEmpty(""));
assertTrue(StringTools.stringIsEmpty(" "));
assertTrue(StringTools.stringIsEmpty(" \t\t "));
assertTrue(StringTools.stringIsEmpty(" \t\t " + StringTools.CR));
}
public void testStringIsEmptyCharArray() {
assertTrue(StringTools.stringIsEmpty((char[]) null));
this.verifyStringIsEmptyCharArray("");
this.verifyStringIsEmptyCharArray(" \t\t ");
this.verifyStringIsEmptyCharArray(" ");
this.verifyStringIsEmptyCharArray(" \t\t " + StringTools.CR);
}
private void verifyStringIsEmptyCharArray(String string) {
assertTrue(StringTools.stringIsEmpty(string.toCharArray()));
}
public void testStringsAreEqualStringString() {
assertTrue(StringTools.stringsAreEqual((String) null, (String) null));
assertFalse(StringTools.stringsAreEqual(null, "asdf"));
assertFalse(StringTools.stringsAreEqual("asdf", null));
assertTrue(StringTools.stringsAreEqual("asdf", "asdf"));
assertFalse(StringTools.stringsAreEqual("asdf", "ASDF"));
}
public void testStringsAreEqualCharArrayCharArray() {
assertTrue(StringTools.stringsAreEqual((char[]) null, (char[]) null));
assertFalse(StringTools.stringsAreEqual((char[]) null, "asdf".toCharArray()));
assertFalse(StringTools.stringsAreEqual("asdf".toCharArray(), (char[]) null));
assertTrue(StringTools.stringsAreEqual("asdf".toCharArray(), "asdf".toCharArray()));
assertFalse(StringTools.stringsAreEqual("asdf".toCharArray(), "ASDF".toCharArray()));
}
public void testStringsAreEqualIgnoreCaseStringString() {
assertTrue(StringTools.stringsAreEqualIgnoreCase((String) null, (String) null));
assertFalse(StringTools.stringsAreEqualIgnoreCase(null, "asdf"));
assertFalse(StringTools.stringsAreEqualIgnoreCase("asdf", null));
assertTrue(StringTools.stringsAreEqualIgnoreCase("asdf", "asdf"));
assertTrue(StringTools.stringsAreEqualIgnoreCase("asdf", "ASDF"));
}
public void testStringsAreEqualIgnoreCaseCharArrayCharArray() {
assertTrue(StringTools.stringsAreEqualIgnoreCase((char[]) null, (char[]) null));
assertFalse(StringTools.stringsAreEqualIgnoreCase((char[]) null, "asdf".toCharArray()));
assertFalse(StringTools.stringsAreEqualIgnoreCase("asdf".toCharArray(), (char[]) null));
assertTrue(StringTools.stringsAreEqualIgnoreCase("asdf".toCharArray(), "asdf".toCharArray()));
assertTrue(StringTools.stringsAreEqualIgnoreCase("asdf".toCharArray(), "ASDF".toCharArray()));
}
public void testStringStartsWithIgnoreCaseStringString() {
assertTrue(StringTools.stringStartsWithIgnoreCase("asdf", "as"));
assertTrue(StringTools.stringStartsWithIgnoreCase("asdf", "aS"));
assertTrue(StringTools.stringStartsWithIgnoreCase("asdf", ""));
assertTrue(StringTools.stringStartsWithIgnoreCase("asdf", "A"));
assertFalse(StringTools.stringStartsWithIgnoreCase("asdf", "bsdf"));
assertFalse(StringTools.stringStartsWithIgnoreCase("asdf", "g"));
assertFalse(StringTools.stringStartsWithIgnoreCase("asdf", "asdg"));
assertFalse(StringTools.stringStartsWithIgnoreCase("asdf", "asdfg"));
assertFalse(StringTools.stringStartsWithIgnoreCase("asdf", "asdfgggggg"));
}
public void testStringStartsWithIgnoreCaseCharArrayCharArray() {
assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "as".toCharArray()));
assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "aS".toCharArray()));
assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "".toCharArray()));
assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "A".toCharArray()));
assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "ASDF".toCharArray()));
assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "asdf".toCharArray()));
assertFalse(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "bsdf".toCharArray()));
assertFalse(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "g".toCharArray()));
assertFalse(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "asdg".toCharArray()));
assertFalse(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "asdfg".toCharArray()));
assertFalse(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "asdfgggggg".toCharArray()));
}
public void testCharactersAreEqualIgnoreCase() {
assertTrue(StringTools.charactersAreEqualIgnoreCase('a', 'a'));
assertTrue(StringTools.charactersAreEqualIgnoreCase('a', 'A'));
assertTrue(StringTools.charactersAreEqualIgnoreCase('A', 'a'));
assertTrue(StringTools.charactersAreEqualIgnoreCase('A', 'A'));
assertFalse(StringTools.charactersAreEqualIgnoreCase('a', 'b'));
assertFalse(StringTools.charactersAreEqualIgnoreCase('A', 'b'));
}
public void testStringIsUppercase() {
this.verifyStringIsUppercase("FOO");
this.verifyStringIsUppercase("FOO2");
this.verifyStringIsUppercase("F O O");
this.denyStringIsUppercase("Foo");
this.denyStringIsUppercase("");
}
private void verifyStringIsUppercase(String s) {
assertTrue(StringTools.stringIsUppercase(s));
assertTrue(StringTools.stringIsUppercase(s.toCharArray()));
}
private void denyStringIsUppercase(String s) {
assertFalse(StringTools.stringIsUppercase(s));
assertFalse(StringTools.stringIsUppercase(s.toCharArray()));
}
public void testStringIsLowercase() {
this.verifyStringIsLowercase("foo");
this.verifyStringIsLowercase("foo2");
this.verifyStringIsLowercase("f o o");
this.denyStringIsLowercase("Foo");
this.denyStringIsLowercase("");
}
private void verifyStringIsLowercase(String s) {
assertTrue(StringTools.stringIsLowercase(s));
assertTrue(StringTools.stringIsLowercase(s.toCharArray()));
}
private void denyStringIsLowercase(String s) {
assertFalse(StringTools.stringIsLowercase(s));
assertFalse(StringTools.stringIsLowercase(s.toCharArray()));
}
// ********** convert camel-case to all-caps **********
public void testConvertCamelCaseToAllCaps() {
assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("test"));
assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("TEST"));
assertEquals("TEST_TEST", StringTools.convertCamelCaseToAllCaps("testTest"));
assertEquals("TEST_TEST", StringTools.convertCamelCaseToAllCaps("TestTest"));
assertEquals("TEST_TEST_TEST", StringTools.convertCamelCaseToAllCaps("testTESTTest"));
assertEquals("TEST_TEST_TEST", StringTools.convertCamelCaseToAllCaps("TestTESTTest"));
assertEquals("TEST_TEST_TEST_T", StringTools.convertCamelCaseToAllCaps("TestTESTTestT"));
}
public void testConvertCamelCaseToAllCapsOnWriter() {
this.verifyConvertCamelCaseToAllCapsOnWriter("TEST", "test");
this.verifyConvertCamelCaseToAllCapsOnWriter("TEST", "TEST");
this.verifyConvertCamelCaseToAllCapsOnWriter("TEST_TEST", "testTest");
this.verifyConvertCamelCaseToAllCapsOnWriter("TEST_TEST", "TestTest");
this.verifyConvertCamelCaseToAllCapsOnWriter("TEST_TEST_TEST", "testTESTTest");
this.verifyConvertCamelCaseToAllCapsOnWriter("TEST_TEST_TEST", "TestTESTTest");
this.verifyConvertCamelCaseToAllCapsOnWriter("TEST_TEST_TEST_T", "TestTESTTestT");
}
private void verifyConvertCamelCaseToAllCapsOnWriter(String expected, String string) {
Writer writer = new StringWriter();
StringTools.convertCamelCaseToAllCapsOn(string, writer);
assertEquals(expected, writer.toString());
}
public void testConvertCamelCaseToAllCapsOnStringBuffer() {
this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST", "test");
this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST", "TEST");
this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST_TEST", "testTest");
this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST_TEST", "TestTest");
this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST_TEST_TEST", "testTESTTest");
this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST_TEST_TEST", "TestTESTTest");
this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST_TEST_TEST_T", "TestTESTTestT");
}
private void verifyConvertCamelCaseToAllCapsOnStringBuffer(String expected, String string) {
StringBuffer sb = new StringBuffer();
StringTools.convertCamelCaseToAllCapsOn(string, sb);
assertEquals(expected, sb.toString());
}
public void testConvertCamelCaseToAllCapsOnStringBuilder() {
this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST", "test");
this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST", "TEST");
this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST_TEST", "testTest");
this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST_TEST", "TestTest");
this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST_TEST_TEST", "testTESTTest");
this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST_TEST_TEST", "TestTESTTest");
this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST_TEST_TEST_T", "TestTESTTestT");
}
private void verifyConvertCamelCaseToAllCapsOnStringBuilder(String expected, String string) {
StringBuilder sb = new StringBuilder();
StringTools.convertCamelCaseToAllCapsOn(string, sb);
assertEquals(expected, sb.toString());
}
public void testConvertCamelCaseToAllCapsMaxLength() {
assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("test", 44));
assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("test", 4));
assertEquals("TES", StringTools.convertCamelCaseToAllCaps("test", 3));
assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("TEST", 5));
assertEquals("TE", StringTools.convertCamelCaseToAllCaps("TEST", 2));
assertEquals("TEST_TEST", StringTools.convertCamelCaseToAllCaps("testTest", 9));
assertEquals("TEST_TES", StringTools.convertCamelCaseToAllCaps("testTest", 8));
assertEquals("TEST_T", StringTools.convertCamelCaseToAllCaps("testTest", 6));
assertEquals("TEST_", StringTools.convertCamelCaseToAllCaps("testTest", 5));
assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("testTest", 4));
assertEquals("TEST_TEST", StringTools.convertCamelCaseToAllCaps("TestTest", 9));
assertEquals("TEST_TEST", StringTools.convertCamelCaseToAllCaps("TestTest", 1100));
assertEquals("TEST_TEST_", StringTools.convertCamelCaseToAllCaps("testTESTTest", 10));
assertEquals("TEST_TEST_TEST", StringTools.convertCamelCaseToAllCaps("TestTESTTest", 14));
assertEquals("TEST_TEST_TEST_T", StringTools.convertCamelCaseToAllCaps("TestTESTTestT", 16));
assertEquals("TEST_TEST_TEST_", StringTools.convertCamelCaseToAllCaps("TestTESTTestT", 15));
}
public void testConvertCamelCaseToAllCapsMaxLengthOnWriter() {
this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST", "test", 44);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST", "test", 4);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TES", "test", 3);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST", "TEST", 5);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TE", "TEST", 2);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST", "testTest", 9);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TES", "testTest", 8);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_T", "testTest", 6);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_", "testTest", 5);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST", "testTest", 4);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST", "TestTest", 9);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST", "TestTest", 1100);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST_", "testTESTTest", 10);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST_TEST", "TestTESTTest", 14);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST_TEST_T", "TestTESTTestT", 16);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST_TEST_", "TestTESTTestT", 15);
}
private void verifyConvertCamelCaseToAllCapsMaxLengthOnWriter(String expected, String string, int max) {
Writer writer = new StringWriter();
StringTools.convertCamelCaseToAllCapsOn(string, max, writer);
assertEquals(expected, writer.toString());
}
public void testConvertCamelCaseToAllCapsMaxLengthOnStringBuffer() {
this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST", "test", 44);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST", "test", 4);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TES", "test", 3);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST", "TEST", 5);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TE", "TEST", 2);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST", "testTest", 9);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TES", "testTest", 8);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_T", "testTest", 6);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_", "testTest", 5);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST", "testTest", 4);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST", "TestTest", 9);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST", "TestTest", 1100);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST_", "testTESTTest", 10);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST_TEST", "TestTESTTest", 14);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST_TEST_T", "TestTESTTestT", 16);
this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST_TEST_", "TestTESTTestT", 15);
}
private void verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer(String expected, String string, int max) {
StringBuffer sb = new StringBuffer();
StringTools.convertCamelCaseToAllCapsOn(string, max, sb);
assertEquals(expected, sb.toString());
}
// ********** convert underscores to all-caps **********
public void testConvertUnderscoresToCamelCase() {
assertEquals("test", StringTools.convertUnderscoresToCamelCase("TEST", false));
assertEquals("test", StringTools.convertUnderscoresToCamelCase("TEST_", false));
assertEquals("test", StringTools.convertUnderscoresToCamelCase("TEST____", false));
assertEquals("Test", StringTools.convertUnderscoresToCamelCase("TEST", true));
assertEquals("test", StringTools.convertUnderscoresToCamelCase("TeST", false));
assertEquals("testTest", StringTools.convertUnderscoresToCamelCase("TEST_TEST", false));
assertEquals("testTest", StringTools.convertUnderscoresToCamelCase("TEST___TEST", false));
assertEquals("TestTest", StringTools.convertUnderscoresToCamelCase("TEST_TEST", true));
assertEquals("testTestTest", StringTools.convertUnderscoresToCamelCase("TEST_TEST_TEST", false));
assertEquals("TestTestTest", StringTools.convertUnderscoresToCamelCase("TEST_TEST_TEST", true));
assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("TEST_TEST_TEST_T", false));
assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("_TEST_TEST_TEST_T", false));
assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("__TEST_TEST_TEST_T", false));
assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("TEST_TEST_TEST_T", true));
assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("_TEST_TEST_TEST_T", true));
assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("__TEST_TEST_TEST_T", true));
}
public void testConvertUnderscoresToCamelCaseLowercase() {
assertEquals("test", StringTools.convertUnderscoresToCamelCase("test", false));
assertEquals("test", StringTools.convertUnderscoresToCamelCase("test_", false));
assertEquals("test", StringTools.convertUnderscoresToCamelCase("test____", false));
assertEquals("Test", StringTools.convertUnderscoresToCamelCase("test", true));
assertEquals("test", StringTools.convertUnderscoresToCamelCase("test", false));
assertEquals("testTest", StringTools.convertUnderscoresToCamelCase("test_test", false));
assertEquals("testTest", StringTools.convertUnderscoresToCamelCase("test___test", false));
assertEquals("TestTest", StringTools.convertUnderscoresToCamelCase("test_test", true));
assertEquals("testTestTest", StringTools.convertUnderscoresToCamelCase("test_test_test", false));
assertEquals("TestTestTest", StringTools.convertUnderscoresToCamelCase("test_test_test", true));
assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("test_test_test_t", false));
assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("_test_test_test_t", false));
assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("__test_test_test_t", false));
assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("test_test_test_t", true));
assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("_test_test_test_t", true));
assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("__test_test_test_t", true));
}
public void testConvertUnderscoresToCamelCaseOnWriter() {
this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "TEST", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "TEST_", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "TEST____", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("Test", "TEST", true);
this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "TeST", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("testTest", "TEST_TEST", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("testTest", "TEST___TEST", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTest", "TEST_TEST", true);
this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTest", "TEST_TEST_TEST", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTest", "TEST_TEST_TEST", true);
this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "TEST_TEST_TEST_T", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "_TEST_TEST_TEST_T", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "__TEST_TEST_TEST_T", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "TEST_TEST_TEST_T", true);
this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "_TEST_TEST_TEST_T", true);
this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "__TEST_TEST_TEST_T", true);
}
public void testConvertUnderscoresToCamelCaseOnWriterLowercase() {
this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "test", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "test_", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "test____", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("Test", "test", true);
this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "test", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("testTest", "test_test", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("testTest", "test___test", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTest", "test_test", true);
this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTest", "test_test_test", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTest", "test_test_test", true);
this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "test_test_test_t", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "_test_test_test_t", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "__test_test_test_t", false);
this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "test_test_test_t", true);
this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "_test_test_test_t", true);
this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "__test_test_test_t", true);
}
private void verifyConvertUnderscoresToCamelCaseOnWriter(String expected, String string, boolean capitalizeFirstLetter) {
Writer writer = new StringWriter();
StringTools.convertUnderscoresToCamelCaseOn(string, capitalizeFirstLetter, writer);
assertEquals(expected, writer.toString());
}
public void testConvertUnderscoresToCamelCaseOnStringBuffer() {
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "TEST", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "TEST_", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "TEST____", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("Test", "TEST", true);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "TeST", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTest", "TEST_TEST", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTest", "TEST___TEST", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTest", "TEST_TEST", true);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTest", "TEST_TEST_TEST", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTest", "TEST_TEST_TEST", true);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "TEST_TEST_TEST_T", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "_TEST_TEST_TEST_T", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "__TEST_TEST_TEST_T", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "TEST_TEST_TEST_T", true);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "_TEST_TEST_TEST_T", true);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "__TEST_TEST_TEST_T", true);
}
public void testConvertUnderscoresToCamelCaseOnStringBufferLowercase() {
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "test", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "test_", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "test____", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("Test", "test", true);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "test", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTest", "test_test", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTest", "test___test", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTest", "test_test", true);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTest", "test_test_test", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTest", "test_test_test", true);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "test_test_test_t", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "_test_test_test_t", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "__test_test_test_t", false);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "test_test_test_t", true);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "_test_test_test_t", true);
this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "__test_test_test_t", true);
}
private void verifyConvertUnderscoresToCamelCaseOnStringBuffer(String expected, String string, boolean capitalizeFirstLetter) {
StringBuffer sb = new StringBuffer();
StringTools.convertUnderscoresToCamelCaseOn(string, capitalizeFirstLetter, sb);
assertEquals(expected, sb.toString());
}
// ********** delimiting **********
public void testStringIsQuoted() {
this.denyStringIsQuoted("foo");
this.verifyStringIsQuoted("\"foo\"");
this.denyStringIsQuoted("");
this.verifyStringIsQuoted("\"\"");
this.denyStringIsQuoted("\"");
this.denyStringIsQuoted(" ");
this.denyStringIsQuoted("''");
this.denyStringIsQuoted("'foo'");
}
private void verifyStringIsQuoted(String s) {
assertTrue(StringTools.stringIsQuoted(s));
assertTrue(StringTools.stringIsQuoted(s.toCharArray()));
}
private void denyStringIsQuoted(String s) {
assertFalse(StringTools.stringIsQuoted(s));
assertFalse(StringTools.stringIsQuoted(s.toCharArray()));
}
public void testStringIsParenthetical() {
this.denyStringIsParenthetical("foo");
this.verifyStringIsParenthetical("(foo)");
this.denyStringIsParenthetical("");
this.verifyStringIsParenthetical("()");
this.denyStringIsParenthetical("(");
this.denyStringIsParenthetical(" ");
this.denyStringIsParenthetical("''");
this.denyStringIsParenthetical("'foo'");
}
private void verifyStringIsParenthetical(String s) {
assertTrue(StringTools.stringIsParenthetical(s));
assertTrue(StringTools.stringIsParenthetical(s.toCharArray()));
}
private void denyStringIsParenthetical(String s) {
assertFalse(StringTools.stringIsParenthetical(s));
assertFalse(StringTools.stringIsParenthetical(s.toCharArray()));
}
public void testStringIsBracketed() {
this.denyStringIsBracketed("foo");
this.verifyStringIsBracketed("[foo]");
this.denyStringIsBracketed("");
this.verifyStringIsBracketed("[]");
this.denyStringIsBracketed("[");
this.denyStringIsBracketed(" ");
this.denyStringIsBracketed("''");
this.denyStringIsBracketed("'foo'");
}
private void verifyStringIsBracketed(String s) {
assertTrue(StringTools.stringIsBracketed(s));
assertTrue(StringTools.stringIsBracketed(s.toCharArray()));
}
private void denyStringIsBracketed(String s) {
assertFalse(StringTools.stringIsBracketed(s));
assertFalse(StringTools.stringIsBracketed(s.toCharArray()));
}
public void testStringIsBraced() {
this.denyStringIsBraced("foo");
this.verifyStringIsBraced("{foo}");
this.denyStringIsBraced("");
this.verifyStringIsBraced("{}");
this.denyStringIsBraced("{");
this.denyStringIsBraced(" ");
this.denyStringIsBraced("''");
this.denyStringIsBraced("'foo'");
}
private void verifyStringIsBraced(String s) {
assertTrue(StringTools.stringIsBraced(s));
assertTrue(StringTools.stringIsBraced(s.toCharArray()));
}
private void denyStringIsBraced(String s) {
assertFalse(StringTools.stringIsBraced(s));
assertFalse(StringTools.stringIsBraced(s.toCharArray()));
}
public void testStringIsChevroned() {
this.denyStringIsChevroned("foo");
this.verifyStringIsChevroned("<foo>");
this.denyStringIsChevroned("");
this.verifyStringIsChevroned("<>");
this.denyStringIsChevroned("{");
this.denyStringIsChevroned(" ");
this.denyStringIsChevroned("''");
this.denyStringIsChevroned("'foo'");
}
private void verifyStringIsChevroned(String s) {
assertTrue(StringTools.stringIsChevroned(s));
assertTrue(StringTools.stringIsChevroned(s.toCharArray()));
}
private void denyStringIsChevroned(String s) {
assertFalse(StringTools.stringIsChevroned(s));
assertFalse(StringTools.stringIsChevroned(s.toCharArray()));
}
public void testStringIsDelimited() {
this.denyStringIsDelimited("foo", '?');
this.verifyStringIsDelimited("?foo?", '?');
this.denyStringIsDelimited("", '?');
this.verifyStringIsDelimited("\"\"", '"');
this.verifyStringIsDelimited("?xx?", '?');
this.denyStringIsDelimited("?xx]", '?');
this.denyStringIsDelimited("\"", '"');
this.denyStringIsDelimited(" ", ' ');
this.denyStringIsDelimited("''", '"');
this.denyStringIsDelimited("'foo'", '?');
}
private void verifyStringIsDelimited(String s, char c) {
assertTrue(StringTools.stringIsDelimited(s, c));
assertTrue(StringTools.stringIsDelimited(s.toCharArray(), c));
}
private void denyStringIsDelimited(String s, char c) {
assertFalse(StringTools.stringIsDelimited(s, c));
assertFalse(StringTools.stringIsDelimited(s.toCharArray(), c));
}
public void testStringIsDelimited2() {
this.denyStringIsDelimited2("foo", '[', ']');
this.verifyStringIsDelimited2("{foo}", '{', '}');
this.denyStringIsDelimited2("", '[', ']');
this.verifyStringIsDelimited2("[]", '[', ']');
this.verifyStringIsDelimited2("[xx]", '[', ']');
this.denyStringIsDelimited2("?xx]", '[', ']');
this.denyStringIsDelimited2("\"", '[', ']');
this.denyStringIsDelimited2(" ", '[', ']');
this.denyStringIsDelimited2("''", '[', ']');
this.denyStringIsDelimited2("'foo'", '[', ']');
}
private void verifyStringIsDelimited2(String s, char start, char end) {
assertTrue(StringTools.stringIsDelimited(s, start, end));
assertTrue(StringTools.stringIsDelimited(s.toCharArray(), start, end));
}
private void denyStringIsDelimited2(String s, char start, char end) {
assertFalse(StringTools.stringIsDelimited(s, start, end));
assertFalse(StringTools.stringIsDelimited(s.toCharArray(), start, end));
}
// ********** undelimiting **********
public void testUndelimit() {
this.verifyUndelimit("\"foo\"", "foo");
this.verifyUndelimit("\"\"", "");
this.verifyUndelimit("'foo'", "foo");
this.verifyUndelimit("\"fo\"\"o\"", "fo\"o");
this.verifyUndelimit("\"foo\"\"\"", "foo\"");
this.verifyUndelimit("\"\"\"foo\"", "\"foo");
this.verifyUndelimit("[foo]", "foo");
this.verifyUndelimit("\"\"\"", "\"");
this.verifyUndelimit("\"foo\"bar\"", "foo\"");
this.verifyUndelimit("\"foo\"\"", "foo\"");
}
private void verifyUndelimit(String s, String expected) {
assertEquals(expected, StringTools.undelimit(s));
assertEquals(expected, StringTools.undelimit(s.toCharArray()));
}
public void testUndelimitInt() {
this.verifyUndelimitInt("\"foo\"", 2, "o");
this.verifyUndelimitInt("\"\"foo\"\"", 2, "foo");
this.verifyUndelimitInt("'foo'", 2, "o");
}
private void verifyUndelimitInt(String s, int count, String expected) {
assertEquals(expected, StringTools.undelimit(s, count));
assertEquals(expected, StringTools.undelimit(s.toCharArray(), count));
}
public void testUndelimitIntException() {
this.denyUndelimitInt("\"\"", 2);
this.denyUndelimitInt("'o'", 2);
}
private void denyUndelimitInt(String s, int count) {
boolean exCaught = false;
try {
String bogus = StringTools.undelimit(s, count);
fail("invalid string: " + bogus);
} catch (IllegalArgumentException ex) {
exCaught = true;
}
assertTrue(exCaught);
exCaught = false;
try {
char[] bogus = StringTools.undelimit(s.toCharArray(), count);
fail("invalid string: " + new String(bogus));
} catch (IllegalArgumentException ex) {
exCaught = true;
}
assertTrue(exCaught);
}
public void testUndelimitOnWriter() {
this.verifyUndelimitOnWriter("\"foo\"", "foo");
this.verifyUndelimitOnWriter("\"\"", "");
this.verifyUndelimitOnWriter("'foo'", "foo");
this.verifyUndelimitOnWriter("\"fo\"\"o\"", "fo\"o");
this.verifyUndelimitOnWriter("\"foo\"\"\"", "foo\"");
this.verifyUndelimitOnWriter("\"\"\"foo\"", "\"foo");
this.verifyUndelimitOnWriter("[foo]", "foo");
this.verifyUndelimitOnWriter("\"\"\"", "\"");
this.verifyUndelimitOnWriter("\"foo\"bar\"", "foo\"");
this.verifyUndelimitOnWriter("\"foo\"\"", "foo\"");
}
private void verifyUndelimitOnWriter(String s, String expected) {
Writer writer = new StringWriter();
StringTools.undelimitOn(s, writer);
assertEquals(expected, writer.toString());
writer = new StringWriter();
StringTools.undelimitOn(s.toCharArray(), writer);
assertEquals(expected, writer.toString());
}
public void testUndelimitOnStringBuffer() {
this.verifyUndelimitOnStringBuffer("\"foo\"", "foo");
this.verifyUndelimitOnStringBuffer("\"\"", "");
this.verifyUndelimitOnStringBuffer("'foo'", "foo");
this.verifyUndelimitOnStringBuffer("\"fo\"\"o\"", "fo\"o");
this.verifyUndelimitOnStringBuffer("\"foo\"\"\"", "foo\"");
this.verifyUndelimitOnStringBuffer("\"\"\"foo\"", "\"foo");
this.verifyUndelimitOnStringBuffer("[foo]", "foo");
this.verifyUndelimitOnStringBuffer("\"\"\"", "\"");
this.verifyUndelimitOnStringBuffer("\"foo\"bar\"", "foo\"");
this.verifyUndelimitOnStringBuffer("\"foo\"\"", "foo\"");
}
private void verifyUndelimitOnStringBuffer(String s, String expected) {
StringBuffer sb = new StringBuffer();
StringTools.undelimitOn(s, sb);
assertEquals(expected, sb.toString());
sb = new StringBuffer();
StringTools.undelimitOn(s.toCharArray(), sb);
assertEquals(expected, sb.toString());
}
public void testUndelimitOnStringBuilder() {
this.verifyUndelimitOnStringBuilder("\"foo\"", "foo");
this.verifyUndelimitOnStringBuilder("\"\"", "");
this.verifyUndelimitOnStringBuilder("'foo'", "foo");
this.verifyUndelimitOnStringBuilder("\"fo\"\"o\"", "fo\"o");
this.verifyUndelimitOnStringBuilder("\"foo\"\"\"", "foo\"");
this.verifyUndelimitOnStringBuilder("\"\"\"foo\"", "\"foo");
this.verifyUndelimitOnStringBuilder("[foo]", "foo");
this.verifyUndelimitOnStringBuilder("\"\"\"", "\"");
this.verifyUndelimitOnStringBuilder("\"foo\"bar\"", "foo\"");
this.verifyUndelimitOnStringBuilder("\"foo\"\"", "foo\"");
}
private void verifyUndelimitOnStringBuilder(String s, String expected) {
StringBuilder sb = new StringBuilder();
StringTools.undelimitOn(s, sb);
assertEquals(expected, sb.toString());
sb = new StringBuilder();
StringTools.undelimitOn(s.toCharArray(), sb);
assertEquals(expected, sb.toString());
}
public void testUndelimitOnWriterCount() {
this.verifyUndelimitOnWriterCount("\"foo\"", 2, "o");
this.verifyUndelimitOnWriterCount("\"\"\"\"", 2, "");
this.verifyUndelimitOnWriterCount("XXfooXX", 2, "foo");
}
private void verifyUndelimitOnWriterCount(String s, int count, String expected) {
Writer writer = new StringWriter();
StringTools.undelimitOn(s, count, writer);
assertEquals(expected, writer.toString());
writer = new StringWriter();
StringTools.undelimitOn(s.toCharArray(), count, writer);
assertEquals(expected, writer.toString());
}
public void testUndelimitOnStringBufferCount() {
this.verifyUndelimitOnStringBufferCount("\"foo\"", 2, "o");
this.verifyUndelimitOnStringBufferCount("\"\"\"\"", 2, "");
this.verifyUndelimitOnStringBufferCount("XXfooXX", 2, "foo");
}
private void verifyUndelimitOnStringBufferCount(String s, int count, String expected) {
StringBuffer sb = new StringBuffer();
StringTools.undelimitOn(s, count, sb);
assertEquals(expected, sb.toString());
sb = new StringBuffer();
StringTools.undelimitOn(s.toCharArray(), count, sb);
assertEquals(expected, sb.toString());
}
public void testUndelimitOnStringBuilderCount() {
this.verifyUndelimitOnStringBuilderCount("\"foo\"", 2, "o");
this.verifyUndelimitOnStringBuilderCount("\"\"\"\"", 2, "");
this.verifyUndelimitOnStringBuilderCount("XXfooXX", 2, "foo");
}
private void verifyUndelimitOnStringBuilderCount(String s, int count, String expected) {
StringBuilder sb = new StringBuilder();
StringTools.undelimitOn(s, count, sb);
assertEquals(expected, sb.toString());
sb = new StringBuilder();
StringTools.undelimitOn(s.toCharArray(), count, sb);
assertEquals(expected, sb.toString());
}
// ********** converting to Java string literal **********
public void testConvertToJavaStringLiteral() {
this.verifyConvertToJavaStringLiteral("", "\"\"");
this.verifyConvertToJavaStringLiteral("\"\"", "\"\\\"\\\"\"");
this.verifyConvertToJavaStringLiteral("'foo'", "\"'foo'\"");
this.verifyConvertToJavaStringLiteral("foo\bbar", "\"foo\\bbar\"");
this.verifyConvertToJavaStringLiteral("foo\n\tbar", "\"foo\\n\\tbar\"");
this.verifyConvertToJavaStringLiteral("foo\"bar", "\"foo\\\"bar\"");
this.verifyConvertToJavaStringLiteral("foo\\bar", "\"foo\\\\bar\"");
}
private void verifyConvertToJavaStringLiteral(String s, String expected) {
assertEquals(expected, StringTools.convertToJavaStringLiteral(s));
assertEquals(expected, StringTools.convertToJavaStringLiteral(s.toCharArray()));
}
public void testConvertToJavaStringLiteralOnStringBuffer() {
this.verifyConvertToJavaStringLiteralOnStringBuffer("", "\"\"");
this.verifyConvertToJavaStringLiteralOnStringBuffer("\"\"", "\"\\\"\\\"\"");
this.verifyConvertToJavaStringLiteralOnStringBuffer("'foo'", "\"'foo'\"");
this.verifyConvertToJavaStringLiteralOnStringBuffer("foo\bbar", "\"foo\\bbar\"");
this.verifyConvertToJavaStringLiteralOnStringBuffer("foo\n\tbar", "\"foo\\n\\tbar\"");
this.verifyConvertToJavaStringLiteralOnStringBuffer("foo\"bar", "\"foo\\\"bar\"");
this.verifyConvertToJavaStringLiteralOnStringBuffer("foo\\bar", "\"foo\\\\bar\"");
}
private void verifyConvertToJavaStringLiteralOnStringBuffer(String s, String expected) {
StringBuffer sb = new StringBuffer();
StringTools.convertToJavaStringLiteralOn(s, sb);
assertEquals(expected, sb.toString());
sb = new StringBuffer();
StringTools.convertToJavaStringLiteralOn(s.toCharArray(), sb);
assertEquals(expected, sb.toString());
}
public void testConvertToJavaStringLiteralOnStringBuilder() {
this.verifyConvertToJavaStringLiteralOnStringBuilder("", "\"\"");
this.verifyConvertToJavaStringLiteralOnStringBuilder("\"\"", "\"\\\"\\\"\"");
this.verifyConvertToJavaStringLiteralOnStringBuilder("'foo'", "\"'foo'\"");
this.verifyConvertToJavaStringLiteralOnStringBuilder("foo\bbar", "\"foo\\bbar\"");
this.verifyConvertToJavaStringLiteralOnStringBuilder("foo\n\tbar", "\"foo\\n\\tbar\"");
this.verifyConvertToJavaStringLiteralOnStringBuilder("foo\"bar", "\"foo\\\"bar\"");
this.verifyConvertToJavaStringLiteralOnStringBuilder("foo\\bar", "\"foo\\\\bar\"");
}
private void verifyConvertToJavaStringLiteralOnStringBuilder(String s, String expected) {
StringBuilder sb = new StringBuilder();
StringTools.convertToJavaStringLiteralOn(s, sb);
assertEquals(expected, sb.toString());
sb = new StringBuilder();
StringTools.convertToJavaStringLiteralOn(s.toCharArray(), sb);
assertEquals(expected, sb.toString());
}
public void testConvertToJavaStringLiteralOnWriter() {
this.verifyConvertToJavaStringLiteralOnWriter("", "\"\"");
this.verifyConvertToJavaStringLiteralOnWriter("\"\"", "\"\\\"\\\"\"");
this.verifyConvertToJavaStringLiteralOnWriter("'foo'", "\"'foo'\"");
this.verifyConvertToJavaStringLiteralOnWriter("foo\bbar", "\"foo\\bbar\"");
this.verifyConvertToJavaStringLiteralOnWriter("foo\n\tbar", "\"foo\\n\\tbar\"");
this.verifyConvertToJavaStringLiteralOnWriter("foo\"bar", "\"foo\\\"bar\"");
this.verifyConvertToJavaStringLiteralOnWriter("foo\\bar", "\"foo\\\\bar\"");
}
private void verifyConvertToJavaStringLiteralOnWriter(String s, String expected) {
Writer writer = new StringWriter();
StringTools.convertToJavaStringLiteralOn(s, writer);
assertEquals(expected, writer.toString());
writer = new StringWriter();
StringTools.convertToJavaStringLiteralOn(s.toCharArray(), writer);
assertEquals(expected, writer.toString());
}
}