package VASSAL.counters;
import java.lang.reflect.Constructor;
import VASSAL.build.MockModuleTest;
public abstract class SerializeTest<T extends Decorator> extends MockModuleTest {
public void serializeTest(Class<T>clazz, T trait) throws Exception {
BasicPiece basicPiece = new BasicPiece();
trait.setInner(basicPiece);
String typeString = trait.myGetType();
Constructor<T> constructor;
T deserialized;
try {
constructor = clazz.getConstructor(String.class, GamePiece.class);
deserialized = constructor.newInstance(typeString, null);
} catch (NoSuchMethodException e) {
constructor = clazz.getConstructor(GamePiece.class, String.class);
deserialized = constructor.newInstance(null, typeString);
}
assertSame(trait, deserialized);
}
abstract void assertSame(T t1, T t2);
}