/*******************************************************************************
* 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.Hashtable;
import java.util.Map;
import org.eclipse.riena.core.test.RienaTestCase;
import org.eclipse.riena.core.test.collect.NonUITestCase;
/**
* Test stuff from {@code PropertiesUtils}.
*/
@NonUITestCase
public class PropertiesUtilsTest extends RienaTestCase {
public void testAsMapNullString() {
final Map<String, String> map = PropertiesUtils.asMap(null);
assertEquals(0, map.size());
}
public void testAsMapWithHashtable() {
final Hashtable<String, String> hashtable = new Hashtable<String, String>();
hashtable.put("a", "1");
hashtable.put("b", "2");
final Map<String, String> map = PropertiesUtils.asMap(hashtable);
assertEquals(2, map.size());
assertEquals("1", map.get("a"));
assertEquals("2", map.get("b"));
}
public void testAsMapWithHashtableWithExpectation() {
final Hashtable<String, String> hashtable = new Hashtable<String, String>();
hashtable.put("a", "1");
hashtable.put("b", "2");
final Map<String, String> map = PropertiesUtils.asMap(hashtable, "a", "b");
assertEquals(2, map.size());
assertEquals("1", map.get("a"));
assertEquals("2", map.get("b"));
}
public void testAsMapEmptyString() {
final Map<String, String> map = PropertiesUtils.asMap("");
assertEquals(0, map.size());
}
public void testAsMap() {
final Map<String, String> map = PropertiesUtils.asMap("a=1;b=2");
assertEquals(2, map.size());
assertEquals("1", map.get("a"));
assertEquals("2", map.get("b"));
}
public void testAsMapWithExpectationFullfill() {
final Map<String, String> map = PropertiesUtils.asMap("a=1;b=2", "a", "b");
assertEquals("1", map.get("a"));
assertEquals("2", map.get("b"));
}
public void testAsMapWithExpectationFails() {
try {
PropertiesUtils.asMap("a=1;b=2", "a", "c");
fail();
} catch (final IllegalArgumentException e) {
ok();
}
}
public void testAsMapIgnoreWhitespace() {
final Map<String, String> map = PropertiesUtils.asMap(" a= 1 ; b = 2 ");
assertEquals("1", map.get("a"));
assertEquals("2", map.get("b"));
}
public void testAsMapFailMissingEquals() {
try {
PropertiesUtils.asMap(" a: 1 ; b = 2 ");
fail();
} catch (final IllegalArgumentException e) {
ok();
}
}
public void testAsMapWithDefaults() {
final Map<String, String> map = PropertiesUtils.asMap("a=5", Literal.map("a", "1").map("b", "2").map("c", "3"));
assertEquals(3, map.size());
assertEquals("5", map.get("a"));
assertEquals("2", map.get("b"));
assertEquals("3", map.get("c"));
}
public void testAsMapWithDefaultsAndNoData() {
final Map<String, String> map = PropertiesUtils.asMap(null, Literal.map("a", "1").map("b", "2").map("c", "3"));
assertEquals(3, map.size());
assertEquals("1", map.get("a"));
assertEquals("2", map.get("b"));
assertEquals("3", map.get("c"));
}
public void testAsArrayEmpty() {
assertEquals(0, PropertiesUtils.asArray("").length);
assertEquals(0, PropertiesUtils.asArray(null).length);
}
public void testAsArrayWithContent() {
final String[] actual = PropertiesUtils.asArray("a,b,c");
assertEquals(3, actual.length);
assertEquals("a", actual[0]);
assertEquals("b", actual[1]);
assertEquals("c", actual[2]);
}
public void testAsArrayWithContentPlusFinalComma() {
final String[] actual = PropertiesUtils.asArray("a,");
assertEquals(2, actual.length);
assertEquals("a", actual[0]);
assertEquals("", actual[1]);
}
public void testAsArrayWithEmptyContentWithinCommas() {
final String[] actual = PropertiesUtils.asArray("a,b,,c");
assertEquals(4, actual.length);
assertEquals("a", actual[0]);
assertEquals("b", actual[1]);
assertEquals("", actual[2]);
assertEquals("c", actual[3]);
}
public void testAsArrayWithOnlyEmptyContentWithinCommas() {
final String[] actual = PropertiesUtils.asArray(",,,");
assertEquals(4, actual.length);
assertEquals("", actual[0]);
assertEquals("", actual[1]);
assertEquals("", actual[2]);
assertEquals("", actual[3]);
}
public void testAsArrayWithOnlyOneComma() {
final String[] actual = PropertiesUtils.asArray(",");
assertEquals(2, actual.length);
assertEquals("", actual[0]);
assertEquals("", actual[1]);
}
public void testAsArrayWithBackslashComma() {
final String[] actual = PropertiesUtils.asArray("1,2\\,3,4");
assertEquals(3, actual.length);
assertEquals("1", actual[0]);
assertEquals("2,3", actual[1]);
assertEquals("4", actual[2]);
}
public void testAsArrayWithBackslashBackSlashComma() {
final String[] actual = PropertiesUtils.asArray("1,2\\,3,\\\\,4");
assertEquals(4, actual.length);
assertEquals("1", actual[0]);
assertEquals("2,3", actual[1]);
assertEquals("\\", actual[2]);
assertEquals("4", actual[3]);
}
public void testAsArrayWithUnknownEscapeCharacter() {
try {
PropertiesUtils.asArray("1,2\\n,3,\\\\,4");
fail();
} catch (final IllegalArgumentException e) {
ok();
}
}
}