summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
authorfrsyuki <frsyuki@users.sourceforge.jp>2010-08-21 03:36:44 +0900
committerfrsyuki <frsyuki@users.sourceforge.jp>2010-08-21 03:36:44 +0900
commitc8e351b31e28042c10f7406238636c92a64a696c (patch)
tree189133cfc083cc5cbf35c5cf25a6c271ae51b322 /java/src
parentb4c98584db002cbb4d3960b6ed025212248dcce8 (diff)
downloadmsgpack-python-c8e351b31e28042c10f7406238636c92a64a696c.tar.gz
java: adds TestMessageUnpackable test
Diffstat (limited to 'java/src')
-rw-r--r--java/src/main/java/org/msgpack/Packer.java2
-rw-r--r--java/src/test/java/org/msgpack/Image.java50
-rw-r--r--java/src/test/java/org/msgpack/TestMessageUnpackable.java34
3 files changed, 85 insertions, 1 deletions
diff --git a/java/src/main/java/org/msgpack/Packer.java b/java/src/main/java/org/msgpack/Packer.java
index 0ac8d89..139b3b1 100644
--- a/java/src/main/java/org/msgpack/Packer.java
+++ b/java/src/main/java/org/msgpack/Packer.java
@@ -212,7 +212,7 @@ public class Packer {
out.write(castBytes);
return this;
} else {
- throw new MessageTypeException("can't BigInteger larger than 0xffffffffffffffff");
+ throw new MessageTypeException("can't pack BigInteger larger than 0xffffffffffffffff");
}
}
diff --git a/java/src/test/java/org/msgpack/Image.java b/java/src/test/java/org/msgpack/Image.java
new file mode 100644
index 0000000..3fcfe38
--- /dev/null
+++ b/java/src/test/java/org/msgpack/Image.java
@@ -0,0 +1,50 @@
+package org.msgpack;
+
+import org.msgpack.*;
+import java.io.*;
+import java.util.*;
+
+public class Image implements MessagePackable, MessageUnpackable {
+ public String uri = "";
+ public String title = "";
+ public int width = 0;
+ public int height = 0;
+ public int size = 0;
+
+ public void messagePack(Packer pk) throws IOException {
+ pk.packArray(5);
+ pk.pack(uri);
+ pk.pack(title);
+ pk.pack(width);
+ pk.pack(height);
+ pk.pack(size);
+ }
+
+ public void messageUnpack(Unpacker pac) throws IOException, MessageTypeException {
+ int length = pac.unpackArray();
+ if(length != 5) {
+ throw new MessageTypeException();
+ }
+ uri = pac.unpackString();
+ title = pac.unpackString();
+ width = pac.unpackInt();
+ height = pac.unpackInt();
+ size = pac.unpackInt();
+ }
+
+ public boolean equals(Image obj) {
+ return uri.equals(obj.uri) &&
+ title.equals(obj.title) &&
+ width == obj.width &&
+ height == obj.height &&
+ size == obj.size;
+ }
+
+ public boolean equals(Object obj) {
+ if(obj.getClass() != Image.class) {
+ return false;
+ }
+ return equals((Image)obj);
+ }
+}
+
diff --git a/java/src/test/java/org/msgpack/TestMessageUnpackable.java b/java/src/test/java/org/msgpack/TestMessageUnpackable.java
new file mode 100644
index 0000000..9099f91
--- /dev/null
+++ b/java/src/test/java/org/msgpack/TestMessageUnpackable.java
@@ -0,0 +1,34 @@
+package org.msgpack;
+
+import org.msgpack.*;
+import java.io.*;
+import java.util.*;
+import java.math.BigInteger;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class TestMessageUnpackable {
+ @Test
+ public void testImage() throws Exception {
+ Image src = new Image();
+ src.title = "msgpack";
+ src.uri = "http://msgpack.org/";
+ src.width = 2560;
+ src.height = 1600;
+ src.size = 4096000;
+
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ src.messagePack(new Packer(out));
+
+ Image dst = new Image();
+
+ ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
+ Unpacker pac = new Unpacker(in);
+
+ dst.messageUnpack(pac);
+
+ assertEquals(src, dst);
+ }
+}
+