Mercurial > hg > Members > sugi > MessagePack-java
comparison src/test/java/org/msgpack/TestBufferPackConvert.java @ 0:cb825acd883a
first commit
author | sugi |
---|---|
date | Sat, 18 Oct 2014 15:06:15 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:cb825acd883a |
---|---|
1 package org.msgpack; | |
2 | |
3 import static org.junit.Assert.assertArrayEquals; | |
4 import static org.junit.Assert.assertEquals; | |
5 import static org.junit.Assert.assertTrue; | |
6 | |
7 import java.math.BigInteger; | |
8 import java.util.ArrayList; | |
9 import java.util.HashMap; | |
10 import java.util.Iterator; | |
11 import java.util.List; | |
12 import java.util.Map; | |
13 | |
14 import org.junit.Test; | |
15 import org.msgpack.packer.BufferPacker; | |
16 import org.msgpack.unpacker.BufferUnpacker; | |
17 import org.msgpack.unpacker.Converter; | |
18 import org.msgpack.type.Value; | |
19 | |
20 | |
21 public class TestBufferPackConvert extends TestSet { | |
22 | |
23 @Test @Override | |
24 public void testBoolean() throws Exception { | |
25 super.testBoolean(); | |
26 } | |
27 | |
28 @Override | |
29 public void testBoolean(boolean v) throws Exception { | |
30 MessagePack msgpack = new MessagePack(); | |
31 BufferPacker packer = msgpack.createBufferPacker(); | |
32 packer.write(v); | |
33 byte[] bytes = packer.toByteArray(); | |
34 BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes); | |
35 unpacker.resetReadByteCount(); | |
36 Value value = unpacker.readValue(); | |
37 assertTrue(value.isBooleanValue()); | |
38 boolean ret = new Converter(value).readBoolean(); | |
39 assertEquals(v, ret); | |
40 assertEquals(bytes.length, unpacker.getReadByteCount()); | |
41 } | |
42 | |
43 @Test @Override | |
44 public void testByte() throws Exception { | |
45 super.testByte(); | |
46 } | |
47 | |
48 @Override | |
49 public void testByte(byte v) throws Exception { | |
50 MessagePack msgpack = new MessagePack(); | |
51 BufferPacker packer = msgpack.createBufferPacker(); | |
52 packer.write(v); | |
53 byte[] bytes = packer.toByteArray(); | |
54 BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes); | |
55 unpacker.resetReadByteCount(); | |
56 Value value = unpacker.readValue(); | |
57 assertTrue(value.isIntegerValue()); | |
58 byte ret = new Converter(value).readByte(); | |
59 assertEquals(v, ret); | |
60 assertEquals(bytes.length, unpacker.getReadByteCount()); | |
61 } | |
62 | |
63 @Test @Override | |
64 public void testShort() throws Exception { | |
65 super.testShort(); | |
66 } | |
67 | |
68 @Override | |
69 public void testShort(short v) throws Exception { | |
70 MessagePack msgpack = new MessagePack(); | |
71 BufferPacker packer = msgpack.createBufferPacker(); | |
72 packer.write(v); | |
73 byte[] bytes = packer.toByteArray(); | |
74 BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes); | |
75 unpacker.resetReadByteCount(); | |
76 Value value = unpacker.readValue(); | |
77 assertTrue(value.isIntegerValue()); | |
78 short ret = new Converter(value).readShort(); | |
79 assertEquals(v, ret); | |
80 assertEquals(bytes.length, unpacker.getReadByteCount()); | |
81 } | |
82 | |
83 @Test @Override | |
84 public void testInteger() throws Exception { | |
85 super.testInteger(); | |
86 } | |
87 | |
88 @Override | |
89 public void testInteger(int v) throws Exception { | |
90 MessagePack msgpack = new MessagePack(); | |
91 BufferPacker packer = msgpack.createBufferPacker(); | |
92 packer.write(v); | |
93 byte[] bytes = packer.toByteArray(); | |
94 BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes); | |
95 unpacker.resetReadByteCount(); | |
96 Value value = unpacker.readValue(); | |
97 assertTrue(value.isIntegerValue()); | |
98 int ret = new Converter(value).readInt(); | |
99 assertEquals(v, ret); | |
100 assertEquals(bytes.length, unpacker.getReadByteCount()); | |
101 } | |
102 | |
103 @Test @Override | |
104 public void testLong() throws Exception { | |
105 super.testLong(); | |
106 } | |
107 | |
108 @Override | |
109 public void testLong(long v) throws Exception { | |
110 MessagePack msgpack = new MessagePack(); | |
111 BufferPacker packer = msgpack.createBufferPacker(); | |
112 packer.write(v); | |
113 byte[] bytes = packer.toByteArray(); | |
114 BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes); | |
115 unpacker.resetReadByteCount(); | |
116 Value value = unpacker.readValue(); | |
117 assertTrue(value.isIntegerValue()); | |
118 long ret = new Converter(value).readLong(); | |
119 assertEquals(v, ret); | |
120 assertEquals(bytes.length, unpacker.getReadByteCount()); | |
121 } | |
122 | |
123 @Test @Override | |
124 public void testFloat() throws Exception { | |
125 super.testFloat(); | |
126 } | |
127 | |
128 @Override | |
129 public void testFloat(float v) throws Exception { | |
130 MessagePack msgpack = new MessagePack(); | |
131 BufferPacker packer = msgpack.createBufferPacker(); | |
132 packer.write(v); | |
133 byte[] bytes = packer.toByteArray(); | |
134 BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes); | |
135 unpacker.resetReadByteCount(); | |
136 Value value = unpacker.readValue(); | |
137 assertTrue(value.isFloatValue()); | |
138 float ret = new Converter(value).readFloat(); | |
139 assertEquals(v, ret, 10e-10); | |
140 assertEquals(bytes.length, unpacker.getReadByteCount()); | |
141 } | |
142 | |
143 @Test @Override | |
144 public void testDouble() throws Exception { | |
145 super.testDouble(); | |
146 } | |
147 | |
148 @Override | |
149 public void testDouble(double v) throws Exception { | |
150 MessagePack msgpack = new MessagePack(); | |
151 BufferPacker packer = msgpack.createBufferPacker(); | |
152 packer.write(v); | |
153 byte[] bytes = packer.toByteArray(); | |
154 BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes); | |
155 unpacker.resetReadByteCount(); | |
156 Value value = unpacker.readValue(); | |
157 assertTrue(value.isFloatValue()); | |
158 double ret = new Converter(value).readDouble(); | |
159 assertEquals(v, ret, 10e-10); | |
160 assertEquals(bytes.length, unpacker.getReadByteCount()); | |
161 } | |
162 | |
163 @Test @Override | |
164 public void testNil() throws Exception { | |
165 MessagePack msgpack = new MessagePack(); | |
166 BufferPacker packer = msgpack.createBufferPacker(); | |
167 packer.writeNil(); | |
168 byte[] bytes = packer.toByteArray(); | |
169 BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes); | |
170 unpacker.resetReadByteCount(); | |
171 Value value = unpacker.readValue(); | |
172 assertTrue(value.isNilValue()); | |
173 new Converter(value).readNil(); | |
174 assertEquals(bytes.length, unpacker.getReadByteCount()); | |
175 } | |
176 | |
177 @Test @Override | |
178 public void testBigInteger() throws Exception { | |
179 super.testBigInteger(); | |
180 } | |
181 | |
182 @Override | |
183 public void testBigInteger(BigInteger v) throws Exception { | |
184 MessagePack msgpack = new MessagePack(); | |
185 BufferPacker packer = msgpack.createBufferPacker(); | |
186 packer.write(v); | |
187 byte[] bytes = packer.toByteArray(); | |
188 BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes); | |
189 unpacker.resetReadByteCount(); | |
190 Value value = unpacker.readValue(); | |
191 BigInteger ret = new Converter(value).read(BigInteger.class); | |
192 assertEquals(v, ret); | |
193 assertEquals(bytes.length, unpacker.getReadByteCount()); | |
194 } | |
195 | |
196 @Test @Override | |
197 public void testString() throws Exception { | |
198 super.testString(); | |
199 } | |
200 | |
201 @Override | |
202 public void testString(String v) throws Exception { | |
203 MessagePack msgpack = new MessagePack(); | |
204 BufferPacker packer = msgpack.createBufferPacker(); | |
205 packer.write(v); | |
206 byte[] bytes = packer.toByteArray(); | |
207 BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes); | |
208 unpacker.resetReadByteCount(); | |
209 Value value = unpacker.readValue(); | |
210 String ret = new Converter(value).read(String.class); | |
211 assertEquals(v, ret); | |
212 assertEquals(bytes.length, unpacker.getReadByteCount()); | |
213 } | |
214 | |
215 @Test @Override | |
216 public void testByteArray() throws Exception { | |
217 super.testByteArray(); | |
218 } | |
219 | |
220 @Override | |
221 public void testByteArray(byte[] v) throws Exception { | |
222 MessagePack msgpack = new MessagePack(); | |
223 BufferPacker packer = msgpack.createBufferPacker(); | |
224 packer.write(v); | |
225 byte[] bytes = packer.toByteArray(); | |
226 BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes); | |
227 unpacker.resetReadByteCount(); | |
228 Value value = unpacker.readValue(); | |
229 byte[] ret = new Converter(value).read(byte[].class); | |
230 assertArrayEquals(v, ret); | |
231 assertEquals(bytes.length, unpacker.getReadByteCount()); | |
232 } | |
233 | |
234 @Test @Override | |
235 public void testList() throws Exception { | |
236 super.testList(); | |
237 } | |
238 | |
239 @Override | |
240 public <E> void testList(List<E> v, Class<E> elementClass) throws Exception { | |
241 MessagePack msgpack = new MessagePack(); | |
242 BufferPacker packer = msgpack.createBufferPacker(); | |
243 if (v == null) { | |
244 packer.writeNil(); | |
245 } else { | |
246 packer.writeArrayBegin(v.size()); | |
247 for (Object o : v) { | |
248 packer.write(o); | |
249 } | |
250 packer.writeArrayEnd(); | |
251 } | |
252 byte[] bytes = packer.toByteArray(); | |
253 BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes); | |
254 unpacker.resetReadByteCount(); | |
255 if (unpacker.trySkipNil()) { | |
256 assertEquals(null, v); | |
257 return; | |
258 } | |
259 int size = unpacker.readArrayBegin(); | |
260 List<E> ret = new ArrayList<E>(size); | |
261 for (int i = 0; i < size; ++i) { | |
262 Value value = unpacker.readValue(); | |
263 ret.add(new Converter(value).read(elementClass)); | |
264 } | |
265 unpacker.readArrayEnd(); | |
266 assertEquals(v.size(), ret.size()); | |
267 Iterator<E> v_iter = v.iterator(); | |
268 Iterator<E> ret_iter = ret.iterator(); | |
269 while (v_iter.hasNext()) { | |
270 assertEquals(v_iter.next(), ret_iter.next()); | |
271 } | |
272 assertEquals(bytes.length, unpacker.getReadByteCount()); | |
273 } | |
274 | |
275 @Test @Override | |
276 public void testMap() throws Exception { | |
277 super.testMap(); | |
278 } | |
279 | |
280 @Override | |
281 public <K, V> void testMap(Map<K, V> v, Class<K> keyElementClass, Class<V> valueElementClass) throws Exception { | |
282 MessagePack msgpack = new MessagePack(); | |
283 BufferPacker packer = msgpack.createBufferPacker(); | |
284 if (v == null) { | |
285 packer.writeNil(); | |
286 } else { | |
287 packer.writeMapBegin(v.size()); | |
288 for (Map.Entry<K, V> e : ((Map<K, V>) v).entrySet()) { | |
289 packer.write(e.getKey()); | |
290 packer.write(e.getValue()); | |
291 } | |
292 packer.writeMapEnd(); | |
293 } | |
294 byte[] bytes = packer.toByteArray(); | |
295 BufferUnpacker unpacker = msgpack.createBufferUnpacker(bytes); | |
296 unpacker.resetReadByteCount(); | |
297 if (unpacker.trySkipNil()) { | |
298 assertEquals(null, v); | |
299 return; | |
300 } | |
301 int size = unpacker.readMapBegin(); | |
302 Map<K, V> ret = new HashMap<K, V>(size); | |
303 for (int i = 0; i < size; ++i) { | |
304 Value keyValue = unpacker.readValue(); | |
305 K key = new Converter(keyValue).read(keyElementClass); | |
306 Value valueValue = unpacker.readValue(); | |
307 V value = new Converter(valueValue).read(valueElementClass); | |
308 ret.put(key, value); | |
309 } | |
310 unpacker.readMapEnd(); | |
311 assertEquals(v.size(), ret.size()); | |
312 for (Map.Entry<K, V> e : ((Map<K, V>) v).entrySet()) { | |
313 Object value = ret.get(e.getKey()); | |
314 assertEquals(e.getValue(), value); | |
315 } | |
316 assertEquals(bytes.length, unpacker.getReadByteCount()); | |
317 } | |
318 } |