import static org.junit.Assert.assertEquals;
public class MessagePackParserTest extends MessagePackDataformatTestBase {
@Test
public void testParserShouldReadObject() throws IOException {
MessagePacker packer = new MessagePacker(new OutputStreamBufferOutput(out));
packer.packMapHeader(8);
// #1
packer.packString("str");
packer.packString("foobar");
// #2
packer.packString("int");
packer.packInt(Integer.MIN_VALUE);
// #3
packer.packString("map");
{
packer.packMapHeader(2);
packer.packString("child_str");
packer.packString("bla bla bla");
packer.packString("child_int");
packer.packInt(Integer.MAX_VALUE);
}
// #4
packer.packString("double");
packer.packDouble(Double.MAX_VALUE);
// #5
packer.packString("long");
packer.packLong(Long.MIN_VALUE);
// #6
packer.packString("bi");
BigInteger bigInteger = new BigInteger(Long.toString(Long.MAX_VALUE));
packer.packBigInteger(bigInteger.add(BigInteger.ONE));
// #7
packer.packString("array");
{
packer.packArrayHeader(3);
packer.packFloat(Float.MIN_VALUE);
packer.packNil();
packer.packString("array_child_str");
}
// #8
packer.packString("bool");
packer.packBoolean(false);
packer.flush();
byte[] bytes = out.toByteArray();
TypeReference<Map<String, Object>> typeReference = new TypeReference<Map<String, Object>>(){};
Map<String, Object> object = objectMapper.readValue(bytes, typeReference);