/*
* (C) Copyright 2007 Nuxeo SAS (http://nuxeo.com/) and contributors.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser General Public License
* (LGPL) version 2.1 which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/lgpl.html
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* Contributors:
* Nuxeo - initial API and implementation
*
* $Id: TestStringUtils.java 27204 2007-11-14 19:14:10Z gracinet $
*/
package org.nuxeo.common.utils;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import junit.framework.TestCase;
/**
* @author <a href="mailto:at@nuxeo.com">Anahide Tchertchian</a>
*/
public class TestStringUtils extends TestCase {
public void testToAscii() throws UnsupportedEncodingException {
String s = "h\u00E9h\u00E9";
assertEquals("hehe", StringUtils.toAscii(s));
}
public void testSplit() {
String str;
String[] ar;
str = ",a ,,, b";
ar = StringUtils.split(str, ',', false);
assertTrue(Arrays.equals(new String[] { "", "a ", "", "", " b" }, ar));
ar = StringUtils.split(str, ',', true);
assertTrue(Arrays.equals(new String[] { "", "a", "", "", "b" }, ar));
str = "a , b, c,\n d";
ar = StringUtils.split(str, ',', false);
assertTrue(Arrays.equals(new String[] { "a ", " b", " c", "\n d" }, ar));
ar = StringUtils.split(str, ',', true);
assertTrue(Arrays.equals(new String[] { "a", "b", "c", "d" }, ar));
str = "a , b, c, d,";
ar = StringUtils.split(str, ',', false);
assertTrue(Arrays.equals(new String[] { "a ", " b", " c", " d", "" }, ar));
ar = StringUtils.split(str, ',', true);
assertTrue(Arrays.equals(new String[] { "a", "b", "c", "d", "" }, ar));
str = " , , a , b, c, d , , ";
ar = StringUtils.split(str, ',', false);
assertTrue(Arrays.equals(
new String[] { " ", " ", " a ", " b", " c", " d ", " ", " " }, ar));
ar = StringUtils.split(str, ',', true);
assertTrue(Arrays.equals(
new String[] { "", "", "a", "b", "c", "d", "", "" }, ar));
}
public void testJoin() {
String[] ar;
// String[]
assertNull(StringUtils.join((String[]) null, "()"));
assertNull(StringUtils.join((String[]) null, ','));
assertNull(StringUtils.join((String[]) null, null));
assertNull(StringUtils.join((String[]) null));
assertEquals("", StringUtils.join(new String[0]));
ar = new String[] { "a", "b", "", "c", null, "d"};
assertEquals("a()b()()c()()d", StringUtils.join(ar, "()"));
assertEquals("abcd", StringUtils.join(ar, null));
assertEquals("abcd", StringUtils.join(ar));
// List<String>
assertNull(StringUtils.join((List<String>) null, null));
assertNull(StringUtils.join((List<String>) null, "()"));
assertNull(StringUtils.join((List<String>) null, ','));
assertNull(StringUtils.join((List<String>) null));
List<String> li = new LinkedList<String>();
assertEquals("", StringUtils.join(li, "()"));
assertEquals("", StringUtils.join(li, ','));
assertEquals("", StringUtils.join(li));
li.add("a");
li.add("b");
li.add("");
li.add("c");
li.add(null);
li.add("d");
assertEquals("a()b()()c()()d", StringUtils.join(li, "()"));
assertEquals("a,b,,c,,d", StringUtils.join(li, ','));
assertEquals("abcd", StringUtils.join(li, null));
assertEquals("abcd", StringUtils.join(li));
}
public void testTodHex() {
assertEquals("", StringUtils.toHex(""));
assertEquals("746F746F", StringUtils.toHex("toto"));
}
}