diff options
| author | Muga Nishizawa <muga@f11vm.(none)> | 2010-09-30 00:55:56 +0900 |
|---|---|---|
| committer | Muga Nishizawa <muga@f11vm.(none)> | 2010-09-30 00:55:56 +0900 |
| commit | 7f7f5253f2e45927f119065e766d499feeb8c566 (patch) | |
| tree | c419664cff25267944e3d6f687b0063ba56cb7a6 /java/src/test | |
| parent | 92ddb37ed300d86409db4852d85d2ab40d5b782e (diff) | |
| download | msgpack-python-7f7f5253f2e45927f119065e766d499feeb8c566.tar.gz | |
java: adds a test program of the DynamicCodeGen class for packing and unpacking an object that has a field anntated by @MessagePackMessage
Diffstat (limited to 'java/src/test')
| -rw-r--r-- | java/src/test/java/org/msgpack/util/codegen/TestDynamicCodeGenPackerConverter.java | 40 | ||||
| -rw-r--r-- | java/src/test/java/org/msgpack/util/codegen/TestDynamicCodeGenPackerUnpacker.java | 35 |
2 files changed, 75 insertions, 0 deletions
diff --git a/java/src/test/java/org/msgpack/util/codegen/TestDynamicCodeGenPackerConverter.java b/java/src/test/java/org/msgpack/util/codegen/TestDynamicCodeGenPackerConverter.java index 7ffcd88..b737674 100644 --- a/java/src/test/java/org/msgpack/util/codegen/TestDynamicCodeGenPackerConverter.java +++ b/java/src/test/java/org/msgpack/util/codegen/TestDynamicCodeGenPackerConverter.java @@ -20,6 +20,7 @@ import org.msgpack.MessagePacker; import org.msgpack.Packer; import org.msgpack.Template; import org.msgpack.Unpacker; +import org.msgpack.annotation.MessagePackMessage; public class TestDynamicCodeGenPackerConverter extends TestCase { @@ -535,6 +536,44 @@ public class TestDynamicCodeGenPackerConverter extends TestCase { } @Test + public void testMessagePackMessageFieldClass() throws Exception { + BaseClass2 src = new BaseClass2(); + MessagePackMessageClass2 src2 = new MessagePackMessageClass2(); + src.f0 = 0; + src2.f2 = 2; + src.f1 = src2; + ByteArrayOutputStream out = new ByteArrayOutputStream(); + MessagePacker packer = DynamicCodeGenPacker.create(BaseClass2.class); + packer.pack(new Packer(out), src); + ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); + Unpacker pac = new Unpacker(in); + Iterator<MessagePackObject> it = pac.iterator(); + assertTrue(it.hasNext()); + MessagePackObject mpo = it.next(); + Template tmpl = DynamicCodeGenTemplate.create(BaseClass2.class); + BaseClass2 dst = (BaseClass2) tmpl.convert(mpo); + assertTrue(src.f0 == dst.f0); + assertTrue(src.f1.f2 == dst.f1.f2); + assertFalse(it.hasNext()); + } + + public static class BaseClass2 { + public int f0; + public MessagePackMessageClass2 f1; + + public BaseClass2() { + } + } + + @MessagePackMessage + public static class MessagePackMessageClass2 { + public int f2; + + public MessagePackMessageClass2() { + } + } + + @Test public void testExtendedClass() throws Exception { SampleSubClass src = new SampleSubClass(); src.f0 = 0; @@ -581,6 +620,7 @@ public class TestDynamicCodeGenPackerConverter extends TestCase { public static class SampleSuperClass { public int f5; public final int f6 = 2; + @SuppressWarnings("unused") private int f7; protected int f8; int f9; diff --git a/java/src/test/java/org/msgpack/util/codegen/TestDynamicCodeGenPackerUnpacker.java b/java/src/test/java/org/msgpack/util/codegen/TestDynamicCodeGenPackerUnpacker.java index 08d0e52..ebc6d15 100644 --- a/java/src/test/java/org/msgpack/util/codegen/TestDynamicCodeGenPackerUnpacker.java +++ b/java/src/test/java/org/msgpack/util/codegen/TestDynamicCodeGenPackerUnpacker.java @@ -17,6 +17,7 @@ import org.msgpack.MessagePacker; import org.msgpack.Packer; import org.msgpack.Template; import org.msgpack.Unpacker; +import org.msgpack.annotation.MessagePackMessage; import junit.framework.TestCase; @@ -505,6 +506,39 @@ public class TestDynamicCodeGenPackerUnpacker extends TestCase { } @Test + public void testMessagePackMessageFieldClass() throws Exception { + BaseClass2 src = new BaseClass2(); + MessagePackMessageClass2 src2 = new MessagePackMessageClass2(); + src.f0 = 0; + src2.f2 = 2; + src.f1 = src2; + ByteArrayOutputStream out = new ByteArrayOutputStream(); + MessagePacker packer = DynamicCodeGenPacker.create(BaseClass2.class); + packer.pack(new Packer(out), src); + ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); + Template tmpl = DynamicCodeGenTemplate.create(BaseClass2.class); + BaseClass2 dst = (BaseClass2) tmpl.unpack(new Unpacker(in)); + assertTrue(src.f0 == dst.f0); + assertTrue(src.f1.f2 == dst.f1.f2); + } + + public static class BaseClass2 { + public int f0; + public MessagePackMessageClass2 f1; + + public BaseClass2() { + } + } + + @MessagePackMessage + public static class MessagePackMessageClass2 { + public int f2; + + public MessagePackMessageClass2() { + } + } + + @Test public void testExtendedClass() throws Exception { SampleSubClass src = new SampleSubClass(); src.f0 = 0; @@ -546,6 +580,7 @@ public class TestDynamicCodeGenPackerUnpacker extends TestCase { public static class SampleSuperClass { public int f5; public final int f6 = 2; + @SuppressWarnings("unused") private int f7; protected int f8; int f9; |
