/**
*
*/
package com.sap.furcas.runtime.common.exceptions;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry;
import org.junit.Test;
import com.sap.furcas.runtime.common.util.KeyToListMap;
/**
*
*/
public class TestKeyToListMap {
@Test
public void testKeyToListMap() throws Exception {
Integer val1 = new Integer(1);
Integer val2 = new Integer(2);
Integer val3 = new Integer(3);
Integer val4 = new Integer(4);
Integer val5 = new Integer(5);
Integer val6 = new Integer(6);
KeyToListMap<String, Integer> string2IntList = new KeyToListMap<String, Integer>();
string2IntList.put("key1", val1);
string2IntList.put("key1", val2);
string2IntList.put("key1", val3);
string2IntList.put("key2", val4);
string2IntList.put("key2", val5);
string2IntList.put("key3", val6);
Iterator<Entry<String, List<Integer>>> it = string2IntList.entryIterator();
boolean set1found = false;
boolean set2found = false;
boolean set3found = false;
for (int i = 0; i < 3; i++) {
Entry<String, List<Integer>> result = it.next();
assertNotNull(result);
if (result.getKey().equals("key1")) {
set1found = true;
List<Integer> list = result.getValue();
assertNotNull(list);
assertEquals(3, list.size());
assertTrue(list.contains(val1));
assertTrue(list.contains(val2));
assertTrue(list.contains(val3));
} else if (result.getKey().equals("key2")) {
set2found = true;
List<Integer> list = result.getValue();
assertNotNull(list);
assertEquals(2, list.size());
assertTrue(list.contains(val4));
assertTrue(list.contains(val5));
} else if (result.getKey().equals("key3")) {
set3found = true;
List<Integer> list = result.getValue();
assertNotNull(list);
assertEquals(1, list.size());
assertTrue(list.contains(val6));
} else {
fail("Map contains element that it should not: " + result);
}
}
}
}