/* * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */ package org.mule.runtime.core.util; import org.mule.tck.junit4.AbstractMuleTestCase; import org.mule.tck.size.SmallTest; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.collections.map.CaseInsensitiveMap; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @SmallTest public class MapUtilsTestCase extends AbstractMuleTestCase { @Test public void testMapCreationNullClass() { try { MapUtils.mapWithKeysAndValues(null, (String[]) null, (String[]) null); fail(); } catch (IllegalArgumentException ex) { // expected } } @Test public void testMapCreationWithoutElements() { Map m = MapUtils.mapWithKeysAndValues(HashMap.class, (List) null, (List) null); assertTrue(m.isEmpty()); } @Test public void testCaseInsensitiveMapCreation() { List strings = Arrays.asList(new String[] {"foo"}); Map m = MapUtils.mapWithKeysAndValues(CaseInsensitiveMap.class, strings.iterator(), strings.iterator()); assertEquals("foo", m.get("foo")); assertEquals("foo", m.get("Foo")); assertEquals("foo", m.get("FOO")); } @Test public void testToStringNull() throws Exception { Map props = null; assertEquals("{}", MapUtils.toString(props, false)); assertEquals("{}", MapUtils.toString(props, true)); } @Test public void testToStringEmpty() throws Exception { Map props = new HashMap(); assertEquals("{}", MapUtils.toString(props, false)); assertEquals("{}", MapUtils.toString(props, true)); } @Test public void testToStringSingleElement() throws Exception { Map props = MapUtils.mapWithKeysAndValues(HashMap.class, new Object[] {"foo"}, new Object[] {"bar"}); assertEquals("{foo=bar}", MapUtils.toString(props, false)); assertEquals("{" + SystemUtils.LINE_SEPARATOR + "foo=bar" + SystemUtils.LINE_SEPARATOR + "}", MapUtils.toString(props, true)); } @Test public void testToStringMultipleElements() throws Exception { Map props = MapUtils.mapWithKeysAndValues(HashMap.class, new Object[] {"foo", "foozle"}, new Object[] {"bar", "doozle"}); String result = MapUtils.toString(props, false); assertTrue(result.indexOf("foo=bar") != -1); assertTrue(result.indexOf("foozle=doozle") != -1); result = MapUtils.toString(props, true); assertTrue(result.startsWith("{" + SystemUtils.LINE_SEPARATOR)); assertTrue(result.indexOf("foo=bar") != -1); assertTrue(result.indexOf("foozle=doozle") != -1); assertTrue(result.endsWith(SystemUtils.LINE_SEPARATOR + "}")); } }