public void testTransformedMap() {
Object[] els = new Object[] {"1", "3", "5", "7", "2", "4", "6"};
Map map = TransformedSortedMap.decorate(new TreeMap(), TestTransformedCollection.STRING_TO_INTEGER_TRANSFORMER, null);
assertEquals(0, map.size());
for (int i = 0; i < els.length; i++) {
map.put(els[i], els[i]);
assertEquals(i + 1, map.size());
assertEquals(true, map.containsKey(new Integer((String) els[i])));
try {
map.containsKey(els[i]);
fail();
} catch (ClassCastException ex) {}
assertEquals(true, map.containsValue(els[i]));
assertEquals(els[i], map.get(new Integer((String) els[i])));
}
try {
map.remove(els[0]);
fail();
} catch (ClassCastException ex) {}
assertEquals(els[0], map.remove(new Integer((String) els[0])));
map = TransformedSortedMap.decorate(new TreeMap(), null, TestTransformedCollection.STRING_TO_INTEGER_TRANSFORMER);
assertEquals(0, map.size());
for (int i = 0; i < els.length; i++) {
map.put(els[i], els[i]);
assertEquals(i + 1, map.size());
assertEquals(true, map.containsValue(new Integer((String) els[i])));
assertEquals(false, map.containsValue(els[i]));
assertEquals(true, map.containsKey(els[i]));
assertEquals(new Integer((String) els[i]), map.get(els[i]));
}
assertEquals(new Integer((String) els[0]), map.remove(els[0]));
Set entrySet = map.entrySet();
Map.Entry[] array = (Map.Entry[]) entrySet.toArray(new Map.Entry[0]);
array[0].setValue("66");
assertEquals(new Integer(66), array[0].getValue());
assertEquals(new Integer(66), map.get(array[0].getKey()));
Map.Entry entry = (Map.Entry) entrySet.iterator().next();
entry.setValue("88");
assertEquals(new Integer(88), entry.getValue());
assertEquals(new Integer(88), map.get(entry.getKey()));
}
|