/*
* (c) Rob Gordon 2005
*/
package org.oddjob.jmx;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.HashMap;
import java.util.Map;
import junit.framework.TestCase;
import org.apache.commons.beanutils.DynaProperty;
import org.oddjob.framework.WrapDynaClass;
public class WrapDynaClassTest extends TestCase {
public class Bean {
public String getFruit() { return "apples"; }
}
public void testSerialize() throws IOException, ClassNotFoundException {
WrapDynaClass dc = WrapDynaClass.createDynaClass(Bean.class);
ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(out);
oos.writeObject(dc);
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
ObjectInputStream ois = new ObjectInputStream(in);
WrapDynaClass dc2 = (WrapDynaClass) ois.readObject();
Map<String, Class<?>> props =
new HashMap<String, Class<?>>();
DynaProperty[] dps = dc2.getDynaProperties();
for (int i = 0; i < dps.length; ++i) {
props.put(dps[i].getName(), dps[i].getType());
}
assertEquals(String.class, props.get("fruit"));
}
}