From 1b3231e6174e3ea908a5fd3ae1437e43b1a2c320 Mon Sep 17 00:00:00 2001 From: frsyuki Date: Sun, 24 Oct 2010 20:59:19 +0900 Subject: [PATCH] java: improves test case of the MessagePack class --- .../msgpack/TestMessagePackStaticMethods.java | 114 ++++++++++++++---- 1 file changed, 92 insertions(+), 22 deletions(-) diff --git a/java/src/test/java/org/msgpack/TestMessagePackStaticMethods.java b/java/src/test/java/org/msgpack/TestMessagePackStaticMethods.java index f2aad15e..5d979539 100644 --- a/java/src/test/java/org/msgpack/TestMessagePackStaticMethods.java +++ b/java/src/test/java/org/msgpack/TestMessagePackStaticMethods.java @@ -2,6 +2,7 @@ package org.msgpack; import org.msgpack.*; import org.msgpack.object.*; +import org.msgpack.annotation.*; import static org.msgpack.Templates.*; import java.io.*; @@ -12,7 +13,7 @@ import org.junit.Test; import junit.framework.TestCase; public class TestMessagePackStaticMethods extends TestCase { - public static class CustomClass { + public static class ProvidedClass { public boolean bool; public String str; public List list; @@ -21,20 +22,44 @@ public class TestMessagePackStaticMethods extends TestCase { if (obj == this) { return true; } - if (!(obj instanceof CustomClass)) { + if (!(obj instanceof ProvidedClass)) { return false; } - CustomClass o = (CustomClass)obj; + ProvidedClass o = (ProvidedClass)obj; return bool == o.bool && str.equals(o.str) && list.equals(o.list); } public String toString() { - return "CustomClass"; + return "ProvidedClass"; + } + } + + @MessagePackMessage + public static class UserDefinedClass { + public boolean bool; + public String str; + public List list; + + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof UserDefinedClass)) { + return false; + } + UserDefinedClass o = (UserDefinedClass)obj; + return bool == o.bool && str.equals(o.str) && list.equals(o.list); + } + + public String toString() { + return "UserDefinedClass"; } } static { - MessagePack.register(CustomClass.class); + // provided classes needs registration + MessagePack.register(ProvidedClass.class); + // annotated classes doesn't need registration } @Test @@ -43,7 +68,8 @@ public class TestMessagePackStaticMethods extends TestCase { byte[] b = MessagePack.pack((Object)1); byte[] c = MessagePack.pack((Object)null); byte[] d = MessagePack.pack(createStringList()); - byte[] e = MessagePack.pack(createCustomClass()); + byte[] e = MessagePack.pack(createProvidedClass()); + byte[] f = MessagePack.pack(createUserDefinedClass_dynamic()); { MessagePackObject aobj = MessagePack.unpack(a); @@ -51,12 +77,14 @@ public class TestMessagePackStaticMethods extends TestCase { MessagePackObject cobj = MessagePack.unpack(c); MessagePackObject dobj = MessagePack.unpack(d); MessagePackObject eobj = MessagePack.unpack(e); + MessagePackObject fobj = MessagePack.unpack(f); assertEquals(aobj, RawType.create("msgpack")); assertEquals(bobj, IntegerType.create(1)); assertEquals(cobj, NilType.create()); assertEquals(dobj, createStringList_dynamic()); - assertEquals(eobj, createCustomClass_dynamic()); + assertEquals(eobj, createProvidedClass_dynamic()); + assertEquals(fobj, createUserDefinedClass_dynamic()); } } @@ -71,7 +99,9 @@ public class TestMessagePackStaticMethods extends TestCase { ByteArrayOutputStream dout = new ByteArrayOutputStream(); MessagePack.pack(dout, createStringList()); ByteArrayOutputStream eout = new ByteArrayOutputStream(); - MessagePack.pack(eout, createCustomClass()); + MessagePack.pack(eout, createProvidedClass()); + ByteArrayOutputStream fout = new ByteArrayOutputStream(); + MessagePack.pack(fout, createUserDefinedClass()); { InputStream ain = new ByteArrayInputStream(aout.toByteArray()); @@ -84,12 +114,15 @@ public class TestMessagePackStaticMethods extends TestCase { MessagePackObject dobj = MessagePack.unpack(din); InputStream ein = new ByteArrayInputStream(eout.toByteArray()); MessagePackObject eobj = MessagePack.unpack(ein); + InputStream fin = new ByteArrayInputStream(fout.toByteArray()); + MessagePackObject fobj = MessagePack.unpack(fin); assertEquals(aobj, RawType.create("msgpack")); assertEquals(bobj, IntegerType.create(1)); assertEquals(cobj, NilType.create()); assertEquals(dobj, createStringList_dynamic()); - assertEquals(eobj, createCustomClass_dynamic()); + assertEquals(eobj, createProvidedClass_dynamic()); + assertEquals(fobj, createUserDefinedClass_dynamic()); } } @@ -99,7 +132,8 @@ 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)); + byte[] e = MessagePack.pack(createProvidedClass(), tClass(ProvidedClass.class)); + byte[] f = MessagePack.pack(createUserDefinedClass(), tClass(UserDefinedClass.class)); { Object aobj = MessagePack.unpack(a, TString); @@ -107,26 +141,30 @@ 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)); + Object eobj = MessagePack.unpack(e, tClass(ProvidedClass.class)); + Object fobj = MessagePack.unpack(f, tClass(UserDefinedClass.class)); assertEquals(aobj, "msgpack"); assertEquals(bobj, 1); assertEquals(cobj_any, NilType.create()); assertEquals(cobj_obj, null); assertEquals(dobj, createStringList()); - assertEquals(eobj, createCustomClass()); + assertEquals(eobj, createProvidedClass()); + assertEquals(fobj, createUserDefinedClass()); } { 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); + ProvidedClass eobj = MessagePack.unpack(e, ProvidedClass.class); + UserDefinedClass fobj = MessagePack.unpack(f, UserDefinedClass.class); assertEquals(aobj, "msgpack"); assertEquals(bobj, (Integer)1); assertEquals(cobj, null); - assertEquals(eobj, createCustomClass()); + assertEquals(eobj, createProvidedClass()); + assertEquals(fobj, createUserDefinedClass()); } } @@ -141,7 +179,9 @@ public class TestMessagePackStaticMethods extends TestCase { ByteArrayOutputStream dout = new ByteArrayOutputStream(); MessagePack.pack(dout, createStringList()); ByteArrayOutputStream eout = new ByteArrayOutputStream(); - MessagePack.pack(eout, createCustomClass()); + MessagePack.pack(eout, createProvidedClass()); + ByteArrayOutputStream fout = new ByteArrayOutputStream(); + MessagePack.pack(fout, createUserDefinedClass()); { InputStream ain = new ByteArrayInputStream(aout.toByteArray()); @@ -155,14 +195,17 @@ public class TestMessagePackStaticMethods extends TestCase { 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)); + Object eobj = MessagePack.unpack(ein, tClass(ProvidedClass.class)); + InputStream fin = new ByteArrayInputStream(fout.toByteArray()); + Object fobj = MessagePack.unpack(fin, tClass(UserDefinedClass.class)); assertEquals(aobj, "msgpack"); assertEquals(bobj, 1); assertEquals(cobj_any, NilType.create()); assertEquals(cobj_obj, null); assertEquals(dobj, createStringList()); - assertEquals(eobj, createCustomClass()); + assertEquals(eobj, createProvidedClass()); + assertEquals(fobj, createUserDefinedClass()); } { @@ -173,12 +216,15 @@ public class TestMessagePackStaticMethods extends TestCase { 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); + ProvidedClass eobj = MessagePack.unpack(ein, ProvidedClass.class); + InputStream fin = new ByteArrayInputStream(fout.toByteArray()); + UserDefinedClass fobj = MessagePack.unpack(fin, UserDefinedClass.class); assertEquals(aobj, "msgpack"); assertEquals(bobj, (Integer)1); assertEquals(cobj, null); - assertEquals(eobj, createCustomClass()); + assertEquals(eobj, createProvidedClass()); + assertEquals(fobj, createUserDefinedClass()); } } @@ -200,8 +246,8 @@ public class TestMessagePackStaticMethods extends TestCase { } - private CustomClass createCustomClass() { - CustomClass obj = new CustomClass(); + private ProvidedClass createProvidedClass() { + ProvidedClass obj = new ProvidedClass(); obj.bool = true; obj.str = "viver"; obj.list = new ArrayList(); @@ -211,7 +257,7 @@ public class TestMessagePackStaticMethods extends TestCase { return obj; } - private MessagePackObject createCustomClass_dynamic() { + private MessagePackObject createProvidedClass_dynamic() { MessagePackObject[] obj = new MessagePackObject[3]; obj[0] = BooleanType.create(true); obj[1] = RawType.create("viver"); @@ -222,5 +268,29 @@ public class TestMessagePackStaticMethods extends TestCase { obj[2] = ArrayType.create(list); return ArrayType.create(obj); } + + + private UserDefinedClass createUserDefinedClass() { + UserDefinedClass obj = new UserDefinedClass(); + obj.bool = false; + obj.str = "muga"; + obj.list = new ArrayList(); + obj.list.add(9); + obj.list.add(10); + obj.list.add(11); + return obj; + } + + private MessagePackObject createUserDefinedClass_dynamic() { + MessagePackObject[] obj = new MessagePackObject[3]; + obj[0] = BooleanType.create(false); + obj[1] = RawType.create("muga"); + MessagePackObject[] list = new MessagePackObject[3]; + list[0] = IntegerType.create(9); + list[1] = IntegerType.create(10); + list[2] = IntegerType.create(11); + obj[2] = ArrayType.create(list); + return ArrayType.create(obj); + } }