summaryrefslogtreecommitdiff
path: root/java/src/test
diff options
context:
space:
mode:
authorMuga Nishizawa <muga@f11vm.(none)>2010-09-30 00:55:56 +0900
committerMuga Nishizawa <muga@f11vm.(none)>2010-09-30 00:55:56 +0900
commit7f7f5253f2e45927f119065e766d499feeb8c566 (patch)
treec419664cff25267944e3d6f687b0063ba56cb7a6 /java/src/test
parent92ddb37ed300d86409db4852d85d2ab40d5b782e (diff)
downloadmsgpack-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.java40
-rw-r--r--java/src/test/java/org/msgpack/util/codegen/TestDynamicCodeGenPackerUnpacker.java35
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;