Mercurial > hg > Members > sugi > MessagePack-java
diff src/test/java/org/msgpack/template/TestListTemplate.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/TestListTemplate.java Sat Oct 18 15:06:15 2014 +0900 @@ -0,0 +1,129 @@ +package org.msgpack.template; + +import static org.junit.Assert.assertEquals; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.util.List; + +import org.junit.Test; +import org.msgpack.MessagePack; +import org.msgpack.TestSet; +import org.msgpack.packer.BufferPacker; +import org.msgpack.packer.Packer; +import org.msgpack.unpacker.BufferUnpacker; +import org.msgpack.unpacker.Unpacker; + + +public class TestListTemplate { + + @Test + public void testPackUnpack() throws Exception { + new TestPackUnpack().testList(); + } + + @Test + public void testPackBufferUnpack() throws Exception { + new TestPackBufferUnpack().testList(); + } + + @Test + public void testBufferPackBufferUnpack() throws Exception { + new TestBufferPackBufferUnpack().testList(); + } + + @Test + public void testBufferPackUnpack() throws Exception { + new TestBufferPackUnpack().testList(); + } + + private static class TestPackUnpack extends TestSet { + @Test @Override + public void testList() throws Exception { + super.testList(); + } + + @Override + public <E> void testList(List<E> v, Class<E> elementClass) throws Exception { + MessagePack msgpack = new MessagePack(); + Template<E> elementTemplate = msgpack.lookup(elementClass); + Template<List<E>> tmpl = new ListTemplate<E>(elementTemplate); + 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(); + List<E> ret = tmpl.read(unpacker, null); + assertEquals(v, ret); + assertEquals(bytes.length, unpacker.getReadByteCount()); + } + } + + private static class TestPackBufferUnpack extends TestSet { + @Test @Override + public void testList() throws Exception { + super.testList(); + } + + @Override + public <E> void testList(List<E> v, Class<E> elementClass) throws Exception { + MessagePack msgpack = new MessagePack(); + Template<E> elementTemplate = msgpack.lookup(elementClass); + Template<List<E>> tmpl = new ListTemplate<E>(elementTemplate); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + Packer packer = msgpack.createPacker(out); + tmpl.write(packer, v); + byte[] bytes = out.toByteArray(); + BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes); + unpacker.resetReadByteCount(); + List<E> ret = tmpl.read(unpacker, null); + assertEquals(v, ret); + assertEquals(bytes.length, unpacker.getReadByteCount()); + } + } + + private static class TestBufferPackBufferUnpack extends TestSet { + @Test @Override + public void testList() throws Exception { + super.testList(); + } + + @Override + public <E> void testList(List<E> v, Class<E> elementClass) throws Exception { + MessagePack msgpack = new MessagePack(); + Template<E> elementTemplate = msgpack.lookup(elementClass); + Template<List<E>> tmpl = new ListTemplate<E>(elementTemplate); + BufferPacker packer = msgpack.createBufferPacker(); + tmpl.write(packer, v); + byte[] bytes = packer.toByteArray(); + BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes); + unpacker.resetReadByteCount(); + List<E> ret = tmpl.read(unpacker, null); + assertEquals(v, ret); + assertEquals(bytes.length, unpacker.getReadByteCount()); + } + } + + private static class TestBufferPackUnpack extends TestSet { + @Test @Override + public void testList() throws Exception { + super.testList(); + } + + @Override + public <E> void testList(List<E> v, Class<E> elementClass) throws Exception { + MessagePack msgpack = new MessagePack(); + Template<E> elementTemplate = msgpack.lookup(elementClass); + Template<List<E>> tmpl = new ListTemplate<E>(elementTemplate); + BufferPacker packer = msgpack.createBufferPacker(); + tmpl.write(packer, v); + byte[] bytes = packer.toByteArray(); + Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes)); + unpacker.resetReadByteCount(); + List<E> ret = tmpl.read(unpacker, null); + assertEquals(v, ret); + assertEquals(bytes.length, unpacker.getReadByteCount()); + } + } +}