annotate src/test/java/org/msgpack/template/builder/TestOrdinalEnumPackConvert.java @ 0:cb825acd883a

first commit
author sugi
date Sat, 18 Oct 2014 15:06:15 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cb825acd883a first commit
sugi
parents:
diff changeset
1 package org.msgpack.template.builder;
cb825acd883a first commit
sugi
parents:
diff changeset
2
cb825acd883a first commit
sugi
parents:
diff changeset
3 import static org.junit.Assert.assertEquals;
cb825acd883a first commit
sugi
parents:
diff changeset
4
cb825acd883a first commit
sugi
parents:
diff changeset
5 import java.io.ByteArrayOutputStream;
cb825acd883a first commit
sugi
parents:
diff changeset
6
cb825acd883a first commit
sugi
parents:
diff changeset
7 import org.junit.Test;
cb825acd883a first commit
sugi
parents:
diff changeset
8 import org.msgpack.MessagePack;
cb825acd883a first commit
sugi
parents:
diff changeset
9 import org.msgpack.packer.Packer;
cb825acd883a first commit
sugi
parents:
diff changeset
10 import org.msgpack.template.TemplateRegistry;
cb825acd883a first commit
sugi
parents:
diff changeset
11 import org.msgpack.template.Template;
cb825acd883a first commit
sugi
parents:
diff changeset
12 import org.msgpack.testclasses.EnumTypeFieldsClass;
cb825acd883a first commit
sugi
parents:
diff changeset
13 import org.msgpack.testclasses.EnumTypeFieldsClassNotNullable;
cb825acd883a first commit
sugi
parents:
diff changeset
14 import org.msgpack.type.Value;
cb825acd883a first commit
sugi
parents:
diff changeset
15 import org.msgpack.unpacker.BufferUnpacker;
cb825acd883a first commit
sugi
parents:
diff changeset
16 import org.msgpack.unpacker.Converter;
cb825acd883a first commit
sugi
parents:
diff changeset
17
cb825acd883a first commit
sugi
parents:
diff changeset
18
cb825acd883a first commit
sugi
parents:
diff changeset
19 public class TestOrdinalEnumPackConvert extends TestSet {
cb825acd883a first commit
sugi
parents:
diff changeset
20
cb825acd883a first commit
sugi
parents:
diff changeset
21 @Test @Override
cb825acd883a first commit
sugi
parents:
diff changeset
22 public void testEnumTypeFieldsClass() throws Exception {
cb825acd883a first commit
sugi
parents:
diff changeset
23 super.testEnumTypeFieldsClass();
cb825acd883a first commit
sugi
parents:
diff changeset
24 }
cb825acd883a first commit
sugi
parents:
diff changeset
25
cb825acd883a first commit
sugi
parents:
diff changeset
26 @Override
cb825acd883a first commit
sugi
parents:
diff changeset
27 public void testEnumTypeFieldsClass(EnumTypeFieldsClass v) throws Exception {
cb825acd883a first commit
sugi
parents:
diff changeset
28 MessagePack msgpack = new MessagePack();
cb825acd883a first commit
sugi
parents:
diff changeset
29 TemplateRegistry registry = new TemplateRegistry(null);
cb825acd883a first commit
sugi
parents:
diff changeset
30 registry.register(EnumTypeFieldsClass.SampleEnum.class,
cb825acd883a first commit
sugi
parents:
diff changeset
31 new OrdinalEnumTemplateBuilder(registry).buildTemplate(EnumTypeFieldsClass.SampleEnum.class));
cb825acd883a first commit
sugi
parents:
diff changeset
32 ReflectionTemplateBuilder builder = new ReflectionTemplateBuilder(registry);
cb825acd883a first commit
sugi
parents:
diff changeset
33 Template<EnumTypeFieldsClass> tmpl = builder.buildTemplate(EnumTypeFieldsClass.class);
cb825acd883a first commit
sugi
parents:
diff changeset
34 ByteArrayOutputStream out = new ByteArrayOutputStream();
cb825acd883a first commit
sugi
parents:
diff changeset
35 Packer packer = msgpack.createPacker(out);
cb825acd883a first commit
sugi
parents:
diff changeset
36 tmpl.write(packer, v);
cb825acd883a first commit
sugi
parents:
diff changeset
37 byte[] bytes = out.toByteArray();
cb825acd883a first commit
sugi
parents:
diff changeset
38 BufferUnpacker u = msgpack.createBufferUnpacker();
cb825acd883a first commit
sugi
parents:
diff changeset
39 u.resetReadByteCount();
cb825acd883a first commit
sugi
parents:
diff changeset
40 u.wrap(bytes);
cb825acd883a first commit
sugi
parents:
diff changeset
41 Value value = u.readValue();
cb825acd883a first commit
sugi
parents:
diff changeset
42 Converter unpacker = new Converter(value);
cb825acd883a first commit
sugi
parents:
diff changeset
43 EnumTypeFieldsClass ret = tmpl.read(unpacker, null);
cb825acd883a first commit
sugi
parents:
diff changeset
44 assertEquals(v, ret);
cb825acd883a first commit
sugi
parents:
diff changeset
45 assertEquals(bytes.length, u.getReadByteCount());
cb825acd883a first commit
sugi
parents:
diff changeset
46 }
cb825acd883a first commit
sugi
parents:
diff changeset
47
cb825acd883a first commit
sugi
parents:
diff changeset
48 @Test @Override
cb825acd883a first commit
sugi
parents:
diff changeset
49 public void testEnumTypeFieldsClassNotNullable() throws Exception {
cb825acd883a first commit
sugi
parents:
diff changeset
50 super.testEnumTypeFieldsClassNotNullable();
cb825acd883a first commit
sugi
parents:
diff changeset
51 }
cb825acd883a first commit
sugi
parents:
diff changeset
52
cb825acd883a first commit
sugi
parents:
diff changeset
53 @Override
cb825acd883a first commit
sugi
parents:
diff changeset
54 public void testEnumTypeFieldsClassNotNullable(EnumTypeFieldsClassNotNullable v) throws Exception {
cb825acd883a first commit
sugi
parents:
diff changeset
55 MessagePack msgpack = new MessagePack();
cb825acd883a first commit
sugi
parents:
diff changeset
56 TemplateRegistry registry = new TemplateRegistry(null);
cb825acd883a first commit
sugi
parents:
diff changeset
57 registry.register(EnumTypeFieldsClassNotNullable.SampleEnum.class,
cb825acd883a first commit
sugi
parents:
diff changeset
58 new OrdinalEnumTemplateBuilder(registry).buildTemplate(EnumTypeFieldsClassNotNullable.SampleEnum.class));
cb825acd883a first commit
sugi
parents:
diff changeset
59 ReflectionTemplateBuilder builder = new ReflectionTemplateBuilder(registry);
cb825acd883a first commit
sugi
parents:
diff changeset
60 Template<EnumTypeFieldsClassNotNullable> tmpl = builder.buildTemplate(EnumTypeFieldsClassNotNullable.class);
cb825acd883a first commit
sugi
parents:
diff changeset
61 ByteArrayOutputStream out = new ByteArrayOutputStream();
cb825acd883a first commit
sugi
parents:
diff changeset
62 Packer packer = msgpack.createPacker(out);
cb825acd883a first commit
sugi
parents:
diff changeset
63 tmpl.write(packer, v);
cb825acd883a first commit
sugi
parents:
diff changeset
64 byte[] bytes = out.toByteArray();
cb825acd883a first commit
sugi
parents:
diff changeset
65 BufferUnpacker u = msgpack.createBufferUnpacker();
cb825acd883a first commit
sugi
parents:
diff changeset
66 u.resetReadByteCount();
cb825acd883a first commit
sugi
parents:
diff changeset
67 u.wrap(bytes);
cb825acd883a first commit
sugi
parents:
diff changeset
68 Value value = u.readValue();
cb825acd883a first commit
sugi
parents:
diff changeset
69 Converter unpacker = new Converter(value);
cb825acd883a first commit
sugi
parents:
diff changeset
70 EnumTypeFieldsClassNotNullable ret = tmpl.read(unpacker, null);
cb825acd883a first commit
sugi
parents:
diff changeset
71 assertEquals(v, ret);
cb825acd883a first commit
sugi
parents:
diff changeset
72 assertEquals(bytes.length, u.getReadByteCount());
cb825acd883a first commit
sugi
parents:
diff changeset
73 }
cb825acd883a first commit
sugi
parents:
diff changeset
74 }