import junit.framework.TestCase; import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.NoOp; import com.thoughtworks.xstream.mapper.DefaultMapper; import com.thoughtworks.xstream.mapper.MapperWrapper; /** * * @author Costin Leau * */ public class CGLibMapperTest extends TestCase { Obj original; Obj enhanced; String enhancedClassName; String originalClassName; MapperWrapper mapper, defaultMapper; protected void setUp() throws Exception { super.setUp(); defaultMapper = new DefaultMapper(getClass().getClassLoader()); mapper = new CGLibMapper(defaultMapper); original = new Obj(); enhanced = (Obj)Enhancer.create(original.getClass(), NoOp.INSTANCE); originalClassName = original.getClass().getName(); enhancedClassName = enhanced.getClass().getName(); } public void testClassSignature() { assertTrue(Enhancer.isEnhanced(enhanced.getClass())); assertFalse(originalClassName.equals(enhancedClassName)); } /* * Test method for * 'CGLibMapper.mapNameToXML(String)' */ public void testMapNameToXMLString() { assertTrue(originalClassName.equals(mapper.mapNameToXML(enhancedClassName))); assertFalse(originalClassName.equals(defaultMapper.mapNameToXML(enhancedClassName))); assertTrue(enhancedClassName.equals(defaultMapper.mapNameToXML(enhancedClassName))); } /* * Test method for * 'CGLibMapper.serializedClass(Class)' */ public void testSerializedClassClass() { assertTrue(originalClassName.equals(mapper.serializedClass(enhanced.getClass()))); assertTrue(originalClassName.equals(mapper.serializedClass(original.getClass()))); assertFalse(originalClassName.equals(defaultMapper.serializedClass(enhanced.getClass()))); } /* * Test method for * 'CGLibMapper.serializedMember(Class, String)' */ public void testSerializedMemberClassString() { assertTrue(originalClassName.equals(mapper.serializedMember(enhanced.getClass(), enhancedClassName))); assertTrue(originalClassName.equals(mapper.serializedMember(original.getClass(), originalClassName))); assertFalse(originalClassName.equals(defaultMapper.serializedMember(enhanced.getClass(), enhancedClassName))); } }