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