/*
* Copyright 2008-2014 the original author or authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.kaleidofoundry.core.util;
import static org.kaleidofoundry.core.util.CollectionsHelper.argsToMap;
import static org.kaleidofoundry.core.util.CollectionsHelper.arrayToString;
import static org.kaleidofoundry.core.util.CollectionsHelper.collectionToString;
import static org.kaleidofoundry.core.util.CollectionsHelper.stringToArray;
import static org.kaleidofoundry.core.util.CollectionsHelper.stringToCollection;
import static org.kaleidofoundry.core.util.CollectionsHelper.stringToSet;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import junit.framework.Assert;
import org.junit.Test;
/**
* @author jraduget
*/
public class CollectionsHelperTest extends Assert {
@Test
public void testArgsToMap() {
assertNull(argsToMap(null));
Map<String, String> map = argsToMap(new String[] { "app.version=1.0.0", "app.name=foo" });
assertNotNull(map);
assertFalse(map.isEmpty());
assertTrue(map.keySet().size() == 2);
assertTrue(map.values().size() == 2);
assertTrue(map.keySet().contains("app.version"));
assertTrue(map.keySet().contains("app.name"));
assertEquals("1.0.0", map.get("app.version"));
assertEquals("foo", map.get("app.name"));
}
@Test
public void testArgsToMapWithDelim() {
assertNull(argsToMap(null, null));
assertNull(argsToMap(null, ";"));
Map<String, String> map = argsToMap(new String[] { "app.version->1.0.0", "app.name->foo" }, "->");
assertNotNull(map);
assertFalse(map.isEmpty());
assertTrue(map.keySet().size() == 2);
assertTrue(map.values().size() == 2);
assertTrue(map.keySet().contains("app.version"));
assertTrue(map.keySet().contains("app.name"));
assertEquals("1.0.0", map.get("app.version"));
assertEquals("foo", map.get("app.name"));
}
@Test
public void testArrayToString() {
assertNull(arrayToString(null, null));
assertNull(arrayToString(null, ";"));
String result;
result = arrayToString(new String[] { "a", "bb", "ccc" }, ";");
assertNotNull(result);
assertEquals("a;bb;ccc", result);
result = arrayToString(new String[] { "a", "", "ccc" }, ";");
assertNotNull(result);
assertEquals("a;;ccc", result);
result = arrayToString(new String[] { "a", "bb", "" }, ";");
assertNotNull(result);
assertEquals("a;bb;", result);
result = arrayToString(new String[] { "", "bb", "ccc" }, ";");
assertNotNull(result);
assertEquals(";bb;ccc", result);
}
@Test
public void testCollectionToString() {
assertNull(collectionToString(null, null));
assertNull(collectionToString(null, ";"));
String result;
result = collectionToString(Arrays.asList(new String[] { "a", "bb", "ccc" }), ";");
assertNotNull(result);
assertEquals("a;bb;ccc", result);
result = collectionToString(Arrays.asList(new String[] { "a", "", "ccc" }), ";");
assertNotNull(result);
assertEquals("a;;ccc", result);
result = collectionToString(Arrays.asList(new String[] { "a", "bb", "" }), ";");
assertNotNull(result);
assertEquals("a;bb;", result);
result = collectionToString(Arrays.asList(new String[] { "", "bb", "ccc" }), ";");
assertNotNull(result);
assertEquals(";bb;ccc", result);
}
@Test
public void testStringToArray() {
assertNull(stringToArray(null, null));
assertNull(stringToArray(null, ";"));
String[] results;
results = stringToArray("a;bb;ccc", ";");
assertNotNull(results);
assertEquals(3, results.length);
assertEquals("a", results[0]);
assertEquals("bb", results[1]);
assertEquals("ccc", results[2]);
results = stringToArray("a;;ccc", ";");
assertNotNull(results);
assertEquals(2, results.length);
assertEquals("a", results[0]);
assertEquals("ccc", results[1]);
results = stringToArray("a;bb;", ";");
assertNotNull(results);
assertEquals(2, results.length);
assertEquals("a", results[0]);
assertEquals("bb", results[1]);
results = stringToArray(";bb;ccc", ";");
assertNotNull(results);
assertEquals(2, results.length);
assertEquals("bb", results[0]);
assertEquals("ccc", results[1]);
}
@Test
public void testStringToCollection() {
assertNull(stringToCollection(null, null));
assertNull(stringToCollection(null, ";"));
List<String> results;
results = stringToCollection("a;bb;ccc", ";");
assertNotNull(results);
assertEquals(3, results.size());
assertEquals("a", results.get(0));
assertEquals("bb", results.get(1));
assertEquals("ccc", results.get(2));
results = stringToCollection("a;;ccc", ";");
assertNotNull(results);
assertEquals(2, results.size());
assertEquals("a", results.get(0));
assertEquals("ccc", results.get(1));
results = stringToCollection("a;bb;", ";");
assertNotNull(results);
assertEquals(2, results.size());
assertEquals("a", results.get(0));
assertEquals("bb", results.get(1));
results = stringToCollection(";bb;ccc", ";");
assertNotNull(results);
assertEquals(2, results.size());
assertEquals("bb", results.get(0));
assertEquals("ccc", results.get(1));
}
@Test
public void testStringToSet() {
assertNull(stringToSet(null, null));
assertNull(stringToSet(null, ";"));
Set<String> results;
results = stringToSet("a;a;ccc", ";");
assertNotNull(results);
assertEquals(2, results.size());
Iterator<String> itValues = results.iterator();
assertEquals("a", itValues.next());
assertEquals("ccc", itValues.next());
}
}