Mercurial > hg > Members > sugi > MessagePack-java
diff src/test/java/org/msgpack/template/builder/TestOrdinalEnumPackUnpack.java @ 0:cb825acd883a
first commit
author | sugi |
---|---|
date | Sat, 18 Oct 2014 15:06:15 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/org/msgpack/template/builder/TestOrdinalEnumPackUnpack.java Sat Oct 18 15:06:15 2014 +0900 @@ -0,0 +1,67 @@ +package org.msgpack.template.builder; + +import static org.junit.Assert.assertEquals; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; + +import org.junit.Test; +import org.msgpack.MessagePack; +import org.msgpack.packer.Packer; +import org.msgpack.template.TemplateRegistry; +import org.msgpack.template.Template; +import org.msgpack.testclasses.EnumTypeFieldsClass; +import org.msgpack.testclasses.EnumTypeFieldsClassNotNullable; +import org.msgpack.unpacker.Unpacker; + + +public class TestOrdinalEnumPackUnpack extends TestSet { + + @Test @Override + public void testEnumTypeFieldsClass() throws Exception { + super.testEnumTypeFieldsClass(); + } + + @Override + public void testEnumTypeFieldsClass(EnumTypeFieldsClass v) throws Exception { + MessagePack msgpack = new MessagePack(); + TemplateRegistry registry = new TemplateRegistry(null); + registry.register(EnumTypeFieldsClass.SampleEnum.class, + new OrdinalEnumTemplateBuilder(registry).buildTemplate(EnumTypeFieldsClass.SampleEnum.class)); + ReflectionTemplateBuilder builder = new ReflectionTemplateBuilder(registry); + Template<EnumTypeFieldsClass> tmpl = builder.buildTemplate(EnumTypeFieldsClass.class); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + Packer packer = msgpack.createPacker(out); + tmpl.write(packer, v); + byte[] bytes = out.toByteArray(); + Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes)); + unpacker.resetReadByteCount(); + EnumTypeFieldsClass ret = tmpl.read(unpacker, null); + assertEquals(v, ret); + assertEquals(bytes.length, unpacker.getReadByteCount()); + } + + @Test @Override + public void testEnumTypeFieldsClassNotNullable() throws Exception { + super.testEnumTypeFieldsClassNotNullable(); + } + + @Override + public void testEnumTypeFieldsClassNotNullable(EnumTypeFieldsClassNotNullable v) throws Exception { + MessagePack msgpack = new MessagePack(); + TemplateRegistry registry = new TemplateRegistry(null); + registry.register(EnumTypeFieldsClassNotNullable.SampleEnum.class, + new OrdinalEnumTemplateBuilder(registry).buildTemplate(EnumTypeFieldsClassNotNullable.SampleEnum.class)); + ReflectionTemplateBuilder builder = new ReflectionTemplateBuilder(registry); + Template<EnumTypeFieldsClassNotNullable> tmpl = builder.buildTemplate(EnumTypeFieldsClassNotNullable.class); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + Packer packer = msgpack.createPacker(out); + tmpl.write(packer, v); + byte[] bytes = out.toByteArray(); + Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes)); + unpacker.resetReadByteCount(); + EnumTypeFieldsClassNotNullable ret = tmpl.read(unpacker, null); + assertEquals(v, ret); + assertEquals(bytes.length, unpacker.getReadByteCount()); + } +}