/*******************************************************************************
* Copyright (c) 2007, 2014 compeople AG and others.
* 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:
* compeople AG - initial API and implementation
*******************************************************************************/
package org.eclipse.riena.core.util;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import junit.framework.TestCase;
import org.eclipse.riena.beans.common.Person;
import org.eclipse.riena.core.test.collect.NonUITestCase;
/**
* Nomen est omen!
*/
@NonUITestCase
public class StringUtilsTest extends TestCase {
/**
* Nomen est omen!
*/
public void testIsEmpty() {
assertTrue(StringUtils.isEmpty(null));
assertTrue(StringUtils.isEmpty(""));
assertFalse(StringUtils.isEmpty(" "));
assertFalse(StringUtils.isEmpty(" a "));
}
/**
* Nomen est omen!
*/
public void testIsGiven() {
assertFalse(StringUtils.isGiven(null));
assertFalse(StringUtils.isGiven(""));
assertTrue(StringUtils.isGiven(" "));
assertTrue(StringUtils.isGiven(" a "));
}
/**
* Nomen est omen!
*/
public void testIsDeepEmpty() {
assertTrue(StringUtils.isDeepEmpty(null));
assertTrue(StringUtils.isDeepEmpty(""));
assertTrue(StringUtils.isDeepEmpty(" "));
assertFalse(StringUtils.isDeepEmpty(" a "));
}
/**
* Nomen est omen!
*/
public void testEquals() {
assertTrue(StringUtils.equals(null, null));
assertFalse(StringUtils.equals(null, ""));
assertFalse(StringUtils.equals("", null));
final String c = "c";
assertTrue(StringUtils.equals(c, c));
assertTrue(StringUtils.equals("c", "c"));
assertFalse(StringUtils.equals(null, "a"));
assertFalse(StringUtils.equals("a", null));
assertFalse(StringUtils.equals("b", "a"));
assertFalse(StringUtils.equals("a", "b"));
}
/**
* Minima maxima sunt!
*/
public void testCount() {
assertEquals(1, StringUtils.count("abb", 'a'));
assertEquals(1, StringUtils.count("bba", 'a'));
assertEquals(1, StringUtils.count("bab", 'a'));
assertEquals(3, StringUtils.count("aaa", 'a'));
assertEquals(0, StringUtils.count("", 'a'));
assertEquals(0, StringUtils.count(null, 'a'));
assertEquals(0, StringUtils.count("bcd", 'a'));
}
/**
* In experior veritas!
*/
public void testCapitalize() {
assertEquals(null, StringUtils.capitalize(null));
assertEquals("", StringUtils.capitalize(""));
assertEquals("!a", StringUtils.capitalize("!a"));
assertEquals("A", StringUtils.capitalize("A"));
assertEquals("A", StringUtils.capitalize("a"));
assertEquals("Veritas", StringUtils.capitalize("veritas"));
}
public void testJoinNull() {
assertEquals("", StringUtils.join(null, "-"));
}
public void testJoinEmpty() {
assertEquals("", StringUtils.join(Iter.able(new Object[0]), "-"));
}
public void testJoinOne() {
assertEquals("one", StringUtils.join(Iter.able(new Object[] { "one" }), "-"));
}
public void testJoinTwo() {
assertEquals("one-two", StringUtils.join(Iter.able(new Object[] { "one", "two" }), "-"));
}
public void testJoinFourMorePersons() {
final int numberOfPersons = 4;
final String separator = "%";
final List<Person> persons = new LinkedList<Person>();
final List<String> pToString = new LinkedList<String>();
for (int i = 0; i < numberOfPersons; i++) {
final String pref = String.valueOf(i);
final Person person = new Person(pref + "last", pref + "firstname");
persons.add(person);
pToString.add(person.toString());
}
final String joined = StringUtils.join(persons, separator);
assertFalse(joined.startsWith(separator));
final String[] split = joined.split(separator);
assertEquals(4, split.length);
assertEquals(joined.length() - 1 - persons.get(numberOfPersons - 1).toString().length(),
joined.lastIndexOf(separator));
}
public void testSplit() {
assertEquals(Collections.EMPTY_LIST, StringUtils.split(null, ','));
assertEquals(Literal.list(""), StringUtils.split("", ','));
assertEquals(Literal.list("1"), StringUtils.split("1", ','));
assertEquals(Literal.list("1").list("2"), StringUtils.split("1,2", ','));
assertEquals(Literal.list("1").list("2").list(""), StringUtils.split("1,2,", ','));
}
}