package com.orbitz.monitoring.lib.decomposer; import junit.framework.TestCase; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.IdentityHashMap; /** * Unit test for <code>MapDecomposer</code>. * * <p>(c) 2000-04 Orbitz, LLC. All Rights Reserved. * * @author Doug Barth */ public class MapDecomposerTest extends TestCase { // ** PRIVATE DATA ******************************************************** private MapDecomposer _decomposer; private MockDecomposerStep _delegate; // ** TEST SUITE METHODS ************************************************** protected void setUp() throws Exception { super.setUp(); _delegate = new MockDecomposerStep(); _decomposer = new MapDecomposer(_delegate); } // ** TEST METHODS ******************************************************** public void testNullObject() { assertNull(_decomposer.decompose(null, new IdentityHashMap())); } public void testDecompose() { Map original = new HashMap(); original.put("foo", "bar"); original.put("baz", null); original.put("exception", new Exception()); Map decomposed = (Map) _decomposer.decompose(original, new IdentityHashMap()); assertEquals(original.size(), decomposed.size()); List decomposedObjects = _delegate.getDecomposedObjects(); for (Iterator i = original.entrySet().iterator(); i.hasNext();) { Map.Entry entry = (Map.Entry) i.next(); Object key = entry.getKey(); Object value = entry.getValue(); assertTrue(decomposedObjects.contains(key)); assertTrue(decomposedObjects.contains(value)); assertTrue(decomposed.containsKey(key)); if (value == null) { assertNull(decomposed.get(key)); } else { assertNotNull(decomposed.get(key)); } } } }