0
|
1 package org.msgpack.unpacker;
|
|
2
|
|
3 import static org.junit.Assert.assertEquals;
|
|
4
|
|
5 import org.junit.Test;
|
|
6 import org.msgpack.MessagePack;
|
|
7 import org.msgpack.packer.BufferPacker;
|
|
8 import org.msgpack.unpacker.BufferUnpacker;
|
|
9 import org.msgpack.type.Value;
|
|
10 import org.msgpack.type.ValueFactory;
|
|
11
|
|
12 public class TestUnpackerSkip {
|
|
13 @Test
|
|
14 public void testPrimitive() throws Exception {
|
|
15 MessagePack msgpack = new MessagePack();
|
|
16
|
|
17 BufferPacker packer = msgpack.createBufferPacker();
|
|
18
|
|
19 for (int i = 0; i < 10; i++) {
|
|
20 packer.write(1);
|
|
21 packer.write(i);
|
|
22 }
|
|
23
|
|
24 byte[] bytes = packer.toByteArray();
|
|
25 BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes);
|
|
26
|
|
27 for (int i = 0; i < 10; i++) {
|
|
28 unpacker.skip();
|
|
29 int n = unpacker.readInt();
|
|
30 assertEquals(i, n);
|
|
31 }
|
|
32 }
|
|
33
|
|
34 @Test
|
|
35 public void testNested() throws Exception {
|
|
36 MessagePack msgpack = new MessagePack();
|
|
37
|
|
38 BufferPacker packer = msgpack.createBufferPacker();
|
|
39
|
|
40 Value v1 = ValueFactory.createArrayValue(new Value[] {
|
|
41 ValueFactory.createRawValue("a"),
|
|
42 ValueFactory.createMapValue(new Value[] {
|
|
43 ValueFactory.createRawValue("k1"),
|
|
44 ValueFactory
|
|
45 .createArrayValue(new Value[] { ValueFactory
|
|
46 .createIntegerValue(1) }) }) });
|
|
47
|
|
48 Value v2 = ValueFactory.createArrayValue(new Value[] {
|
|
49 ValueFactory.createMapValue(new Value[] {
|
|
50 ValueFactory.createRawValue("k1"),
|
|
51 ValueFactory
|
|
52 .createArrayValue(new Value[] { ValueFactory
|
|
53 .createIntegerValue(1) }),
|
|
54 ValueFactory.createRawValue("k2"),
|
|
55 ValueFactory
|
|
56 .createArrayValue(new Value[] { ValueFactory
|
|
57 .createIntegerValue(2) }) }),
|
|
58 ValueFactory.createMapValue(new Value[] {
|
|
59 ValueFactory.createRawValue("k1"),
|
|
60 ValueFactory
|
|
61 .createArrayValue(new Value[] { ValueFactory
|
|
62 .createIntegerValue(1) }),
|
|
63 ValueFactory.createRawValue("k2"),
|
|
64 ValueFactory
|
|
65 .createArrayValue(new Value[] { ValueFactory
|
|
66 .createIntegerValue(2) }) }),
|
|
67 ValueFactory.createRawValue("a") });
|
|
68
|
|
69 for (int i = 0; i < 10; i++) {
|
|
70 packer.write(v1);
|
|
71 packer.write(v2);
|
|
72 }
|
|
73
|
|
74 byte[] bytes = packer.toByteArray();
|
|
75 BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes);
|
|
76
|
|
77 for (int i = 0; i < 10; i++) {
|
|
78 unpacker.skip();
|
|
79 Value v2a = unpacker.readValue();
|
|
80 assertEquals(v2, v2a);
|
|
81 }
|
|
82 }
|
|
83 }
|