Skip to content

Commit 02182a5

Browse files
committed
added test programs for pack/unpacking List, Map objects with BufferPacker and BufferUnpacker
1 parent b7513bc commit 02182a5

2 files changed

Lines changed: 90 additions & 14 deletions

File tree

src/test/java/org/msgpack/TestBufferPackBufferUnpack.java

Lines changed: 66 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@
44
import static org.junit.Assert.assertEquals;
55

66
import java.math.BigInteger;
7+
import java.util.ArrayList;
8+
import java.util.HashMap;
9+
import java.util.Iterator;
710
import java.util.List;
11+
import java.util.Map;
812

913
import org.junit.Test;
1014
import org.msgpack.packer.BufferPacker;
@@ -189,7 +193,67 @@ public void testList() throws Exception {
189193
}
190194

191195
@Override
192-
public void testList(List v) throws Exception {
193-
// TODO
196+
public void testList(List v, Class<?> elementClass) throws Exception {
197+
BufferPacker packer = new BufferPacker();
198+
// TODO #MN
199+
System.out.println("## v.size: " + v.size());
200+
packer.writeArrayBegin(v.size());
201+
for (Object o : v) {
202+
packer.write(o);
203+
}
204+
packer.writeArrayEnd();
205+
byte[] bytes = packer.toByteArray();
206+
BufferUnpacker unpacker = new BufferUnpacker();
207+
unpacker.wrap(bytes);
208+
int size = unpacker.readArrayBegin();
209+
// TODO #MN
210+
System.out.println("## ret.size: " + size);
211+
List ret = new ArrayList(size);
212+
for (int i = 0; i < size; ++i) {
213+
ret.add(unpacker.read(elementClass));
214+
}
215+
unpacker.readArrayEnd();
216+
assertEquals(v.size(), ret.size());
217+
Iterator v_iter = v.iterator();
218+
Iterator ret_iter = ret.iterator();
219+
while (v_iter.hasNext()) {
220+
assertEquals(v_iter.next(), ret_iter.next());
221+
}
222+
}
223+
224+
@Test @Override
225+
public void testMap() throws Exception {
226+
super.testMap();
227+
}
228+
229+
@Override
230+
public void testMap(Map v, Class<?> keyElementClass, Class<?> valueElementClass) throws Exception {
231+
BufferPacker packer = new BufferPacker();
232+
// TODO #MN
233+
System.out.println("## v.size: " + v.size());
234+
packer.writeMapBegin(v.size());
235+
for (Map.Entry<Object, Object> e : ((Map<Object, Object>) v).entrySet()) {
236+
packer.write(e.getKey());
237+
packer.write(e.getValue());
238+
}
239+
packer.writeMapEnd();
240+
byte[] bytes = packer.toByteArray();
241+
BufferUnpacker unpacker = new BufferUnpacker();
242+
unpacker.wrap(bytes);
243+
int size = unpacker.readMapBegin();
244+
// TODO #MN
245+
System.out.println("## ret.size: " + size);
246+
Map ret = new HashMap(size);
247+
for (int i = 0; i < size; ++i) {
248+
Object key = unpacker.read(keyElementClass);
249+
Object value = unpacker.read(valueElementClass);
250+
ret.put(key, value);
251+
}
252+
unpacker.readMapEnd();
253+
assertEquals(v.size(), ret.size());
254+
for (Map.Entry<Object, Object> e : ((Map<Object, Object>) v).entrySet()) {
255+
Object value = ret.get(e.getKey());
256+
assertEquals(e.getValue(), value);
257+
}
194258
}
195259
}

src/test/java/org/msgpack/TestSet.java

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -342,43 +342,55 @@ public void testByteBuffer(ByteBuffer v) throws Exception {
342342
public void testList() throws Exception {
343343
// FIXME testList(null);
344344
List<Integer> list0 = new ArrayList<Integer>();
345-
testList(list0);
345+
testList(list0, Integer.class);
346346
List<Integer> list1 = new ArrayList<Integer>();
347347
Random rand1 = new Random();
348-
for (int i = 0; i < 1000; ++i) {
348+
for (int i = 0; i < 10; ++i) {
349349
list1.add(rand1.nextInt());
350350
}
351-
testList(list1);
351+
testList(list1, Integer.class);
352352
List<String> list2 = new ArrayList<String>();
353353
Random rand2 = new Random();
354-
for (int i = 0; i < 1000; ++i) {
354+
for (int i = 0; i < 100; ++i) {
355355
list2.add("xx" + rand2.nextInt());
356356
}
357-
testList(list2);
357+
testList(list2, String.class);
358+
List<String> list3 = new ArrayList<String>();
359+
Random rand3 = new Random();
360+
for (int i = 0; i < 1000; ++i) {
361+
list3.add("xx" + rand3.nextInt());
362+
}
363+
testList(list3, String.class);
358364
}
359365

360-
public void testList(List v) throws Exception {
366+
public void testList(List v, Class<?> elementClass) throws Exception {
361367
}
362368

363369
public void testMap() throws Exception {
364370
// FIXME testMap(null);
365371
Map<Integer, Integer> map0 = new HashMap<Integer, Integer>();
366-
testMap(map0);
372+
testMap(map0, Integer.class, Integer.class);
367373
Map<Integer, Integer> map1 = new HashMap<Integer, Integer>();
368374
Random rand1 = new Random();
369-
for (int i = 0; i < 1000; ++i) {
375+
for (int i = 0; i < 10; ++i) {
370376
map1.put(rand1.nextInt(), rand1.nextInt());
371377
}
372-
testMap(map1);
378+
testMap(map1, Integer.class, Integer.class);
373379
Map<String, Integer> map2 = new HashMap<String, Integer>();
374380
Random rand2 = new Random();
375-
for (int i = 0; i < 1000; ++i) {
381+
for (int i = 0; i < 100; ++i) {
376382
map2.put("xx" + rand2.nextInt(), rand2.nextInt());
377383
}
378-
testMap(map2);
384+
testMap(map2, String.class, Integer.class);
385+
Map<String, Integer> map3 = new HashMap<String, Integer>();
386+
Random rand3= new Random();
387+
for (int i = 0; i < 1000; ++i) {
388+
map3.put("xx" + rand3.nextInt(), rand3.nextInt());
389+
}
390+
testMap(map3, String.class, Integer.class);
379391
}
380392

381-
public void testMap(Map v) throws Exception {
393+
public void testMap(Map v, Class<?> keyElementClass, Class<?> valueElementClass) throws Exception {
382394
}
383395

384396
public void testBigInteger() throws Exception {

0 commit comments

Comments
 (0)