diff options
| author | Muga Nishizawa <muga@f11vm.(none)> | 2010-10-20 21:04:37 +0900 |
|---|---|---|
| committer | Muga Nishizawa <muga@f11vm.(none)> | 2010-10-20 21:04:37 +0900 |
| commit | 64711e615e78328cee3250e83db0527f1c33c0f7 (patch) | |
| tree | c09ce6f11d52f165fcce0d1e612978092e1c3d60 /java/src/test | |
| parent | 2065affd45fbf74bdbeccee4cbd86aad4b321c7e (diff) | |
| download | msgpack-python-64711e615e78328cee3250e83db0527f1c33c0f7.tar.gz | |
java: write test programs for org.msgpack.util.codegen.*.java
Diffstat (limited to 'java/src/test')
| -rw-r--r-- | java/src/test/java/org/msgpack/util/codegen/TestPackConvert.java | 121 | ||||
| -rw-r--r-- | java/src/test/java/org/msgpack/util/codegen/TestPackUnpack.java | 104 |
2 files changed, 225 insertions, 0 deletions
diff --git a/java/src/test/java/org/msgpack/util/codegen/TestPackConvert.java b/java/src/test/java/org/msgpack/util/codegen/TestPackConvert.java index 40fed22..2e6ea58 100644 --- a/java/src/test/java/org/msgpack/util/codegen/TestPackConvert.java +++ b/java/src/test/java/org/msgpack/util/codegen/TestPackConvert.java @@ -2,6 +2,7 @@ package org.msgpack.util.codegen; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.io.IOException; import java.math.BigInteger; import java.util.ArrayList; import java.util.HashMap; @@ -15,8 +16,11 @@ import org.junit.Test; import org.msgpack.CustomConverter; import org.msgpack.CustomPacker; import org.msgpack.CustomUnpacker; +import org.msgpack.MessageConvertable; import org.msgpack.MessagePackObject; +import org.msgpack.MessagePackable; import org.msgpack.MessagePacker; +import org.msgpack.MessageTypeException; import org.msgpack.Packer; import org.msgpack.Template; import org.msgpack.Unpacker; @@ -1007,4 +1011,121 @@ public class TestPackConvert extends TestCase { public SampleSuperClass() { } } + + //@Test + public void XtestMessagePackableUnpackableClass00() throws Exception { + BaseMessagePackableConvertableClass src = new BaseMessagePackableConvertableClass(); + MessagePackableConvertableClass src1 = new MessagePackableConvertableClass(); + List<MessagePackableConvertableClass> src2 = new ArrayList<MessagePackableConvertableClass>(); + src1.f0 = 0; + src1.f1 = 1; + src.f0 = src1; + src.f1 = 1; + src2.add(src1); + src.f2 = src2; + ByteArrayOutputStream out = new ByteArrayOutputStream(); + MessagePacker packer = DynamicPacker + .create(BaseMessagePackableConvertableClass.class); + packer.pack(new Packer(out), src); + ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); + Template tmpl = DynamicTemplate + .create(BaseMessagePackableConvertableClass.class); + Unpacker pac = new Unpacker(in); + Iterator<MessagePackObject> it = pac.iterator(); + assertTrue(it.hasNext()); + MessagePackObject mpo = it.next(); + BaseMessagePackableConvertableClass dst = (BaseMessagePackableConvertableClass) tmpl + .convert(mpo); + assertEquals(src.f0.f0, dst.f0.f0); + assertEquals(src.f0.f1, dst.f0.f1); + assertEquals(src.f1, dst.f1); + assertEquals(src.f2.size(), dst.f2.size()); + assertEquals(src.f2.get(0).f0, dst.f2.get(0).f0); + assertEquals(src.f2.get(0).f1, dst.f2.get(0).f1); + assertFalse(it.hasNext()); + } + + //@Test + public void XtestMessagePackableUnpackableClass01() throws Exception { + BaseMessagePackableConvertableClass src = new BaseMessagePackableConvertableClass(); + src.f0 = null; + src.f1 = 1; + src.f2 = null; + ByteArrayOutputStream out = new ByteArrayOutputStream(); + MessagePacker packer = DynamicPacker + .create(BaseMessagePackableConvertableClass.class); + packer.pack(new Packer(out), src); + ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); + Template tmpl = DynamicTemplate + .create(BaseMessagePackableConvertableClass.class); + Unpacker pac = new Unpacker(in); + Iterator<MessagePackObject> it = pac.iterator(); + assertTrue(it.hasNext()); + MessagePackObject mpo = it.next(); + BaseMessagePackableConvertableClass dst = (BaseMessagePackableConvertableClass) tmpl + .convert(mpo); + assertEquals(src.f0, dst.f0); + assertEquals(src.f1, dst.f1); + assertEquals(src.f2, dst.f2); + assertFalse(it.hasNext()); + } + + //@Test + public void XtestMessagePackableUnpackableClass02() throws Exception { + BaseMessagePackableConvertableClass src = null; + ByteArrayOutputStream out = new ByteArrayOutputStream(); + MessagePacker packer = DynamicPacker + .create(BaseMessagePackableConvertableClass.class); + packer.pack(new Packer(out), src); + ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); + Template tmpl = DynamicTemplate + .create(BaseMessagePackableConvertableClass.class); + Unpacker pac = new Unpacker(in); + Iterator<MessagePackObject> it = pac.iterator(); + assertTrue(it.hasNext()); + MessagePackObject mpo = it.next(); + BaseMessagePackableConvertableClass dst = (BaseMessagePackableConvertableClass) tmpl + .convert(mpo); + assertEquals(src, dst); + assertFalse(it.hasNext()); + } + + public static class BaseMessagePackableConvertableClass { + public MessagePackableConvertableClass f0; + + public int f1; + + public List<MessagePackableConvertableClass> f2; + + public BaseMessagePackableConvertableClass() { + } + } + + public static class MessagePackableConvertableClass implements + MessagePackable, MessageConvertable { + + public int f0; + + public int f1; + + public MessagePackableConvertableClass() { + } + + @Override + public void messagePack(Packer packer) throws IOException { + packer.pack(f0); + packer.pack(f1); + } + + @Override + public void messageConvert(MessagePackObject obj) + throws MessageTypeException { + if (obj.isNil()) { + return; + } + MessagePackObject[] objs = obj.asArray(); + f0 = objs[0].asInt(); + f1 = objs[1].asInt(); + } + } } diff --git a/java/src/test/java/org/msgpack/util/codegen/TestPackUnpack.java b/java/src/test/java/org/msgpack/util/codegen/TestPackUnpack.java index 3222bec..dc56b6c 100644 --- a/java/src/test/java/org/msgpack/util/codegen/TestPackUnpack.java +++ b/java/src/test/java/org/msgpack/util/codegen/TestPackUnpack.java @@ -2,6 +2,7 @@ package org.msgpack.util.codegen; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.io.IOException; import java.math.BigInteger; import java.util.ArrayList; import java.util.HashMap; @@ -13,7 +14,10 @@ import org.junit.Test; import org.msgpack.CustomConverter; import org.msgpack.CustomPacker; import org.msgpack.CustomUnpacker; +import org.msgpack.MessagePackable; import org.msgpack.MessagePacker; +import org.msgpack.MessageTypeException; +import org.msgpack.MessageUnpackable; import org.msgpack.Packer; import org.msgpack.Template; import org.msgpack.Unpacker; @@ -885,4 +889,104 @@ public class TestPackUnpack extends TestCase { public SampleSuperClass() { } } + + //@Test + public void XtestMessagePackableUnpackableClass00() throws Exception { + BaseMessagePackableUnpackableClass src = new BaseMessagePackableUnpackableClass(); + MessagePackableUnpackableClass src1 = new MessagePackableUnpackableClass(); + List<MessagePackableUnpackableClass> src2 = new ArrayList<MessagePackableUnpackableClass>(); + src1.f0 = 0; + src1.f1 = 1; + src.f0 = src1; + src.f1 = 1; + src2.add(src1); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + MessagePacker packer = DynamicPacker + .create(BaseMessagePackableUnpackableClass.class); + packer.pack(new Packer(out), src); + ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); + Template tmpl = DynamicTemplate + .create(BaseMessagePackableUnpackableClass.class); + BaseMessagePackableUnpackableClass dst = (BaseMessagePackableUnpackableClass) tmpl + .unpack(new Unpacker(in)); + assertEquals(src.f0.f0, dst.f0.f0); + assertEquals(src.f0.f1, dst.f0.f1); + assertEquals(src.f1, dst.f1); + assertEquals(src.f2.size(), dst.f2.size()); + assertEquals(src.f2.get(0).f0, dst.f2.get(0).f0); + assertEquals(src.f2.get(0).f1, dst.f2.get(0).f1); + } + + //@Test + public void XtestMessagePackableUnpackableClass01() throws Exception { + BaseMessagePackableUnpackableClass src = new BaseMessagePackableUnpackableClass(); + src.f0 = null; + src.f1 = 1; + src.f2 = null; + ByteArrayOutputStream out = new ByteArrayOutputStream(); + MessagePacker packer = DynamicPacker + .create(BaseMessagePackableUnpackableClass.class); + packer.pack(new Packer(out), src); + ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); + Template tmpl = DynamicTemplate + .create(BaseMessagePackableUnpackableClass.class); + BaseMessagePackableUnpackableClass dst = (BaseMessagePackableUnpackableClass) tmpl + .unpack(new Unpacker(in)); + assertEquals(src.f0, dst.f0); + assertEquals(src.f1, dst.f1); + assertEquals(src.f2, dst.f2); + } + + //@Test + public void XtestMessagePackableUnpackableClass02() throws Exception { + BaseMessagePackableUnpackableClass src = null; + ByteArrayOutputStream out = new ByteArrayOutputStream(); + MessagePacker packer = DynamicPacker + .create(BaseMessagePackableUnpackableClass.class); + packer.pack(new Packer(out), src); + ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); + Template tmpl = DynamicTemplate + .create(BaseMessagePackableUnpackableClass.class); + BaseMessagePackableUnpackableClass dst = (BaseMessagePackableUnpackableClass) tmpl + .unpack(new Unpacker(in)); + assertEquals(src, dst); + } + + public static class BaseMessagePackableUnpackableClass { + public MessagePackableUnpackableClass f0; + + public int f1; + + public List<MessagePackableUnpackableClass> f2; + + public BaseMessagePackableUnpackableClass() { + } + } + + public static class MessagePackableUnpackableClass implements + MessagePackable, MessageUnpackable { + + public int f0; + + public int f1; + + public MessagePackableUnpackableClass() { + } + + @Override + public void messagePack(Packer packer) throws IOException { + packer.pack(f0); + packer.pack(f1); + } + + @Override + public void messageUnpack(Unpacker unpacker) throws IOException, + MessageTypeException { + if (unpacker.tryUnpackNull()) { + return; + } + f0 = unpacker.unpackInt(); + f1 = unpacker.unpackInt(); + } + } } |
