package x10.sncode.test; import junit.framework.TestCase; import x10.sncode.ByteBuffer; import x10.sncode.ClassEditor; import x10.sncode.InvalidClassFileException; import x10.sncode.LocalEditor; import x10.sncode.MethodEditor; import x10.sncode.SnFile; import x10.sncode.Type; public class ClassFileTest extends TestCase { public void test1() throws InvalidClassFileException { SnFile sn = new SnFile(); ClassEditor c = new ClassEditor(); c.setSuperClass(TypeTest.parse("*x10/lang/Object;")); c.setName("C"); c.setSuperClass(Type.parse("*D;")); MethodEditor m = new MethodEditor(); c.methods().add(m); m.setName("m"); m.setFormals(new LocalEditor[0]); m.setReturnType(TypeTest.parse("V")); sn.addClass(c); ByteBuffer b = new ByteBuffer(); sn.writeInto(b); b.seek(0); SnFile sn2 = new SnFile(); sn2.readFrom(b); b.seek(0); sn2.classes(); assert sn2.classes().size() == 1; ClassEditor c2 = sn2.classes().get(0); assert c2.getName().equals("C"); assert c2.methods().size() == 1; MethodEditor m2 = c2.methods().get(0); assert m2.getName().equals("m"); assert m2.getFormals().size() == 0; assert m2.getReturnType().equals(TypeTest.parse("V")); } }