package com.orbitz.monitoring.lib.decomposer; import junit.framework.TestCase; import org.apache.commons.beanutils.LazyDynaBean; import java.util.IdentityHashMap; import java.util.List; import java.io.Serializable; /** * Unit tests for <code>ReflectiveDecomposer</code>. * * <p>(c) 2000-04 Orbitz, LLC. All Rights Reserved. * * @author Doug Barth */ public class ReflectiveDecomposerTest extends TestCase { // ** PRIVATE DATA ******************************************************** private ReflectiveDecomposer _decomposer; private MockDecomposerStep _delegate; // ** TEST SUITE METHODS ************************************************** protected void setUp() throws Exception { super.setUp(); _delegate = new MockDecomposerStep(); _decomposer = new ReflectiveDecomposer(_delegate); } // ** TEST METHODS ******************************************************** public void testDecomposeNull() { assertNull(_decomposer.decompose(null, new IdentityHashMap())); } public static class ExampleClass implements Serializable { private String _stringValue = "abc"; private boolean _booleanValue = true; private Exception _exceptionValue = new Exception(); public String getStringValue() { return _stringValue; } public boolean isBooleanValue() { return _booleanValue; } public Exception getExceptionValue() { return _exceptionValue; } } public void testDecompose() { ExampleClass original = new ExampleClass(); LazyDynaBean decomposed = (LazyDynaBean) _decomposer.decompose(original, new IdentityHashMap()); assertNotNull(decomposed.get("stringValue")); assertNotNull(decomposed.get("booleanValue")); assertNotNull(decomposed.get("exceptionValue")); List decomposedObjects = _delegate.getDecomposedObjects(); assertTrue(decomposedObjects.contains(original.getStringValue())); assertTrue(decomposedObjects.contains( Boolean.valueOf(original.isBooleanValue()))); assertTrue(decomposedObjects.contains(original.getExceptionValue())); } }