blob: d5a547bb9b33a519f0e3d40dddc620551486033c [file] [log] [blame]
/**
* 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.apache.aries.cdi.container.internal.model;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.apache.aries.cdi.container.internal.util.Maps;
import org.junit.Test;
public class MapsTest {
@Test
public void testSingleRawStringConversion() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo=bar"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals("bar", entry.getValue());
}
@Test
public void testSingleStringConversion() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:String=bar"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals("bar", entry.getValue());
}
@Test
public void testSingleListStringConversion() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:List<String>=bar"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals(Collections.singletonList("bar"), entry.getValue());
}
@Test
public void testSingleSetStringConversion() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Set<String>=bar"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals(Collections.singleton("bar"), entry.getValue());
}
@Test
public void testRawStringArrayConversion() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo=bar", "foo=baz"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertArrayEquals(new String[] {"bar", "baz"}, (String[])entry.getValue());
}
@Test
public void testRawStringArrayConversion2() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo=bar", "foo=baz", "foo=fee"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertArrayEquals(new String[] {"bar", "baz", "fee"}, (String[])entry.getValue());
}
@Test
public void testStringArrayConversion() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:String=bar", "foo:String=baz"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertArrayEquals(new String[] {"bar", "baz"}, (String[])entry.getValue());
}
@Test
public void testStringArrayConversion2() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:String=bar", "foo:String=baz", "foo:String=fee"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertArrayEquals(new String[] {"bar", "baz", "fee"}, (String[])entry.getValue());
}
@Test
public void testListStringConversion() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:List<String>=bar", "foo:List<String>=baz"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals(Arrays.asList("bar", "baz"), entry.getValue());
}
@Test
public void testListStringConversion2() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:List<String>=bar", "foo:List<String>=baz", "foo:List<String>=fee"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals(Arrays.asList("bar", "baz", "fee"), entry.getValue());
}
@Test
public void testSetStringConversion() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Set<String>=bar", "foo:Set<String>=baz"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals(new HashSet<String>(Arrays.asList("bar", "baz")), entry.getValue());
}
@Test
public void testSetStringConversion2() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Set<String>=bar", "foo:Set<String>=baz", "foo:Set<String>=fee"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals(new HashSet<String>(Arrays.asList("bar", "baz", "fee")), entry.getValue());
}
@Test
public void testSingleBooleanConversion() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Boolean=bar"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals(false, entry.getValue());
}
@Test
public void testSingleBooleanConversion2() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Boolean=true"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals(true, entry.getValue());
}
@Test
public void testSingleBooleanConversion3() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Boolean=0"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals(false, entry.getValue());
}
@Test
public void testArrayBooleanConversion() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Boolean=bar", "foo:Boolean=false", "foo:Boolean=true"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertArrayEquals(new Boolean[] {false, false, true}, (Boolean[])entry.getValue());
}
@Test
public void testListBooleanConversion() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:List<Boolean>=true", "foo:List<Boolean>=bar", "foo:List<Boolean>=false"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals(Arrays.asList(true, false, false), entry.getValue());
}
@Test
public void testSetBooleanConversion() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Set<Boolean>=0", "foo:Set<Boolean>=true", "foo:Set<Boolean>=false"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals(new HashSet<Boolean>(Arrays.asList(false, true)), entry.getValue());
}
@Test
public void testSingleByteConversion() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Byte=1"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals(new Byte("1"), entry.getValue());
}
@Test
public void testSingleByteConversion2() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Byte=126"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals(new Byte("126"), entry.getValue());
}
@Test
public void testArrayByteConversion() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Byte=1", "foo:Byte=96"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertArrayEquals(new Byte[] {new Byte("1"), new Byte("96")}, (Byte[])entry.getValue());
}
@Test
public void testListByteConversion() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:List<Byte>=126", "foo:List<Byte>=91"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals(Arrays.asList(new Byte("126"), new Byte("91")), entry.getValue());
}
@Test
public void testSetByteConversion() throws Exception {
Set<Entry<String,Object>> set = Maps.map(new String[] {"foo:Set<Byte>=126", "foo:Set<Byte>=91", "foo:Set<Byte>=91"}).entrySet();
Entry<String, Object> entry = set.iterator().next();
assertEquals("foo", entry.getKey());
assertEquals(new HashSet<Byte>(Arrays.asList(new Byte("126"), new Byte("91"))), entry.getValue());
}
@Test
public void testMixedConversion() throws Exception {
Map<String,Object> map = Maps.map(
new String[] {
"foo:Set<Byte>=126", "foo:Set<Byte>=91", "foo:Set<Byte>=91",
"fum=blaz", "fee:List<Double>=91.8765", "fee:List<Double>=34567.8965"});
assertEquals(3, map.size());
assertTrue(map.containsKey("foo"));
assertTrue(map.containsKey("fum"));
assertTrue(map.containsKey("fee"));
assertTrue(map.get("foo") instanceof Set);
assertTrue(map.get("fum") instanceof String);
assertTrue(map.get("fee") instanceof List);
assertEquals(2, ((Set)map.get("foo")).size());
assertEquals("blaz", map.get("fum"));
assertEquals(2, ((List)map.get("fee")).size());
}
}