package org.oddjob.persist;
import java.io.IOException;
import java.io.NotSerializableException;
import java.io.Serializable;
import junit.framework.TestCase;
import org.oddjob.tools.OddjobTestHelper;
public class SerializationTutorialTest extends TestCase {
static class NonSerializable {
String fruit;
}
static class SerializableSub extends NonSerializable implements Serializable {
private static final long serialVersionUID = 2009012200L;
String colour;
}
public void testBaseSerialization() throws IOException, ClassNotFoundException {
SerializableSub sub = new SerializableSub();
sub.fruit = "apple";
sub.colour = "red";
SerializableSub copy = (SerializableSub) OddjobTestHelper.copy(sub);
assertNull(copy.fruit);
assertEquals("red", copy.colour);
}
static class ThinksItsSerializable implements Serializable {
private static final long serialVersionUID = 2009012200L;
NonSerializable memeber = new NonSerializable();
}
public void testNonSerializableMemeber() throws ClassNotFoundException {
try {
OddjobTestHelper.copy(
new ThinksItsSerializable());
fail("Non serializable memeber");
} catch (IOException e) {
assertTrue(e instanceof NotSerializableException);
}
}
}