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());
+    }
+}