annotate src/test/java/org/msgpack/TestNestedList.java @ 0:cb825acd883a

first commit
author sugi
date Sat, 18 Oct 2014 15:06:15 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cb825acd883a first commit
sugi
parents:
diff changeset
1 package org.msgpack;
cb825acd883a first commit
sugi
parents:
diff changeset
2
cb825acd883a first commit
sugi
parents:
diff changeset
3 import junit.framework.Assert;
cb825acd883a first commit
sugi
parents:
diff changeset
4 import org.junit.Before;
cb825acd883a first commit
sugi
parents:
diff changeset
5 import org.junit.Test;
cb825acd883a first commit
sugi
parents:
diff changeset
6 import org.msgpack.annotation.Message;
cb825acd883a first commit
sugi
parents:
diff changeset
7 import org.msgpack.type.ArrayValue;
cb825acd883a first commit
sugi
parents:
diff changeset
8 import org.msgpack.type.Value;
cb825acd883a first commit
sugi
parents:
diff changeset
9
cb825acd883a first commit
sugi
parents:
diff changeset
10 import java.io.IOException;
cb825acd883a first commit
sugi
parents:
diff changeset
11 import java.util.ArrayList;
cb825acd883a first commit
sugi
parents:
diff changeset
12 import java.util.List;
cb825acd883a first commit
sugi
parents:
diff changeset
13
cb825acd883a first commit
sugi
parents:
diff changeset
14 /**
cb825acd883a first commit
sugi
parents:
diff changeset
15 * User: takeshita
cb825acd883a first commit
sugi
parents:
diff changeset
16 * Create: 11/10/17 23:17
cb825acd883a first commit
sugi
parents:
diff changeset
17 */
cb825acd883a first commit
sugi
parents:
diff changeset
18 public class TestNestedList {
cb825acd883a first commit
sugi
parents:
diff changeset
19
cb825acd883a first commit
sugi
parents:
diff changeset
20 MessagePack messagePack;
cb825acd883a first commit
sugi
parents:
diff changeset
21
cb825acd883a first commit
sugi
parents:
diff changeset
22 @Before
cb825acd883a first commit
sugi
parents:
diff changeset
23 public void before(){
cb825acd883a first commit
sugi
parents:
diff changeset
24 messagePack = new MessagePack();
cb825acd883a first commit
sugi
parents:
diff changeset
25 }
cb825acd883a first commit
sugi
parents:
diff changeset
26
cb825acd883a first commit
sugi
parents:
diff changeset
27 @Test
cb825acd883a first commit
sugi
parents:
diff changeset
28 public void testTestNestedList() throws IOException {
cb825acd883a first commit
sugi
parents:
diff changeset
29 NestedList obj = new NestedList();
cb825acd883a first commit
sugi
parents:
diff changeset
30 obj.list.add(list("aaa", "bbb"));
cb825acd883a first commit
sugi
parents:
diff changeset
31 obj.list.add(list(new MyClass("obj1"), new MyClass("obj2")));
cb825acd883a first commit
sugi
parents:
diff changeset
32 obj.list2.add((List<MyClass>)list(new MyClass("obj3")));
cb825acd883a first commit
sugi
parents:
diff changeset
33
cb825acd883a first commit
sugi
parents:
diff changeset
34 byte[] bytes = messagePack.write(obj);
cb825acd883a first commit
sugi
parents:
diff changeset
35
cb825acd883a first commit
sugi
parents:
diff changeset
36 // Can't unpack as NestedList
cb825acd883a first commit
sugi
parents:
diff changeset
37 Value unpacked = messagePack.read(bytes);
cb825acd883a first commit
sugi
parents:
diff changeset
38 ArrayValue root = unpacked.asArrayValue().getElementArray()[0].asArrayValue();
cb825acd883a first commit
sugi
parents:
diff changeset
39 ArrayValue list1 = root.getElementArray()[0].asArrayValue();
cb825acd883a first commit
sugi
parents:
diff changeset
40 ArrayValue list2 = root.getElementArray()[1].asArrayValue();
cb825acd883a first commit
sugi
parents:
diff changeset
41 ArrayValue list3 = unpacked.asArrayValue().getElementArray()[1].asArrayValue();
cb825acd883a first commit
sugi
parents:
diff changeset
42 list3 = list3.getElementArray()[0].asArrayValue();
cb825acd883a first commit
sugi
parents:
diff changeset
43
cb825acd883a first commit
sugi
parents:
diff changeset
44 Assert.assertEquals("aaa",list1.getElementArray()[0].asRawValue().getString());
cb825acd883a first commit
sugi
parents:
diff changeset
45 Assert.assertEquals("bbb",list1.getElementArray()[1].asRawValue().getString());
cb825acd883a first commit
sugi
parents:
diff changeset
46 Assert.assertEquals("obj1",messagePack.convert(list2.getElementArray()[0],MyClass.class).name);
cb825acd883a first commit
sugi
parents:
diff changeset
47 Assert.assertEquals("obj2",messagePack.convert(list2.getElementArray()[1],MyClass.class).name);
cb825acd883a first commit
sugi
parents:
diff changeset
48 Assert.assertEquals("obj3",messagePack.convert(list3.getElementArray()[0],MyClass.class).name);
cb825acd883a first commit
sugi
parents:
diff changeset
49
cb825acd883a first commit
sugi
parents:
diff changeset
50 }
cb825acd883a first commit
sugi
parents:
diff changeset
51
cb825acd883a first commit
sugi
parents:
diff changeset
52 @Test
cb825acd883a first commit
sugi
parents:
diff changeset
53 public void testNestedListToValue() throws IOException {
cb825acd883a first commit
sugi
parents:
diff changeset
54
cb825acd883a first commit
sugi
parents:
diff changeset
55 List values = list( list("hoge",4) , list(list(2,"aaa"),list("bbb")));
cb825acd883a first commit
sugi
parents:
diff changeset
56
cb825acd883a first commit
sugi
parents:
diff changeset
57 Value value = messagePack.unconvert(values);
cb825acd883a first commit
sugi
parents:
diff changeset
58
cb825acd883a first commit
sugi
parents:
diff changeset
59 Value[] rootArray = value.asArrayValue().getElementArray();
cb825acd883a first commit
sugi
parents:
diff changeset
60 Value[] list1 = rootArray[0].asArrayValue().getElementArray();
cb825acd883a first commit
sugi
parents:
diff changeset
61 Value[] list2 = rootArray[1].asArrayValue().getElementArray();
cb825acd883a first commit
sugi
parents:
diff changeset
62 Value[] list3 = list2[0].asArrayValue().getElementArray();
cb825acd883a first commit
sugi
parents:
diff changeset
63 Value[] list4 = list2[1].asArrayValue().getElementArray();
cb825acd883a first commit
sugi
parents:
diff changeset
64 Assert.assertEquals("hoge",list1[0].asRawValue().getString());
cb825acd883a first commit
sugi
parents:
diff changeset
65 Assert.assertEquals(4,list1[1].asIntegerValue().getInt());
cb825acd883a first commit
sugi
parents:
diff changeset
66 Assert.assertEquals(2,list3[0].asIntegerValue().getInt());
cb825acd883a first commit
sugi
parents:
diff changeset
67 Assert.assertEquals("aaa",list3[1].asRawValue().getString());
cb825acd883a first commit
sugi
parents:
diff changeset
68 Assert.assertEquals("bbb",list4[0].asRawValue().getString());
cb825acd883a first commit
sugi
parents:
diff changeset
69
cb825acd883a first commit
sugi
parents:
diff changeset
70 }
cb825acd883a first commit
sugi
parents:
diff changeset
71
cb825acd883a first commit
sugi
parents:
diff changeset
72 private List<?> list( Object ... elements){
cb825acd883a first commit
sugi
parents:
diff changeset
73 List<Object> list = new ArrayList();
cb825acd883a first commit
sugi
parents:
diff changeset
74 for(Object o : elements){
cb825acd883a first commit
sugi
parents:
diff changeset
75 list.add(o);
cb825acd883a first commit
sugi
parents:
diff changeset
76 }
cb825acd883a first commit
sugi
parents:
diff changeset
77 return list;
cb825acd883a first commit
sugi
parents:
diff changeset
78 }
cb825acd883a first commit
sugi
parents:
diff changeset
79
cb825acd883a first commit
sugi
parents:
diff changeset
80 @Message
cb825acd883a first commit
sugi
parents:
diff changeset
81 public static class NestedList{
cb825acd883a first commit
sugi
parents:
diff changeset
82 public List<List> list = new ArrayList<List>();
cb825acd883a first commit
sugi
parents:
diff changeset
83
cb825acd883a first commit
sugi
parents:
diff changeset
84 public List<List<MyClass>> list2 = new ArrayList<List<MyClass>>();
cb825acd883a first commit
sugi
parents:
diff changeset
85
cb825acd883a first commit
sugi
parents:
diff changeset
86 }
cb825acd883a first commit
sugi
parents:
diff changeset
87
cb825acd883a first commit
sugi
parents:
diff changeset
88 @Message
cb825acd883a first commit
sugi
parents:
diff changeset
89 public static class MyClass{
cb825acd883a first commit
sugi
parents:
diff changeset
90 String name;
cb825acd883a first commit
sugi
parents:
diff changeset
91
cb825acd883a first commit
sugi
parents:
diff changeset
92 public MyClass(){}
cb825acd883a first commit
sugi
parents:
diff changeset
93 public MyClass(String n ){ name = n;}
cb825acd883a first commit
sugi
parents:
diff changeset
94 }
cb825acd883a first commit
sugi
parents:
diff changeset
95
cb825acd883a first commit
sugi
parents:
diff changeset
96 }