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.Ignore;
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(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));
List<E> ret = tmpl.read(unpacker, null);
assertEquals(v, ret);
}
}
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(elementTemplate);
ByteArrayOutputStream out = new ByteArrayOutputStream();
Packer packer = msgpack.createPacker(out);
tmpl.write(packer, v);
byte[] bytes = out.toByteArray();
BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes);
List<E> ret = tmpl.read(unpacker, null);
assertEquals(v, ret);
}
}
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(elementTemplate);
BufferPacker packer = msgpack.createBufferPacker();
tmpl.write(packer, v);
byte[] bytes = packer.toByteArray();
BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes);
List<E> ret = tmpl.read(unpacker, null);
assertEquals(v, ret);
}
}
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(elementTemplate);
BufferPacker packer = msgpack.createBufferPacker();
tmpl.write(packer, v);
byte[] bytes = packer.toByteArray();
Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
List<E> ret = tmpl.read(unpacker, null);
assertEquals(v, ret);
}
}
}