summaryrefslogtreecommitdiff
path: root/java/src/test
diff options
context:
space:
mode:
authorfrsyuki <frsyuki@users.sourceforge.jp>2010-10-24 20:46:22 +0900
committerfrsyuki <frsyuki@users.sourceforge.jp>2010-10-24 20:46:22 +0900
commit7ac4ad3e38d5537e83a36f2d9fb9a5ce872c0c57 (patch)
treec47572c05ff65ac0d2962bd1523c6cd3220911ae /java/src/test
parent0a345cb12bb77c7afc5b29cc4568f717e7862ff6 (diff)
downloadmsgpack-python-7ac4ad3e38d5537e83a36f2d9fb9a5ce872c0c57.tar.gz
java: adds MessagePack.register methods
Diffstat (limited to 'java/src/test')
-rw-r--r--java/src/test/java/org/msgpack/TestMessagePackStaticMethods.java73
1 files changed, 73 insertions, 0 deletions
diff --git a/java/src/test/java/org/msgpack/TestMessagePackStaticMethods.java b/java/src/test/java/org/msgpack/TestMessagePackStaticMethods.java
index b91615b..f2aad15 100644
--- a/java/src/test/java/org/msgpack/TestMessagePackStaticMethods.java
+++ b/java/src/test/java/org/msgpack/TestMessagePackStaticMethods.java
@@ -12,23 +12,51 @@ import org.junit.Test;
import junit.framework.TestCase;
public class TestMessagePackStaticMethods extends TestCase {
+ public static class CustomClass {
+ public boolean bool;
+ public String str;
+ public List<Integer> list;
+
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof CustomClass)) {
+ return false;
+ }
+ CustomClass o = (CustomClass)obj;
+ return bool == o.bool && str.equals(o.str) && list.equals(o.list);
+ }
+
+ public String toString() {
+ return "CustomClass<bool:"+bool+" str:"+str+" list:"+list+">";
+ }
+ }
+
+ static {
+ MessagePack.register(CustomClass.class);
+ }
+
@Test
public void testPackToByteArray() throws Exception {
byte[] a = MessagePack.pack("msgpack");
byte[] b = MessagePack.pack((Object)1);
byte[] c = MessagePack.pack((Object)null);
byte[] d = MessagePack.pack(createStringList());
+ byte[] e = MessagePack.pack(createCustomClass());
{
MessagePackObject aobj = MessagePack.unpack(a);
MessagePackObject bobj = MessagePack.unpack(b);
MessagePackObject cobj = MessagePack.unpack(c);
MessagePackObject dobj = MessagePack.unpack(d);
+ MessagePackObject eobj = MessagePack.unpack(e);
assertEquals(aobj, RawType.create("msgpack"));
assertEquals(bobj, IntegerType.create(1));
assertEquals(cobj, NilType.create());
assertEquals(dobj, createStringList_dynamic());
+ assertEquals(eobj, createCustomClass_dynamic());
}
}
@@ -42,6 +70,8 @@ public class TestMessagePackStaticMethods extends TestCase {
MessagePack.pack(cout, (Object)null);
ByteArrayOutputStream dout = new ByteArrayOutputStream();
MessagePack.pack(dout, createStringList());
+ ByteArrayOutputStream eout = new ByteArrayOutputStream();
+ MessagePack.pack(eout, createCustomClass());
{
InputStream ain = new ByteArrayInputStream(aout.toByteArray());
@@ -52,11 +82,14 @@ public class TestMessagePackStaticMethods extends TestCase {
MessagePackObject cobj = MessagePack.unpack(cin);
InputStream din = new ByteArrayInputStream(dout.toByteArray());
MessagePackObject dobj = MessagePack.unpack(din);
+ InputStream ein = new ByteArrayInputStream(eout.toByteArray());
+ MessagePackObject eobj = MessagePack.unpack(ein);
assertEquals(aobj, RawType.create("msgpack"));
assertEquals(bobj, IntegerType.create(1));
assertEquals(cobj, NilType.create());
assertEquals(dobj, createStringList_dynamic());
+ assertEquals(eobj, createCustomClass_dynamic());
}
}
@@ -66,6 +99,7 @@ public class TestMessagePackStaticMethods extends TestCase {
byte[] b = MessagePack.pack((Object)1, TInteger);
byte[] c = MessagePack.pack((Object)null, TAny);
byte[] d = MessagePack.pack(createStringList(), tList(TString));
+ byte[] e = MessagePack.pack(createCustomClass(), tClass(CustomClass.class));
{
Object aobj = MessagePack.unpack(a, TString);
@@ -73,20 +107,26 @@ public class TestMessagePackStaticMethods extends TestCase {
Object cobj_any = MessagePack.unpack(c, TAny);
Object cobj_obj = MessagePack.unpack(c, tOptional(TAny));
Object dobj = MessagePack.unpack(d, tList(TString));
+ Object eobj = MessagePack.unpack(e, tClass(CustomClass.class));
+
assertEquals(aobj, "msgpack");
assertEquals(bobj, 1);
assertEquals(cobj_any, NilType.create());
assertEquals(cobj_obj, null);
assertEquals(dobj, createStringList());
+ assertEquals(eobj, createCustomClass());
}
{
String aobj = MessagePack.unpack(a, String.class);
Integer bobj = MessagePack.unpack(b, Integer.class);
Object cobj = MessagePack.unpack(c, Object.class);
+ CustomClass eobj = MessagePack.unpack(e, CustomClass.class);
+
assertEquals(aobj, "msgpack");
assertEquals(bobj, (Integer)1);
assertEquals(cobj, null);
+ assertEquals(eobj, createCustomClass());
}
}
@@ -100,6 +140,8 @@ public class TestMessagePackStaticMethods extends TestCase {
MessagePack.pack(cout, (Object)null);
ByteArrayOutputStream dout = new ByteArrayOutputStream();
MessagePack.pack(dout, createStringList());
+ ByteArrayOutputStream eout = new ByteArrayOutputStream();
+ MessagePack.pack(eout, createCustomClass());
{
InputStream ain = new ByteArrayInputStream(aout.toByteArray());
@@ -112,12 +154,15 @@ public class TestMessagePackStaticMethods extends TestCase {
Object cobj_obj = MessagePack.unpack(cin_obj, tOptional(TAny));
InputStream din = new ByteArrayInputStream(dout.toByteArray());
Object dobj = MessagePack.unpack(din, tList(TString));
+ InputStream ein = new ByteArrayInputStream(eout.toByteArray());
+ Object eobj = MessagePack.unpack(ein, tClass(CustomClass.class));
assertEquals(aobj, "msgpack");
assertEquals(bobj, 1);
assertEquals(cobj_any, NilType.create());
assertEquals(cobj_obj, null);
assertEquals(dobj, createStringList());
+ assertEquals(eobj, createCustomClass());
}
{
@@ -127,13 +172,17 @@ public class TestMessagePackStaticMethods extends TestCase {
Integer bobj = MessagePack.unpack(bin, Integer.class);
InputStream cin = new ByteArrayInputStream(cout.toByteArray());
Object cobj = MessagePack.unpack(cin, Object.class);
+ InputStream ein = new ByteArrayInputStream(eout.toByteArray());
+ Object eobj = MessagePack.unpack(ein, CustomClass.class);
assertEquals(aobj, "msgpack");
assertEquals(bobj, (Integer)1);
assertEquals(cobj, null);
+ assertEquals(eobj, createCustomClass());
}
}
+
private List<String> createStringList() {
List<String> list = new ArrayList<String>();
list.add("frsyuki");
@@ -149,5 +198,29 @@ public class TestMessagePackStaticMethods extends TestCase {
array[2] = RawType.create("gem-compile");
return ArrayType.create(array);
}
+
+
+ private CustomClass createCustomClass() {
+ CustomClass obj = new CustomClass();
+ obj.bool = true;
+ obj.str = "viver";
+ obj.list = new ArrayList<Integer>();
+ obj.list.add(1);
+ obj.list.add(2);
+ obj.list.add(3);
+ return obj;
+ }
+
+ private MessagePackObject createCustomClass_dynamic() {
+ MessagePackObject[] obj = new MessagePackObject[3];
+ obj[0] = BooleanType.create(true);
+ obj[1] = RawType.create("viver");
+ MessagePackObject[] list = new MessagePackObject[3];
+ list[0] = IntegerType.create(1);
+ list[1] = IntegerType.create(2);
+ list[2] = IntegerType.create(3);
+ obj[2] = ArrayType.create(list);
+ return ArrayType.create(obj);
+ }
}