diff --git a/.travis.yml b/.travis.yml
index 201770aa9..29ec0526e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,7 +6,10 @@ jdk:
branches:
only:
- master
+ - develop
+ - v07
notifications:
email:
- muga.nishizawa@gmail.com
- ozawa.tsuyoshi@gmail.com
+ - leo@xerial.org
diff --git a/pom.xml b/pom.xml
index 7c751c8a2..525b4b4ac 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
MessagePack for Java
MessagePack for Java is a binary-based efficient object
serialization library in Java.
- 0.6.10-SNAPSHOT
+ 0.6.13-SNAPSHOT
bundle
http://msgpack.org/
@@ -57,7 +57,7 @@
org.javassist
javassist
- 3.16.1-GA
+ 3.18.1-GA
compile
diff --git a/src/main/java/org/msgpack/template/builder/AbstractTemplateBuilder.java b/src/main/java/org/msgpack/template/builder/AbstractTemplateBuilder.java
index 6ad2a100d..82041e9bc 100644
--- a/src/main/java/org/msgpack/template/builder/AbstractTemplateBuilder.java
+++ b/src/main/java/org/msgpack/template/builder/AbstractTemplateBuilder.java
@@ -72,14 +72,14 @@ public Template buildTemplate(final Class targetClass, final FieldList
protected abstract Template buildTemplate(Class targetClass, FieldEntry[] entries);
protected void checkClassValidation(final Class> targetClass) {
- if (Modifier.isAbstract(targetClass.getModifiers())) {
- throw new TemplateBuildException(
- "Cannot build template for abstract class: " + targetClass.getName());
- }
if (targetClass.isInterface()) {
throw new TemplateBuildException(
"Cannot build template for interface: " + targetClass.getName());
}
+ if (Modifier.isAbstract(targetClass.getModifiers())) {
+ throw new TemplateBuildException(
+ "Cannot build template for abstract class: " + targetClass.getName());
+ }
if (targetClass.isArray()) {
throw new TemplateBuildException(
"Cannot build template for array class: " + targetClass.getName());
diff --git a/src/main/java/org/msgpack/template/builder/JavassistTemplateBuilder.java b/src/main/java/org/msgpack/template/builder/JavassistTemplateBuilder.java
index 543cc7664..23bcb8716 100644
--- a/src/main/java/org/msgpack/template/builder/JavassistTemplateBuilder.java
+++ b/src/main/java/org/msgpack/template/builder/JavassistTemplateBuilder.java
@@ -21,6 +21,7 @@
import java.util.logging.Level;
import java.util.logging.Logger;
+import javassist.ClassClassPath;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.LoaderClassPath;
@@ -59,6 +60,7 @@ public JavassistTemplateBuilder(TemplateRegistry registry) {
public JavassistTemplateBuilder(TemplateRegistry registry, ClassLoader cl) {
super(registry);
pool = new ClassPool();
+ pool.appendClassPath(new ClassClassPath(getClass()));
boolean appended = false;
loader = cl;
if (loader == null) {
@@ -71,8 +73,9 @@ public JavassistTemplateBuilder(TemplateRegistry registry, ClassLoader cl) {
appended = true;
}
} catch (SecurityException e) {
- LOG.fine("Cannot append a search path of classloader");
- e.printStackTrace();
+ if (LOG.isLoggable(Level.WARNING)) {
+ LOG.log(Level.WARNING, "Cannot append a search path of classloader", e);
+ }
}
if (!appended) {
pool.appendSystemPath();
diff --git a/src/main/java/org/msgpack/template/builder/ReflectionBeansTemplateBuilder.java b/src/main/java/org/msgpack/template/builder/ReflectionBeansTemplateBuilder.java
index 3274df708..920897e31 100644
--- a/src/main/java/org/msgpack/template/builder/ReflectionBeansTemplateBuilder.java
+++ b/src/main/java/org/msgpack/template/builder/ReflectionBeansTemplateBuilder.java
@@ -131,7 +131,7 @@ public FieldEntry[] toFieldEntries(Class> targetClass, FieldOption implicitOpt
throw new TemplateBuildException("invalid index: " + index);
}
entries[index] = new BeansFieldEntry(p);
- props[index] = null;
+ props[i] = null;
}
}
int insertIndex = 0;
diff --git a/src/main/java/org/msgpack/template/builder/TemplateBuilderChain.java b/src/main/java/org/msgpack/template/builder/TemplateBuilderChain.java
index b78fc9fa8..b870b2539 100644
--- a/src/main/java/org/msgpack/template/builder/TemplateBuilderChain.java
+++ b/src/main/java/org/msgpack/template/builder/TemplateBuilderChain.java
@@ -22,18 +22,23 @@
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import org.msgpack.template.TemplateRegistry;
import org.msgpack.util.android.DalvikVmChecker;
public class TemplateBuilderChain {
- private static final String JAVASSIST_TEMPLATE_BUILDER_CLASS_NAME =
- "org.msgpack.template.builder.JavassistTemplateBuilder";
- private static final String REFLECTION_TEMPLATE_BUILDER_CLASS_NAME =
- "org.msgpack.template.builder.ReflectionTemplateBuilder";
+ private static final Logger LOG = Logger.getLogger(TemplateBuilderChain.class.getName());
+
+ private static final String JAVASSIST_TEMPLATE_BUILDER_CLASS_NAME =
+ "org.msgpack.template.builder.JavassistTemplateBuilder";
+ private static final String REFLECTION_TEMPLATE_BUILDER_CLASS_NAME =
+ "org.msgpack.template.builder.ReflectionTemplateBuilder";
private static boolean enableDynamicCodeGeneration() {
- return !DalvikVmChecker.isDalvikVm();
+ return !DalvikVmChecker.isDalvikVm() &&
+ Boolean.parseBoolean(System.getProperties().getProperty("msgpack.dynamic-codegen.enabled", "true"));
}
protected List templateBuilders;
@@ -73,16 +78,18 @@ protected void reset(final TemplateRegistry registry, final ClassLoader cl) {
templateBuilders.add(new ReflectionBeansTemplateBuilder(registry));
}
- private static TemplateBuilder createForceTemplateBuilder(String className,
- TemplateRegistry registry, ClassLoader cl) {
- try {
- Class> c = (Class>) Class.forName(className);
- Constructor> cons = c.getConstructor(TemplateRegistry.class,
- ClassLoader.class);
- return (TemplateBuilder) cons.newInstance(registry, cl);
- } catch (Exception e) {
- e.printStackTrace();
- }
+ private static TemplateBuilder createForceTemplateBuilder(String className,
+ TemplateRegistry registry, ClassLoader cl) {
+ try {
+ Class> c = (Class>) Class.forName(className);
+ Constructor> cons = c.getConstructor(TemplateRegistry.class,
+ ClassLoader.class);
+ return (TemplateBuilder) cons.newInstance(registry, cl);
+ } catch (Exception e) {
+ if (LOG.isLoggable(Level.WARNING)) {
+ LOG.log(Level.WARNING, "Failed to create a TemplateBuilder reflectively", e);
+ }
+ }
return new ReflectionTemplateBuilder(registry, cl);
}
diff --git a/src/main/java/org/msgpack/type/AbstractRawValue.java b/src/main/java/org/msgpack/type/AbstractRawValue.java
index 41f087dad..8fc7de810 100644
--- a/src/main/java/org/msgpack/type/AbstractRawValue.java
+++ b/src/main/java/org/msgpack/type/AbstractRawValue.java
@@ -25,6 +25,8 @@
import java.nio.charset.CodingErrorAction;
abstract class AbstractRawValue extends AbstractValue implements RawValue {
+ static final String UTF8 = "UTF-8";
+
@Override
public ValueType getType() {
return ValueType.RAW;
@@ -75,7 +77,7 @@ public StringBuilder toString(StringBuilder sb) {
} else {
// don't throw encoding error exception
// ignore malformed bytes
- CharsetDecoder decoder = Charset.forName("UTF-8").newDecoder()
+ CharsetDecoder decoder = Charset.forName(UTF8).newDecoder()
.onMalformedInput(CodingErrorAction.IGNORE)
.onUnmappableCharacter(CodingErrorAction.IGNORE);
try {
diff --git a/src/main/java/org/msgpack/type/StringRawValueImpl.java b/src/main/java/org/msgpack/type/StringRawValueImpl.java
index 635110c88..7d39b954f 100644
--- a/src/main/java/org/msgpack/type/StringRawValueImpl.java
+++ b/src/main/java/org/msgpack/type/StringRawValueImpl.java
@@ -34,7 +34,7 @@ class StringRawValueImpl extends AbstractRawValue {
public byte[] getByteArray() {
try {
// TODO encoding error?
- return string.getBytes("UTF-8");
+ return string.getBytes(UTF8);
} catch (UnsupportedEncodingException ex) {
throw new MessageTypeException(ex);
}
diff --git a/src/main/java/org/msgpack/unpacker/BigIntegerAccept.java b/src/main/java/org/msgpack/unpacker/BigIntegerAccept.java
index 05f610076..9e91b7ba7 100644
--- a/src/main/java/org/msgpack/unpacker/BigIntegerAccept.java
+++ b/src/main/java/org/msgpack/unpacker/BigIntegerAccept.java
@@ -48,12 +48,12 @@ void acceptInteger(long v) {
@Override
void acceptUnsignedInteger(byte v) {
- BigInteger.valueOf((long) (v & 0xff));
+ this.value = BigInteger.valueOf((long) (v & 0xff));
}
@Override
void acceptUnsignedInteger(short v) {
- BigInteger.valueOf((long) (v & 0xffff));
+ this.value = BigInteger.valueOf((long) (v & 0xffff));
}
@Override
diff --git a/src/main/java/org/msgpack/unpacker/DoubleAccept.java b/src/main/java/org/msgpack/unpacker/DoubleAccept.java
index c4506cc7c..146798e90 100644
--- a/src/main/java/org/msgpack/unpacker/DoubleAccept.java
+++ b/src/main/java/org/msgpack/unpacker/DoubleAccept.java
@@ -24,10 +24,12 @@ final class DoubleAccept extends Accept {
super("float");
}
+ @Override
void acceptFloat(float v) {
this.value = (double) v;
}
+ @Override
void acceptDouble(double v) {
this.value = v;
}
diff --git a/src/main/java/org/msgpack/unpacker/MessagePackUnpacker.java b/src/main/java/org/msgpack/unpacker/MessagePackUnpacker.java
index e77e9237d..0a5596f39 100644
--- a/src/main/java/org/msgpack/unpacker/MessagePackUnpacker.java
+++ b/src/main/java/org/msgpack/unpacker/MessagePackUnpacker.java
@@ -210,7 +210,7 @@ private boolean readOneWithoutStackLarge(Accept a, final int b)
case 0xc4: // bin 8
case 0xd9: // str 8
{
- int count = in.getByte();
+ int count = in.getByte() & 0xff;
if (count == 0) {
a.acceptEmptyRaw();
in.advance();
diff --git a/src/main/java/org/msgpack/util/json/JSONUnpacker.java b/src/main/java/org/msgpack/util/json/JSONUnpacker.java
index 177bf2230..864c5ca18 100644
--- a/src/main/java/org/msgpack/util/json/JSONUnpacker.java
+++ b/src/main/java/org/msgpack/util/json/JSONUnpacker.java
@@ -24,6 +24,7 @@
import java.util.List;
import java.util.Map;
import java.util.Iterator;
+import java.nio.charset.Charset;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import org.msgpack.MessagePack;
@@ -42,6 +43,10 @@ public JSONUnpacker(InputStream in) {
public JSONUnpacker(MessagePack msgpack, InputStream in) {
this(msgpack, new InputStreamReader(in));
}
+
+ public JSONUnpacker(MessagePack msgpack, InputStream in, Charset cs) {
+ this(msgpack, new InputStreamReader(in, cs));
+ }
JSONUnpacker(MessagePack msgpack, Reader in) {
super(msgpack, null);
diff --git a/src/test/java/org/msgpack/TestMessagePack02.java b/src/test/java/org/msgpack/TestMessagePack02.java
index 5130a6271..9270191c2 100644
--- a/src/test/java/org/msgpack/TestMessagePack02.java
+++ b/src/test/java/org/msgpack/TestMessagePack02.java
@@ -8,6 +8,8 @@
import org.junit.Test;
import org.msgpack.testclasses.EnumTypeFieldsClass;
import org.msgpack.testclasses.EnumTypeFieldsClassNotNullable;
+import org.msgpack.testclasses.IndexedFieldsBeanClass;
+import org.msgpack.testclasses.IndexedFieldsBeanClassNotNullable;
import org.msgpack.testclasses.InheritanceClass;
import org.msgpack.testclasses.InheritanceClassNotNullable;
import org.msgpack.testclasses.ListTypeFieldsClass;
@@ -2555,6 +2557,234 @@ public void testReferenceCycleTypeFieldsClassNotNullable(ReferenceCycleTypeField
}
}
+ public static class TestIndexedFieldsBeanClassBufferPackBufferUnpack extends org.msgpack.template.builder.TestSet {
+ @Test @Override
+ public void testIndexedFieldsBeanClass() throws Exception {
+ super.testIndexedFieldsBeanClass();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClass(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ byte[] bytes = msgpack.write(v);
+ IndexedFieldsBeanClass ret = msgpack.read(bytes, IndexedFieldsBeanClass.class);
+ assertEquals(v, ret);
+ }
+ }
+
+ public static class TestIndexedFieldsBeanClassBufferPackConvert extends org.msgpack.template.builder.TestSet {
+ @Test @Override
+ public void testIndexedFieldsBeanClass() throws Exception {
+ super.testIndexedFieldsBeanClass();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClass(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ byte[] bytes = msgpack.write(v);
+ Value value = msgpack.read(bytes);
+ IndexedFieldsBeanClass ret = msgpack.convert(value, IndexedFieldsBeanClass.class);
+ assertEquals(v, ret);
+ }
+ }
+
+ public static class TestIndexedFieldsBeanClassBufferPackUnpack extends org.msgpack.template.builder.TestSet {
+ @Test @Override
+ public void testIndexedFieldsBeanClass() throws Exception {
+ super.testIndexedFieldsBeanClass();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClass(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ byte[] bytes = msgpack.write(v);
+ ByteArrayInputStream in = new ByteArrayInputStream(bytes);
+ IndexedFieldsBeanClass ret = msgpack.read(in, IndexedFieldsBeanClass.class);
+ assertEquals(v, ret);
+ }
+ }
+
+ public static class TestIndexedFieldsBeanClassPackBufferUnpack extends org.msgpack.template.builder.TestSet {
+ @Test @Override
+ public void testIndexedFieldsBeanClass() throws Exception {
+ super.testIndexedFieldsBeanClass();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClass(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ msgpack.write(out, v);
+ byte[] bytes = out.toByteArray();
+ IndexedFieldsBeanClass ret = msgpack.read(bytes, IndexedFieldsBeanClass.class);
+ assertEquals(v, ret);
+ }
+ }
+
+ public static class TestIndexedFieldsBeanClassPackConvert extends org.msgpack.template.builder.TestSet {
+ @Test @Override
+ public void testIndexedFieldsBeanClass() throws Exception {
+ super.testIndexedFieldsBeanClass();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClass(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ msgpack.write(out, v);
+ byte[] bytes = out.toByteArray();
+ Value value = msgpack.read(bytes);
+ IndexedFieldsBeanClass ret = msgpack.convert(value, IndexedFieldsBeanClass.class);
+ assertEquals(v, ret);
+ }
+ }
+
+ public static class TestIndexedFieldsBeanClassPackUnpack extends org.msgpack.template.builder.TestSet {
+ @Test @Override
+ public void testIndexedFieldsBeanClass() throws Exception {
+ super.testIndexedFieldsBeanClass();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClass(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ msgpack.write(out, v);
+ ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
+ IndexedFieldsBeanClass ret = msgpack.read(in, IndexedFieldsBeanClass.class);
+ assertEquals(v, ret);
+ }
+ }
+
+ public static class TestIndexedFieldsBeanClassUnconvertConvert extends org.msgpack.template.builder.TestSet {
+ @Test @Override
+ public void testIndexedFieldsBeanClass() throws Exception {
+ super.testIndexedFieldsBeanClass();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClass(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ Value value = msgpack.unconvert(v);
+ IndexedFieldsBeanClass ret = msgpack.convert(value, IndexedFieldsBeanClass.class);
+ assertEquals(v, ret);
+ }
+ }
+
+ public static class TestIndexedFieldsBeanClassNotNullableBufferPackBufferUnpack extends org.msgpack.template.builder.TestSet {
+ @Test @Override
+ public void testIndexedFieldsBeanClassNotNullable() throws Exception {
+ super.testIndexedFieldsBeanClassNotNullable();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullable(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ byte[] bytes = msgpack.write(v);
+ IndexedFieldsBeanClassNotNullable ret = msgpack.read(bytes, IndexedFieldsBeanClassNotNullable.class);
+ assertEquals(v, ret);
+ }
+ }
+
+ public static class TestIndexedFieldsBeanClassNotNullableBufferPackConvert extends org.msgpack.template.builder.TestSet {
+ @Test @Override
+ public void testIndexedFieldsBeanClassNotNullable() throws Exception {
+ super.testIndexedFieldsBeanClassNotNullable();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullable(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ byte[] bytes = msgpack.write(v);
+ Value value = msgpack.read(bytes);
+ IndexedFieldsBeanClassNotNullable ret = msgpack.convert(value, IndexedFieldsBeanClassNotNullable.class);
+ assertEquals(v, ret);
+ }
+ }
+
+ public static class TestIndexedFieldsBeanClassNotNullableBufferPackUnpack extends org.msgpack.template.builder.TestSet {
+ @Test @Override
+ public void testIndexedFieldsBeanClassNotNullable() throws Exception {
+ super.testIndexedFieldsBeanClassNotNullable();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullable(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ byte[] bytes = msgpack.write(v);
+ ByteArrayInputStream in = new ByteArrayInputStream(bytes);
+ IndexedFieldsBeanClassNotNullable ret = msgpack.read(in, IndexedFieldsBeanClassNotNullable.class);
+ assertEquals(v, ret);
+ }
+ }
+
+ public static class TestIndexedFieldsBeanClassNotNullablePackBufferUnpack extends org.msgpack.template.builder.TestSet {
+ @Test @Override
+ public void testIndexedFieldsBeanClassNotNullable() throws Exception {
+ super.testIndexedFieldsBeanClassNotNullable();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullable(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ msgpack.write(out, v);
+ byte[] bytes = out.toByteArray();
+ IndexedFieldsBeanClassNotNullable ret = msgpack.read(bytes, IndexedFieldsBeanClassNotNullable.class);
+ assertEquals(v, ret);
+ }
+ }
+
+ public static class TestIndexedFieldsBeanClassNotNullablePackConvert extends org.msgpack.template.builder.TestSet {
+ @Test @Override
+ public void testIndexedFieldsBeanClassNotNullable() throws Exception {
+ super.testIndexedFieldsBeanClassNotNullable();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullable(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ msgpack.write(out, v);
+ byte[] bytes = out.toByteArray();
+ Value value = msgpack.read(bytes);
+ IndexedFieldsBeanClassNotNullable ret = msgpack.convert(value, IndexedFieldsBeanClassNotNullable.class);
+ assertEquals(v, ret);
+ }
+ }
+
+ public static class TestIndexedFieldsBeanClassNotNullablePackUnpack extends org.msgpack.template.builder.TestSet {
+ @Test @Override
+ public void testIndexedFieldsBeanClassNotNullable() throws Exception {
+ super.testIndexedFieldsBeanClassNotNullable();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullable(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ msgpack.write(out, v);
+ ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
+ IndexedFieldsBeanClassNotNullable ret = msgpack.read(in, IndexedFieldsBeanClassNotNullable.class);
+ assertEquals(v, ret);
+ }
+ }
+
+ public static class TestIndexedFieldsBeanClassNotNullableUnconvertConvert extends org.msgpack.template.builder.TestSet {
+ @Test @Override
+ public void testIndexedFieldsBeanClassNotNullable() throws Exception {
+ super.testIndexedFieldsBeanClassNotNullable();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullable(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ Value value = msgpack.unconvert(v);
+ IndexedFieldsBeanClassNotNullable ret = msgpack.convert(value, IndexedFieldsBeanClassNotNullable.class);
+ assertEquals(v, ret);
+ }
+ }
+
public static class TestInheritanceClassBufferPackBufferUnpack extends org.msgpack.template.builder.TestSet {
@Test @Override
public void testInheritanceClass() throws Exception {
diff --git a/src/test/java/org/msgpack/TestSet.java b/src/test/java/org/msgpack/TestSet.java
index 848620a3c..638aefee5 100644
--- a/src/test/java/org/msgpack/TestSet.java
+++ b/src/test/java/org/msgpack/TestSet.java
@@ -17,258 +17,258 @@
public class TestSet {
public void testBoolean() throws Exception {
- testBoolean(false);
- testBoolean(true);
+ testBoolean(false);
+ testBoolean(true);
}
public void testBoolean(boolean v) throws Exception {
}
public void testBooleanArray() throws Exception {
- testBooleanArray(null);
- testBooleanArray(new boolean[0]);
- testBooleanArray(new boolean[] { true });
- testBooleanArray(new boolean[] { false });
- testBooleanArray(new boolean[] { true, false });
- Random rand = new Random();
- boolean[] v = new boolean[100];
- for (int i = 0; i < v.length; ++i) {
- v[i] = rand.nextBoolean();
- }
- testBooleanArray(v);
+ testBooleanArray(null);
+ testBooleanArray(new boolean[0]);
+ testBooleanArray(new boolean[] { true });
+ testBooleanArray(new boolean[] { false });
+ testBooleanArray(new boolean[] { true, false });
+ Random rand = new Random();
+ boolean[] v = new boolean[100];
+ for (int i = 0; i < v.length; ++i) {
+ v[i] = rand.nextBoolean();
+ }
+ testBooleanArray(v);
}
public void testBooleanArray(boolean[] v) throws Exception {
}
public void testByte() throws Exception {
- testShort((byte) 0);
- testShort((byte) -1);
- testShort((byte) 1);
- testByte(Byte.MIN_VALUE);
- testByte(Byte.MAX_VALUE);
- byte[] bytes = new byte[1000];
- Random rand = new Random();
- rand.nextBytes(bytes);
- for (int i = 0; i < bytes.length; ++i) {
- testByte(bytes[i]);
- }
+ testByte((byte) 0);
+ testByte((byte) -1);
+ testByte((byte) 1);
+ testByte(Byte.MIN_VALUE);
+ testByte(Byte.MAX_VALUE);
+ byte[] bytes = new byte[1000];
+ Random rand = new Random();
+ rand.nextBytes(bytes);
+ for (int i = 0; i < bytes.length; ++i) {
+ testByte(bytes[i]);
+ }
}
public void testByte(byte v) throws Exception {
}
public void testByteArray() throws Exception {
- testByteArray(null);
- Random rand = new Random(System.currentTimeMillis());
- byte[] b0 = new byte[0];
- testByteArray(b0);
- byte[] b1 = new byte[10];
- rand.nextBytes(b1);
- testByteArray(b1);
- byte[] b2 = new byte[1024];
- rand.nextBytes(b2);
- testByteArray(b2);
+ testByteArray(null);
+ Random rand = new Random(System.currentTimeMillis());
+ byte[] b0 = new byte[0];
+ testByteArray(b0);
+ byte[] b1 = new byte[10];
+ rand.nextBytes(b1);
+ testByteArray(b1);
+ byte[] b2 = new byte[1024];
+ rand.nextBytes(b2);
+ testByteArray(b2);
}
public void testByteArray(byte[] v) throws Exception {
}
public void testShort() throws Exception {
- testShort((short) 0);
- testShort((short) -1);
- testShort((short) 1);
- testShort(Short.MIN_VALUE);
- testShort(Short.MAX_VALUE);
- Random rand = new Random();
- byte[] bytes = new byte[2000];
- rand.nextBytes(bytes);
- for (int i = 0; i < bytes.length; i = i + 2) {
- testShort((short) ((bytes[i] << 8) | (bytes[i + 1] & 0xff)));
- }
+ testShort((short) 0);
+ testShort((short) -1);
+ testShort((short) 1);
+ testShort(Short.MIN_VALUE);
+ testShort(Short.MAX_VALUE);
+ Random rand = new Random();
+ byte[] bytes = new byte[2000];
+ rand.nextBytes(bytes);
+ for (int i = 0; i < bytes.length; i = i + 2) {
+ testShort((short) ((bytes[i] << 8) | (bytes[i + 1] & 0xff)));
+ }
}
public void testShort(short v) throws Exception {
}
public void testShortArray() throws Exception {
- testShortArray(null);
- testShortArray(new short[0]);
- testShortArray(new short[] { 0 });
- testShortArray(new short[] { -1 });
- testShortArray(new short[] { 1 });
- testShortArray(new short[] { 0, -1, 1 });
- testShortArray(new short[] { Short.MIN_VALUE });
- testShortArray(new short[] { Short.MAX_VALUE });
- testShortArray(new short[] { Short.MIN_VALUE, Short.MAX_VALUE });
- Random rand = new Random();
- byte[] bytes = new byte[2];
- short[] v = new short[100];
- for (int i = 0; i < v.length; ++i) {
- rand.nextBytes(bytes);
- v[i] = (short) ((bytes[0] << 8) | (bytes[1] & 0xff));
- }
- testShortArray(v);
+ testShortArray(null);
+ testShortArray(new short[0]);
+ testShortArray(new short[] { 0 });
+ testShortArray(new short[] { -1 });
+ testShortArray(new short[] { 1 });
+ testShortArray(new short[] { 0, -1, 1 });
+ testShortArray(new short[] { Short.MIN_VALUE });
+ testShortArray(new short[] { Short.MAX_VALUE });
+ testShortArray(new short[] { Short.MIN_VALUE, Short.MAX_VALUE });
+ Random rand = new Random();
+ byte[] bytes = new byte[2];
+ short[] v = new short[100];
+ for (int i = 0; i < v.length; ++i) {
+ rand.nextBytes(bytes);
+ v[i] = (short) ((bytes[0] << 8) | (bytes[1] & 0xff));
+ }
+ testShortArray(v);
}
public void testShortArray(short[] v) throws Exception {
}
public void testInteger() throws Exception {
- testInteger(0);
- testInteger(-1);
- testInteger(1);
- testInteger(Integer.MIN_VALUE);
- testInteger(Integer.MAX_VALUE);
- Random rand = new Random();
- for (int i = 0; i < 1000; i++) {
- testInteger(rand.nextInt());
- }
+ testInteger(0);
+ testInteger(-1);
+ testInteger(1);
+ testInteger(Integer.MIN_VALUE);
+ testInteger(Integer.MAX_VALUE);
+ Random rand = new Random();
+ for (int i = 0; i < 1000; i++) {
+ testInteger(rand.nextInt());
+ }
}
public void testInteger(int v) throws Exception {
}
public void testIntegerArray() throws Exception {
- testIntegerArray(null);
- testIntegerArray(new int[0]);
- testIntegerArray(new int[] { 0 });
- testIntegerArray(new int[] { -1 });
- testIntegerArray(new int[] { 1 });
- testIntegerArray(new int[] { 0, -1, 1 });
- testIntegerArray(new int[] { Integer.MIN_VALUE });
- testIntegerArray(new int[] { Integer.MAX_VALUE });
- testIntegerArray(new int[] { Integer.MIN_VALUE, Integer.MAX_VALUE });
- Random rand = new Random();
- int[] v = new int[100];
- for (int i = 0; i < v.length; ++i) {
- v[i] = rand.nextInt();
- }
- testIntegerArray(v);
+ testIntegerArray(null);
+ testIntegerArray(new int[0]);
+ testIntegerArray(new int[] { 0 });
+ testIntegerArray(new int[] { -1 });
+ testIntegerArray(new int[] { 1 });
+ testIntegerArray(new int[] { 0, -1, 1 });
+ testIntegerArray(new int[] { Integer.MIN_VALUE });
+ testIntegerArray(new int[] { Integer.MAX_VALUE });
+ testIntegerArray(new int[] { Integer.MIN_VALUE, Integer.MAX_VALUE });
+ Random rand = new Random();
+ int[] v = new int[100];
+ for (int i = 0; i < v.length; ++i) {
+ v[i] = rand.nextInt();
+ }
+ testIntegerArray(v);
}
public void testIntegerArray(int[] v) throws Exception {
}
public void testLong() throws Exception {
- testLong(0);
- testLong(-1);
- testLong(1);
- testLong(Long.MIN_VALUE);
- testLong(Long.MAX_VALUE);
- Random rand = new Random();
- for (int i = 0; i < 1000; i++) {
- testLong(rand.nextLong());
- }
+ testLong(0);
+ testLong(-1);
+ testLong(1);
+ testLong(Long.MIN_VALUE);
+ testLong(Long.MAX_VALUE);
+ Random rand = new Random();
+ for (int i = 0; i < 1000; i++) {
+ testLong(rand.nextLong());
+ }
}
public void testLong(long v) throws Exception {
}
public void testLongArray() throws Exception {
- testLongArray(null);
- testLongArray(new long[0]);
- testLongArray(new long[] { 0 });
- testLongArray(new long[] { -1 });
- testLongArray(new long[] { 1 });
- testLongArray(new long[] { 0, -1, 1 });
- testLongArray(new long[] { Long.MIN_VALUE });
- testLongArray(new long[] { Long.MAX_VALUE });
- testLongArray(new long[] { Long.MIN_VALUE, Long.MAX_VALUE });
- Random rand = new Random();
- long[] v = new long[100];
- for (int i = 0; i < v.length; ++i) {
- v[i] = rand.nextLong();
- }
- testLongArray(v);
+ testLongArray(null);
+ testLongArray(new long[0]);
+ testLongArray(new long[] { 0 });
+ testLongArray(new long[] { -1 });
+ testLongArray(new long[] { 1 });
+ testLongArray(new long[] { 0, -1, 1 });
+ testLongArray(new long[] { Long.MIN_VALUE });
+ testLongArray(new long[] { Long.MAX_VALUE });
+ testLongArray(new long[] { Long.MIN_VALUE, Long.MAX_VALUE });
+ Random rand = new Random();
+ long[] v = new long[100];
+ for (int i = 0; i < v.length; ++i) {
+ v[i] = rand.nextLong();
+ }
+ testLongArray(v);
}
public void testLongArray(long[] v) throws Exception {
}
public void testFloat() throws Exception {
- testFloat((float) 0.0);
- testFloat((float) -0.0);
- testFloat((float) 1.0);
- testFloat((float) -1.0);
- testFloat(Float.MAX_VALUE);
- testFloat(Float.MIN_VALUE);
- testFloat(Float.NaN);
- testFloat(Float.NEGATIVE_INFINITY);
- testFloat(Float.POSITIVE_INFINITY);
- Random rand = new Random();
- for (int i = 0; i < 1000; i++) {
- testFloat(rand.nextFloat());
- }
+ testFloat((float) 0.0);
+ testFloat((float) -0.0);
+ testFloat((float) 1.0);
+ testFloat((float) -1.0);
+ testFloat(Float.MAX_VALUE);
+ testFloat(Float.MIN_VALUE);
+ testFloat(Float.NaN);
+ testFloat(Float.NEGATIVE_INFINITY);
+ testFloat(Float.POSITIVE_INFINITY);
+ Random rand = new Random();
+ for (int i = 0; i < 1000; i++) {
+ testFloat(rand.nextFloat());
+ }
}
public void testFloat(float v) throws Exception {
}
public void testFloatArray() throws Exception {
- testFloatArray(null);
- testFloatArray(new float[0]);
- testFloatArray(new float[] { (float) 0.0 });
- testFloatArray(new float[] { (float) -0.0 });
- testFloatArray(new float[] { (float) -1.0 });
- testFloatArray(new float[] { (float) 1.0 });
- testFloatArray(new float[] { (float) 0.0, (float) -0.0, (float) -1.0, (float) 1.0 });
- testFloatArray(new float[] { Float.MAX_VALUE });
- testFloatArray(new float[] { Float.MIN_VALUE });
- testFloatArray(new float[] { Float.NaN });
- testFloatArray(new float[] { Float.NEGATIVE_INFINITY });
- testFloatArray(new float[] { Float.POSITIVE_INFINITY });
- testFloatArray(new float[] { Float.MAX_VALUE, Float.MIN_VALUE, Float.NaN, Float.NEGATIVE_INFINITY, Float.POSITIVE_INFINITY });
- Random rand = new Random();
- float[] v = new float[100];
- for (int i = 0; i < v.length; ++i) {
- v[i] = rand.nextFloat();
- }
- testFloatArray(v);
+ testFloatArray(null);
+ testFloatArray(new float[0]);
+ testFloatArray(new float[] { (float) 0.0 });
+ testFloatArray(new float[] { (float) -0.0 });
+ testFloatArray(new float[] { (float) -1.0 });
+ testFloatArray(new float[] { (float) 1.0 });
+ testFloatArray(new float[] { (float) 0.0, (float) -0.0, (float) -1.0, (float) 1.0 });
+ testFloatArray(new float[] { Float.MAX_VALUE });
+ testFloatArray(new float[] { Float.MIN_VALUE });
+ testFloatArray(new float[] { Float.NaN });
+ testFloatArray(new float[] { Float.NEGATIVE_INFINITY });
+ testFloatArray(new float[] { Float.POSITIVE_INFINITY });
+ testFloatArray(new float[] { Float.MAX_VALUE, Float.MIN_VALUE, Float.NaN, Float.NEGATIVE_INFINITY, Float.POSITIVE_INFINITY });
+ Random rand = new Random();
+ float[] v = new float[100];
+ for (int i = 0; i < v.length; ++i) {
+ v[i] = rand.nextFloat();
+ }
+ testFloatArray(v);
}
public void testFloatArray(float[] v) throws Exception {
}
public void testDouble() throws Exception {
- testDouble((double) 0.0);
- testDouble((double) -0.0);
- testDouble((double) 1.0);
- testDouble((double) -1.0);
- testDouble(Double.MAX_VALUE);
- testDouble(Double.MIN_VALUE);
- testDouble(Double.NaN);
- testDouble(Double.NEGATIVE_INFINITY);
- testDouble(Double.POSITIVE_INFINITY);
- Random rand = new Random();
- for (int i = 0; i < 1000; i++) {
- testDouble(rand.nextDouble());
- }
+ testDouble((double) 0.0);
+ testDouble((double) -0.0);
+ testDouble((double) 1.0);
+ testDouble((double) -1.0);
+ testDouble(Double.MAX_VALUE);
+ testDouble(Double.MIN_VALUE);
+ testDouble(Double.NaN);
+ testDouble(Double.NEGATIVE_INFINITY);
+ testDouble(Double.POSITIVE_INFINITY);
+ Random rand = new Random();
+ for (int i = 0; i < 1000; i++) {
+ testDouble(rand.nextDouble());
+ }
}
public void testDouble(double v) throws Exception {
}
public void testDoubleArray() throws Exception {
- testDoubleArray(null);
- testDoubleArray(new double[0]);
- testDoubleArray(new double[] { (double) 0.0 });
- testDoubleArray(new double[] { (double) -0.0 });
- testDoubleArray(new double[] { (double) -1.0 });
- testDoubleArray(new double[] { (double) 1.0 });
- testDoubleArray(new double[] { (double) 0.0, (double) -0.0, (double) -1.0, (double) 1.0 });
- testDoubleArray(new double[] { Double.MAX_VALUE });
- testDoubleArray(new double[] { Double.MIN_VALUE });
- testDoubleArray(new double[] { Double.NaN });
- testDoubleArray(new double[] { Double.NEGATIVE_INFINITY });
- testDoubleArray(new double[] { Double.POSITIVE_INFINITY });
- testDoubleArray(new double[] { Double.MAX_VALUE, Double.MIN_VALUE, Double.NaN, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY });
- Random rand = new Random();
- double[] v = new double[100];
- for (int i = 0; i < v.length; ++i) {
- v[i] = rand.nextDouble();
- }
- testDoubleArray(v);
+ testDoubleArray(null);
+ testDoubleArray(new double[0]);
+ testDoubleArray(new double[] { (double) 0.0 });
+ testDoubleArray(new double[] { (double) -0.0 });
+ testDoubleArray(new double[] { (double) -1.0 });
+ testDoubleArray(new double[] { (double) 1.0 });
+ testDoubleArray(new double[] { (double) 0.0, (double) -0.0, (double) -1.0, (double) 1.0 });
+ testDoubleArray(new double[] { Double.MAX_VALUE });
+ testDoubleArray(new double[] { Double.MIN_VALUE });
+ testDoubleArray(new double[] { Double.NaN });
+ testDoubleArray(new double[] { Double.NEGATIVE_INFINITY });
+ testDoubleArray(new double[] { Double.POSITIVE_INFINITY });
+ testDoubleArray(new double[] { Double.MAX_VALUE, Double.MIN_VALUE, Double.NaN, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY });
+ Random rand = new Random();
+ double[] v = new double[100];
+ for (int i = 0; i < v.length; ++i) {
+ v[i] = rand.nextDouble();
+ }
+ testDoubleArray(v);
}
public void testDoubleArray(double[] v) throws Exception {
@@ -278,159 +278,161 @@ public void testNil() throws Exception {
}
public void testString() throws Exception {
- testString(null);
- testString("");
- testString("a");
- testString("ab");
- testString("abc");
- StringBuilder sb;
- int len;
- // small size string
- {
- for (int i = 0; i < 100; i++) {
- sb = new StringBuilder();
- len = (int) Math.random() % 31 + 1;
- for (int j = 0; j < len; j++) {
- sb.append('a' + ((int) Math.random()) & 26);
- }
- testString(sb.toString());
- }
- }
- // medium size string
- {
- for (int i = 0; i < 100; i++) {
- sb = new StringBuilder();
- len = (int) Math.random() % 100 + (1 << 15);
- for (int j = 0; j < len; j++) {
- sb.append('a' + ((int) Math.random()) & 26);
- }
- testString(sb.toString());
- }
- }
- // large size string
- {
- for (int i = 0; i < 10; i++) {
- sb = new StringBuilder();
- len = (int) Math.random() % 100 + (1 << 31);
- for (int j = 0; j < len; j++) {
- sb.append('a' + ((int) Math.random()) & 26);
- }
- testString(sb.toString());
- }
- }
+ testString(null);
+ testString("");
+ testString("a");
+ testString("ab");
+ testString("abc");
+ StringBuilder sb;
+ int len;
+ // small size string
+ {
+ for (int i = 0; i < 100; i++) {
+ sb = new StringBuilder();
+ len = (int) Math.random() % 31 + 1;
+ for (int j = 0; j < len; j++) {
+ sb.append('a' + ((int) Math.random()) & 26);
+ }
+ testString(sb.toString());
+ }
+ }
+ // medium size string
+ {
+ for (int i = 0; i < 100; i++) {
+ sb = new StringBuilder();
+ len = (int) Math.random() % 100 + (1 << 15);
+ for (int j = 0; j < len; j++) {
+ sb.append('a' + ((int) Math.random()) & 26);
+ }
+ testString(sb.toString());
+ }
+ }
+ // large size string
+ {
+ for (int i = 0; i < 10; i++) {
+ sb = new StringBuilder();
+ len = (int) Math.random() % 100 + (1 << 31);
+ for (int j = 0; j < len; j++) {
+ sb.append('a' + ((int) Math.random()) & 26);
+ }
+ testString(sb.toString());
+ }
+ }
}
public void testString(String v) throws Exception {
}
public void testByteBuffer() throws Exception {
- testByteBuffer(null);
- Random rand = new Random(System.currentTimeMillis());
- byte[] b0 = new byte[0];
- testByteBuffer(ByteBuffer.wrap(b0));
- byte[] b1 = new byte[10];
- rand.nextBytes(b1);
- testByteBuffer(ByteBuffer.wrap(b1));
- byte[] b2 = new byte[1024];
- rand.nextBytes(b2);
- testByteBuffer(ByteBuffer.wrap(b2));
+ testByteBuffer(null);
+ Random rand = new Random(System.currentTimeMillis());
+ byte[] b0 = new byte[0];
+ testByteBuffer(ByteBuffer.wrap(b0));
+ byte[] b1 = new byte[10];
+ rand.nextBytes(b1);
+ testByteBuffer(ByteBuffer.wrap(b1));
+ byte[] b2 = new byte[1024];
+ rand.nextBytes(b2);
+ testByteBuffer(ByteBuffer.wrap(b2));
}
public void testByteBuffer(ByteBuffer v) throws Exception {
}
public void testList() throws Exception {
- testList(null, Integer.class);
- List list0 = new ArrayList();
- testList(list0, Integer.class);
- List list1 = new ArrayList();
- Random rand1 = new Random();
- for (int i = 0; i < 10; ++i) {
- list1.add(rand1.nextInt());
- }
- testList(list1, Integer.class);
- List list2 = new ArrayList();
- Random rand2 = new Random();
- for (int i = 0; i < 100; ++i) {
- list2.add("xx" + rand2.nextInt());
- }
- testList(list2, String.class);
- List list3 = new ArrayList();
- Random rand3 = new Random();
- for (int i = 0; i < 1000; ++i) {
- list3.add("xx" + rand3.nextInt());
- }
- testList(list3, String.class);
+ testList(null, Integer.class);
+ List list0 = new ArrayList();
+ testList(list0, Integer.class);
+ List list1 = new ArrayList();
+ Random rand1 = new Random();
+ for (int i = 0; i < 10; ++i) {
+ list1.add(rand1.nextInt());
+ }
+ testList(list1, Integer.class);
+ List list2 = new ArrayList();
+ Random rand2 = new Random();
+ for (int i = 0; i < 100; ++i) {
+ list2.add("xx" + rand2.nextInt());
+ }
+ testList(list2, String.class);
+ List list3 = new ArrayList();
+ Random rand3 = new Random();
+ for (int i = 0; i < 1000; ++i) {
+ list3.add("xx" + rand3.nextInt());
+ }
+ testList(list3, String.class);
}
public void testList(List v, Class elementClass) throws Exception {
}
public void testMap() throws Exception {
- testMap(null, Integer.class, Integer.class);
- Map map0 = new HashMap();
- testMap(map0, Integer.class, Integer.class);
- Map map1 = new HashMap();
- Random rand1 = new Random();
- for (int i = 0; i < 10; ++i) {
- map1.put(rand1.nextInt(), rand1.nextInt());
- }
- testMap(map1, Integer.class, Integer.class);
- Map map2 = new HashMap();
- Random rand2 = new Random();
- for (int i = 0; i < 100; ++i) {
- map2.put("xx" + rand2.nextInt(), rand2.nextInt());
- }
- testMap(map2, String.class, Integer.class);
- Map map3 = new HashMap();
- Random rand3= new Random();
- for (int i = 0; i < 1000; ++i) {
- map3.put("xx" + rand3.nextInt(), rand3.nextInt());
- }
- testMap(map3, String.class, Integer.class);
+ testMap(null, Integer.class, Integer.class);
+ Map map0 = new HashMap();
+ testMap(map0, Integer.class, Integer.class);
+ Map map1 = new HashMap();
+ Random rand1 = new Random();
+ for (int i = 0; i < 10; ++i) {
+ map1.put(rand1.nextInt(), rand1.nextInt());
+ }
+ testMap(map1, Integer.class, Integer.class);
+ Map map2 = new HashMap();
+ Random rand2 = new Random();
+ for (int i = 0; i < 100; ++i) {
+ map2.put("xx" + rand2.nextInt(), rand2.nextInt());
+ }
+ testMap(map2, String.class, Integer.class);
+ Map map3 = new HashMap();
+ Random rand3= new Random();
+ for (int i = 0; i < 1000; ++i) {
+ map3.put("xx" + rand3.nextInt(), rand3.nextInt());
+ }
+ testMap(map3, String.class, Integer.class);
}
public void testMap(Map v, Class keyElementClass, Class valueElementClass) throws Exception {
}
public void testBigInteger() throws Exception {
- testBigInteger(null);
- testBigInteger(BigInteger.valueOf(0));
- testBigInteger(BigInteger.valueOf(-1));
- testBigInteger(BigInteger.valueOf(1));
- testBigInteger(BigInteger.valueOf(Integer.MIN_VALUE));
- testBigInteger(BigInteger.valueOf(Integer.MAX_VALUE));
- testBigInteger(BigInteger.valueOf(Long.MIN_VALUE));
- testBigInteger(BigInteger.valueOf(Long.MAX_VALUE));
- BigInteger max = BigInteger.valueOf(Long.MAX_VALUE).setBit(63);
- testBigInteger(max);
- Random rand = new Random();
- for (int i = 0; i < 1000; i++) {
- testBigInteger(max.subtract(BigInteger.valueOf(Math.abs(rand.nextLong()))));
- }
+ testBigInteger(null);
+ testBigInteger(BigInteger.valueOf(0));
+ testBigInteger(BigInteger.valueOf(-1));
+ testBigInteger(BigInteger.valueOf(1));
+ testBigInteger(BigInteger.valueOf(128l));
+ testBigInteger(BigInteger.valueOf(512l));
+ testBigInteger(BigInteger.valueOf(Integer.MIN_VALUE));
+ testBigInteger(BigInteger.valueOf(Integer.MAX_VALUE));
+ testBigInteger(BigInteger.valueOf(Long.MIN_VALUE));
+ testBigInteger(BigInteger.valueOf(Long.MAX_VALUE));
+ BigInteger max = BigInteger.valueOf(Long.MAX_VALUE).setBit(63);
+ testBigInteger(max);
+ Random rand = new Random();
+ for (int i = 0; i < 1000; i++) {
+ testBigInteger(max.subtract(BigInteger.valueOf(Math.abs(rand.nextLong()))));
+ }
}
public void testBigInteger(BigInteger v) throws Exception {
}
public void testBigDecimal() throws Exception {
- testBigDecimal(null);
- testBigDecimal(BigDecimal.valueOf(0));
- testBigDecimal(BigDecimal.valueOf(-1));
- testBigDecimal(BigDecimal.valueOf(1));
- testBigDecimal(BigDecimal.valueOf(Integer.MIN_VALUE));
- testBigDecimal(BigDecimal.valueOf(Integer.MAX_VALUE));
- testBigDecimal(BigDecimal.valueOf(Long.MIN_VALUE));
- testBigDecimal(BigDecimal.valueOf(Long.MAX_VALUE));
+ testBigDecimal(null);
+ testBigDecimal(BigDecimal.valueOf(0));
+ testBigDecimal(BigDecimal.valueOf(-1));
+ testBigDecimal(BigDecimal.valueOf(1));
+ testBigDecimal(BigDecimal.valueOf(Integer.MIN_VALUE));
+ testBigDecimal(BigDecimal.valueOf(Integer.MAX_VALUE));
+ testBigDecimal(BigDecimal.valueOf(Long.MIN_VALUE));
+ testBigDecimal(BigDecimal.valueOf(Long.MAX_VALUE));
}
public void testBigDecimal(BigDecimal v) throws Exception {
}
public void testDate() throws Exception {
- testDate(null);
- Date d0 = new Date();
- testDate(d0);
+ testDate(null);
+ Date d0 = new Date();
+ testDate(d0);
}
public void testDate(Date v) throws Exception {
diff --git a/src/test/java/org/msgpack/template/builder/TestReflectionBeansBufferPackBufferUnpack.java b/src/test/java/org/msgpack/template/builder/TestReflectionBeansBufferPackBufferUnpack.java
index ad82c3ae4..0074aa28e 100644
--- a/src/test/java/org/msgpack/template/builder/TestReflectionBeansBufferPackBufferUnpack.java
+++ b/src/test/java/org/msgpack/template/builder/TestReflectionBeansBufferPackBufferUnpack.java
@@ -11,6 +11,8 @@
import org.msgpack.template.Template;
import org.msgpack.testclasses.AbstractClass;
import org.msgpack.testclasses.FinalClass;
+import org.msgpack.testclasses.IndexedFieldsBeanClass;
+import org.msgpack.testclasses.IndexedFieldsBeanClassNotNullable;
import org.msgpack.testclasses.InheritanceClass;
import org.msgpack.testclasses.InheritanceClassNotNullable;
import org.msgpack.testclasses.Interface;
@@ -389,6 +391,99 @@ public void testReferenceCycleTypeFieldsClassNotNullable(ReferenceCycleTypeField
assertEquals(bytes.length, unpacker.getReadByteCount());
}
+ @Test @Override
+ public void testIndexedFieldsBeanClass() throws Exception {
+ super.testIndexedFieldsBeanClass();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClass(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClass.class);
+ BufferPacker packer = msgpack.createBufferPacker();
+ tmpl.write(packer, v);
+ byte[] bytes = packer.toByteArray();
+ BufferUnpacker unpacker = msgpack.createBufferUnpacker();
+ unpacker.resetReadByteCount();
+ unpacker.wrap(bytes);
+ IndexedFieldsBeanClass ret = tmpl.read(unpacker, null);
+ assertEquals(v, ret);
+ assertEquals(bytes.length, unpacker.getReadByteCount());
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassFieldsUnpackedInOrder(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClass.class);
+ BufferPacker packer = msgpack.createBufferPacker();
+ tmpl.write(packer, v);
+ byte[] bytes = packer.toByteArray();
+ BufferUnpacker unpacker = msgpack.createBufferUnpacker();
+ unpacker.resetReadByteCount();
+ unpacker.wrap(bytes);
+
+ unpacker.readArrayBegin();
+ assertEquals("alpha", unpacker.readString());
+ assertEquals("bravo", unpacker.readString());
+ assertEquals("charlie", unpacker.readString());
+ assertEquals("delta", unpacker.readString());
+ assertEquals("echo", unpacker.readString());
+ unpacker.readArrayEnd();
+
+ assertEquals(bytes.length, unpacker.getReadByteCount());
+ }
+
+ @Test @Override
+ public void testIndexedFieldsBeanClassNotNullable() throws Exception {
+ super.testIndexedFieldsBeanClassNotNullable();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullable(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClassNotNullable.class);
+ BufferPacker packer = msgpack.createBufferPacker();
+ tmpl.write(packer, v);
+ byte[] bytes = packer.toByteArray();
+ BufferUnpacker unpacker = msgpack.createBufferUnpacker();
+ unpacker.resetReadByteCount();
+ unpacker.wrap(bytes);
+ IndexedFieldsBeanClassNotNullable ret = tmpl.read(unpacker, null);
+ assertEquals(v, ret);
+ assertEquals(bytes.length, unpacker.getReadByteCount());
+ }
+
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullableFieldsUnpackedInOrder(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClassNotNullable.class);
+ BufferPacker packer = msgpack.createBufferPacker();
+ tmpl.write(packer, v);
+ byte[] bytes = packer.toByteArray();
+ BufferUnpacker unpacker = msgpack.createBufferUnpacker();
+ unpacker.resetReadByteCount();
+ unpacker.wrap(bytes);
+
+ unpacker.readArrayBegin();
+ assertEquals("alpha", unpacker.readString());
+ assertEquals("bravo", unpacker.readString());
+ assertEquals("charlie", unpacker.readString());
+ assertEquals("delta", unpacker.readString());
+ assertEquals("echo", unpacker.readString());
+ unpacker.readArrayEnd();
+
+ assertEquals(bytes.length, unpacker.getReadByteCount());
+ }
+
@Test @Override
public void testInheritanceClass() throws Exception {
super.testInheritanceClass();
diff --git a/src/test/java/org/msgpack/template/builder/TestReflectionBeansBufferPackConvert.java b/src/test/java/org/msgpack/template/builder/TestReflectionBeansBufferPackConvert.java
index b1bb32ffc..c8079cbb7 100644
--- a/src/test/java/org/msgpack/template/builder/TestReflectionBeansBufferPackConvert.java
+++ b/src/test/java/org/msgpack/template/builder/TestReflectionBeansBufferPackConvert.java
@@ -11,6 +11,8 @@
import org.msgpack.template.Template;
import org.msgpack.testclasses.AbstractClass;
import org.msgpack.testclasses.FinalClass;
+import org.msgpack.testclasses.IndexedFieldsBeanClass;
+import org.msgpack.testclasses.IndexedFieldsBeanClassNotNullable;
import org.msgpack.testclasses.InheritanceClass;
import org.msgpack.testclasses.InheritanceClassNotNullable;
import org.msgpack.testclasses.Interface;
@@ -421,6 +423,54 @@ public void testReferenceCycleTypeFieldsClassNotNullable(ReferenceCycleTypeField
assertEquals(bytes.length, u.getReadByteCount());
}
+ @Test @Override
+ public void testIndexedFieldsBeanClass() throws Exception {
+ super.testIndexedFieldsBeanClass();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClass(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClass.class);
+ BufferPacker packer = msgpack.createBufferPacker();
+ tmpl.write(packer, v);
+ byte[] bytes = packer.toByteArray();
+ BufferUnpacker u = msgpack.createBufferUnpacker();
+ u.resetReadByteCount();
+ u.wrap(bytes);
+ Value value = u.readValue();
+ Converter unpacker = new Converter(value);
+ IndexedFieldsBeanClass ret = tmpl.read(unpacker, null);
+ assertEquals(v, ret);
+ assertEquals(bytes.length, u.getReadByteCount());
+ }
+
+ @Test @Override
+ public void testIndexedFieldsBeanClassNotNullable() throws Exception {
+ super.testIndexedFieldsBeanClassNotNullable();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullable(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClassNotNullable.class);
+ BufferPacker packer = msgpack.createBufferPacker();
+ tmpl.write(packer, v);
+ byte[] bytes = packer.toByteArray();
+ BufferUnpacker u = msgpack.createBufferUnpacker();
+ u.resetReadByteCount();
+ u.wrap(bytes);
+ Value value = u.readValue();
+ Converter unpacker = new Converter(value);
+ IndexedFieldsBeanClassNotNullable ret = tmpl.read(unpacker, null);
+ assertEquals(v, ret);
+ assertEquals(bytes.length, u.getReadByteCount());
+ }
+
@Test @Override
public void testInheritanceClass() throws Exception {
super.testInheritanceClass();
diff --git a/src/test/java/org/msgpack/template/builder/TestReflectionBeansBufferPackUnpack.java b/src/test/java/org/msgpack/template/builder/TestReflectionBeansBufferPackUnpack.java
index 553b47818..47917c509 100644
--- a/src/test/java/org/msgpack/template/builder/TestReflectionBeansBufferPackUnpack.java
+++ b/src/test/java/org/msgpack/template/builder/TestReflectionBeansBufferPackUnpack.java
@@ -13,6 +13,8 @@
import org.msgpack.template.Template;
import org.msgpack.testclasses.AbstractClass;
import org.msgpack.testclasses.FinalClass;
+import org.msgpack.testclasses.IndexedFieldsBeanClass;
+import org.msgpack.testclasses.IndexedFieldsBeanClassNotNullable;
import org.msgpack.testclasses.InheritanceClass;
import org.msgpack.testclasses.InheritanceClassNotNullable;
import org.msgpack.testclasses.Interface;
@@ -376,6 +378,94 @@ public void testReferenceCycleTypeFieldsClassNotNullable(ReferenceCycleTypeField
assertEquals(bytes.length, unpacker.getReadByteCount());
}
+ @Test @Override
+ public void testIndexedFieldsBeanClass() throws Exception {
+ super.testIndexedFieldsBeanClass();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClass(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClass.class);
+ BufferPacker packer = msgpack.createBufferPacker();
+ tmpl.write(packer, v);
+ byte[] bytes = packer.toByteArray();
+ Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
+ unpacker.resetReadByteCount();
+ IndexedFieldsBeanClass ret = tmpl.read(unpacker, null);
+ assertEquals(v, ret);
+ assertEquals(bytes.length, unpacker.getReadByteCount());
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassFieldsUnpackedInOrder(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClass.class);
+ BufferPacker packer = msgpack.createBufferPacker();
+ tmpl.write(packer, v);
+ byte[] bytes = packer.toByteArray();
+ Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
+ unpacker.resetReadByteCount();
+
+ unpacker.readArrayBegin();
+ assertEquals("alpha", unpacker.readString());
+ assertEquals("bravo", unpacker.readString());
+ assertEquals("charlie", unpacker.readString());
+ assertEquals("delta", unpacker.readString());
+ assertEquals("echo", unpacker.readString());
+ unpacker.readArrayEnd();
+
+ assertEquals(bytes.length, unpacker.getReadByteCount());
+ }
+
+ @Test @Override
+ public void testIndexedFieldsBeanClassNotNullable() throws Exception {
+ super.testIndexedFieldsBeanClassNotNullable();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullable(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClassNotNullable.class);
+ BufferPacker packer = msgpack.createBufferPacker();
+ tmpl.write(packer, v);
+ byte[] bytes = packer.toByteArray();
+ Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
+ unpacker.resetReadByteCount();
+ IndexedFieldsBeanClassNotNullable ret = tmpl.read(unpacker, null);
+ assertEquals(v, ret);
+ assertEquals(bytes.length, unpacker.getReadByteCount());
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullableFieldsUnpackedInOrder(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClassNotNullable.class);
+ BufferPacker packer = msgpack.createBufferPacker();
+ tmpl.write(packer, v);
+ byte[] bytes = packer.toByteArray();
+ Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
+ unpacker.resetReadByteCount();
+
+ unpacker.readArrayBegin();
+ assertEquals("alpha", unpacker.readString());
+ assertEquals("bravo", unpacker.readString());
+ assertEquals("charlie", unpacker.readString());
+ assertEquals("delta", unpacker.readString());
+ assertEquals("echo", unpacker.readString());
+ unpacker.readArrayEnd();
+
+ assertEquals(bytes.length, unpacker.getReadByteCount());
+ }
+
@Test @Override
public void testInheritanceClass() throws Exception {
super.testInheritanceClass();
diff --git a/src/test/java/org/msgpack/template/builder/TestReflectionBeansPackBufferUnpack.java b/src/test/java/org/msgpack/template/builder/TestReflectionBeansPackBufferUnpack.java
index 6481724a1..241c2a659 100644
--- a/src/test/java/org/msgpack/template/builder/TestReflectionBeansPackBufferUnpack.java
+++ b/src/test/java/org/msgpack/template/builder/TestReflectionBeansPackBufferUnpack.java
@@ -13,6 +13,8 @@
import org.msgpack.template.Template;
import org.msgpack.testclasses.AbstractClass;
import org.msgpack.testclasses.FinalClass;
+import org.msgpack.testclasses.IndexedFieldsBeanClass;
+import org.msgpack.testclasses.IndexedFieldsBeanClassNotNullable;
import org.msgpack.testclasses.InheritanceClass;
import org.msgpack.testclasses.InheritanceClassNotNullable;
import org.msgpack.testclasses.Interface;
@@ -406,6 +408,102 @@ public void testReferenceCycleTypeFieldsClassNotNullable(ReferenceCycleTypeField
assertEquals(bytes.length, unpacker.getReadByteCount());
}
+ @Test @Override
+ public void testIndexedFieldsBeanClass() throws Exception {
+ super.testIndexedFieldsBeanClass();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClass(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClass.class);
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ Packer packer = msgpack.createPacker(out);
+ tmpl.write(packer, v);
+ byte[] bytes = out.toByteArray();
+ BufferUnpacker unpacker = msgpack.createBufferUnpacker();
+ unpacker.resetReadByteCount();
+ unpacker.wrap(bytes);
+ IndexedFieldsBeanClass ret = tmpl.read(unpacker, null);
+ assertEquals(v, ret);
+ assertEquals(bytes.length, unpacker.getReadByteCount());
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassFieldsUnpackedInOrder(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClass.class);
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ Packer packer = msgpack.createPacker(out);
+ tmpl.write(packer, v);
+ byte[] bytes = out.toByteArray();
+ BufferUnpacker unpacker = msgpack.createBufferUnpacker();
+ unpacker.resetReadByteCount();
+ unpacker.wrap(bytes);
+
+ unpacker.readArrayBegin();
+ assertEquals("alpha", unpacker.readString());
+ assertEquals("bravo", unpacker.readString());
+ assertEquals("charlie", unpacker.readString());
+ assertEquals("delta", unpacker.readString());
+ assertEquals("echo", unpacker.readString());
+ unpacker.readArrayEnd();
+
+ assertEquals(bytes.length, unpacker.getReadByteCount());
+ }
+
+ @Test @Override
+ public void testIndexedFieldsBeanClassNotNullable() throws Exception {
+ super.testIndexedFieldsBeanClassNotNullable();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullable(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClassNotNullable.class);
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ Packer packer = msgpack.createPacker(out);
+ tmpl.write(packer, v);
+ byte[] bytes = out.toByteArray();
+ BufferUnpacker unpacker = msgpack.createBufferUnpacker();
+ unpacker.resetReadByteCount();
+ unpacker.wrap(bytes);
+ IndexedFieldsBeanClassNotNullable ret = tmpl.read(unpacker, null);
+ assertEquals(v, ret);
+ assertEquals(bytes.length, unpacker.getReadByteCount());
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullableFieldsUnpackedInOrder(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClassNotNullable.class);
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ Packer packer = msgpack.createPacker(out);
+ tmpl.write(packer, v);
+ byte[] bytes = out.toByteArray();
+ BufferUnpacker unpacker = msgpack.createBufferUnpacker();
+ unpacker.resetReadByteCount();
+ unpacker.wrap(bytes);
+
+ unpacker.readArrayBegin();
+ assertEquals("alpha", unpacker.readString());
+ assertEquals("bravo", unpacker.readString());
+ assertEquals("charlie", unpacker.readString());
+ assertEquals("delta", unpacker.readString());
+ assertEquals("echo", unpacker.readString());
+ unpacker.readArrayEnd();
+
+ assertEquals(bytes.length, unpacker.getReadByteCount());
+ }
+
@Test @Override
public void testInheritanceClass() throws Exception {
super.testInheritanceClass();
diff --git a/src/test/java/org/msgpack/template/builder/TestReflectionBeansPackConvert.java b/src/test/java/org/msgpack/template/builder/TestReflectionBeansPackConvert.java
index b0238c5f5..d65bff633 100644
--- a/src/test/java/org/msgpack/template/builder/TestReflectionBeansPackConvert.java
+++ b/src/test/java/org/msgpack/template/builder/TestReflectionBeansPackConvert.java
@@ -13,6 +13,8 @@
import org.msgpack.template.Template;
import org.msgpack.testclasses.AbstractClass;
import org.msgpack.testclasses.FinalClass;
+import org.msgpack.testclasses.IndexedFieldsBeanClass;
+import org.msgpack.testclasses.IndexedFieldsBeanClassNotNullable;
import org.msgpack.testclasses.InheritanceClass;
import org.msgpack.testclasses.InheritanceClassNotNullable;
import org.msgpack.testclasses.Interface;
@@ -438,6 +440,56 @@ public void testReferenceCycleTypeFieldsClassNotNullable(ReferenceCycleTypeField
assertEquals(bytes.length, u.getReadByteCount());
}
+ @Test @Override
+ public void testIndexedFieldsBeanClass() throws Exception {
+ super.testIndexedFieldsBeanClass();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClass(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClass.class);
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ Packer packer = msgpack.createPacker(out);
+ tmpl.write(packer, v);
+ byte[] bytes = out.toByteArray();
+ BufferUnpacker u = msgpack.createBufferUnpacker();
+ u.resetReadByteCount();
+ u.wrap(bytes);
+ Value value = u.readValue();
+ Converter unpacker = new Converter(value);
+ IndexedFieldsBeanClass ret = tmpl.read(unpacker, null);
+ assertEquals(v, ret);
+ assertEquals(bytes.length, u.getReadByteCount());
+ }
+
+ @Test @Override
+ public void testIndexedFieldsBeanClassNotNullable() throws Exception {
+ super.testIndexedFieldsBeanClassNotNullable();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullable(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClassNotNullable.class);
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ Packer packer = msgpack.createPacker(out);
+ tmpl.write(packer, v);
+ byte[] bytes = out.toByteArray();
+ BufferUnpacker u = msgpack.createBufferUnpacker();
+ u.resetReadByteCount();
+ u.wrap(bytes);
+ Value value = u.readValue();
+ Converter unpacker = new Converter(value);
+ IndexedFieldsBeanClassNotNullable ret = tmpl.read(unpacker, null);
+ assertEquals(v, ret);
+ assertEquals(bytes.length, u.getReadByteCount());
+ }
+
@Test @Override
public void testInheritanceClass() throws Exception {
super.testInheritanceClass();
diff --git a/src/test/java/org/msgpack/template/builder/TestReflectionBeansPackUnpack.java b/src/test/java/org/msgpack/template/builder/TestReflectionBeansPackUnpack.java
index 4c88d4baf..48c700713 100644
--- a/src/test/java/org/msgpack/template/builder/TestReflectionBeansPackUnpack.java
+++ b/src/test/java/org/msgpack/template/builder/TestReflectionBeansPackUnpack.java
@@ -14,6 +14,8 @@
import org.msgpack.template.Template;
import org.msgpack.testclasses.AbstractClass;
import org.msgpack.testclasses.FinalClass;
+import org.msgpack.testclasses.IndexedFieldsBeanClass;
+import org.msgpack.testclasses.IndexedFieldsBeanClassNotNullable;
import org.msgpack.testclasses.InheritanceClass;
import org.msgpack.testclasses.InheritanceClassNotNullable;
import org.msgpack.testclasses.Interface;
@@ -392,6 +394,98 @@ public void testReferenceCycleTypeFieldsClassNotNullable(ReferenceCycleTypeField
assertEquals(bytes.length, unpacker.getReadByteCount());
}
+ @Test @Override
+ public void testIndexedFieldsBeanClass() throws Exception {
+ super.testIndexedFieldsBeanClass();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClass(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClass.class);
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ Packer packer = msgpack.createPacker(out);
+ tmpl.write(packer, v);
+ byte[] bytes = out.toByteArray();
+ Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
+ unpacker.resetReadByteCount();
+ IndexedFieldsBeanClass ret = tmpl.read(unpacker, null);
+ assertEquals(v, ret);
+ assertEquals(bytes.length, unpacker.getReadByteCount());
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassFieldsUnpackedInOrder(IndexedFieldsBeanClass v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClass.class);
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ Packer packer = msgpack.createPacker(out);
+ tmpl.write(packer, v);
+ byte[] bytes = out.toByteArray();
+ Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
+ unpacker.resetReadByteCount();
+
+ unpacker.readArrayBegin();
+ assertEquals("alpha", unpacker.readString());
+ assertEquals("bravo", unpacker.readString());
+ assertEquals("charlie", unpacker.readString());
+ assertEquals("delta", unpacker.readString());
+ assertEquals("echo", unpacker.readString());
+ unpacker.readArrayEnd();
+
+ assertEquals(bytes.length, unpacker.getReadByteCount());
+ }
+
+ @Test @Override
+ public void testIndexedFieldsBeanClassNotNullable() throws Exception {
+ super.testIndexedFieldsBeanClassNotNullable();
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullable(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClassNotNullable.class);
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ Packer packer = msgpack.createPacker(out);
+ tmpl.write(packer, v);
+ byte[] bytes = out.toByteArray();
+ Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
+ unpacker.resetReadByteCount();
+ IndexedFieldsBeanClassNotNullable ret = tmpl.read(unpacker, null);
+ assertEquals(v, ret);
+ assertEquals(bytes.length, unpacker.getReadByteCount());
+ }
+
+ @Override
+ public void testIndexedFieldsBeanClassNotNullableFieldsUnpackedInOrder(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ MessagePack msgpack = new MessagePack();
+ TemplateRegistry registry = new TemplateRegistry(null);
+ ReflectionBeansTemplateBuilder builder = new ReflectionBeansTemplateBuilder(registry);
+ Template tmpl = builder.buildTemplate(IndexedFieldsBeanClassNotNullable.class);
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ Packer packer = msgpack.createPacker(out);
+ tmpl.write(packer, v);
+ byte[] bytes = out.toByteArray();
+ Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(bytes));
+ unpacker.resetReadByteCount();
+
+ unpacker.readArrayBegin();
+ assertEquals("alpha", unpacker.readString());
+ assertEquals("bravo", unpacker.readString());
+ assertEquals("charlie", unpacker.readString());
+ assertEquals("delta", unpacker.readString());
+ assertEquals("echo", unpacker.readString());
+ unpacker.readArrayEnd();
+
+ assertEquals(bytes.length, unpacker.getReadByteCount());
+ }
+
@Test @Override
public void testInheritanceClass() throws Exception {
super.testInheritanceClass();
diff --git a/src/test/java/org/msgpack/template/builder/TestSet.java b/src/test/java/org/msgpack/template/builder/TestSet.java
index 52f073178..12557a026 100644
--- a/src/test/java/org/msgpack/template/builder/TestSet.java
+++ b/src/test/java/org/msgpack/template/builder/TestSet.java
@@ -12,6 +12,8 @@
import org.msgpack.testclasses.EnumTypeFieldsClass;
import org.msgpack.testclasses.EnumTypeFieldsClassNotNullable;
import org.msgpack.testclasses.FinalClass;
+import org.msgpack.testclasses.IndexedFieldsBeanClass;
+import org.msgpack.testclasses.IndexedFieldsBeanClassNotNullable;
import org.msgpack.testclasses.InheritanceClass;
import org.msgpack.testclasses.InheritanceClassNotNullable;
import org.msgpack.testclasses.ListTypeFieldsClass;
@@ -434,6 +436,50 @@ public void testReferenceCycleTypeFieldsClassNotNullable() throws Exception {
public void testReferenceCycleTypeFieldsClassNotNullable(ReferenceCycleTypeFieldsClassNotNullable v) throws Exception {
}
+ public void testIndexedFieldsBeanClass() throws Exception {
+ testIndexedFieldsBeanClass(null);
+ testIndexedFieldsBeanClass(new IndexedFieldsBeanClass());
+ IndexedFieldsBeanClass v = new IndexedFieldsBeanClass();
+ v.f5 = "alpha";
+ v.f4 = "echo";
+ v.f3 = "bravo";
+ v.f2 = "delta";
+ v.f1 = "charlie";
+ testIndexedFieldsBeanClass(v);
+ testIndexedFieldsBeanClassFieldsUnpackedInOrder(v);
+ }
+
+ public void testIndexedFieldsBeanClass(IndexedFieldsBeanClass v) throws Exception {
+ }
+
+ public void testIndexedFieldsBeanClassFieldsUnpackedInOrder(IndexedFieldsBeanClass v) throws Exception {
+ }
+
+ public void testIndexedFieldsBeanClassNotNullable() throws Exception {
+ testIndexedFieldsBeanClassNotNullable(null);
+ try {
+ testIndexedFieldsBeanClassNotNullable(new IndexedFieldsBeanClassNotNullable());
+ Assert.fail();
+ } catch (Throwable t) {
+ Assert.assertTrue(t instanceof MessageTypeException);
+ }
+
+ IndexedFieldsBeanClassNotNullable v = new IndexedFieldsBeanClassNotNullable();
+ v.f5 = "alpha";
+ v.f4 = "echo";
+ v.f3 = "bravo";
+ v.f2 = "delta";
+ v.f1 = "charlie";
+ testIndexedFieldsBeanClassNotNullable(v);
+ testIndexedFieldsBeanClassNotNullableFieldsUnpackedInOrder(v);
+ }
+
+ public void testIndexedFieldsBeanClassNotNullable(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ }
+
+ public void testIndexedFieldsBeanClassNotNullableFieldsUnpackedInOrder(IndexedFieldsBeanClassNotNullable v) throws Exception {
+ }
+
public void testInheritanceClass() throws Exception {
testInheritanceClass(null);
testInheritanceClass(new InheritanceClass());
diff --git a/src/test/java/org/msgpack/testclasses/IndexedFieldsBeanClass.java b/src/test/java/org/msgpack/testclasses/IndexedFieldsBeanClass.java
new file mode 100644
index 000000000..7c3331c36
--- /dev/null
+++ b/src/test/java/org/msgpack/testclasses/IndexedFieldsBeanClass.java
@@ -0,0 +1,114 @@
+package org.msgpack.testclasses;
+
+import org.junit.Ignore;
+import org.msgpack.annotation.Index;
+import org.msgpack.annotation.MessagePackBeans;
+
+@Ignore @MessagePackBeans
+public class IndexedFieldsBeanClass {
+
+ public String f5;
+
+ public String f4;
+
+ public String f3;
+
+ public String f2;
+
+ public String f1;
+
+ @Index(0)
+ public String getF5() {
+ return f5;
+ }
+
+ public void setF5(String f5) {
+ this.f5 = f5;
+ }
+
+ @Index(4)
+ public String getF4() {
+ return f4;
+ }
+
+ public void setF4(String f4) {
+ this.f4 = f4;
+ }
+
+ public String getF3() {
+ return f3;
+ }
+
+ @Index(1)
+ public void setF3(String f3) {
+ this.f3 = f3;
+ }
+
+ public String getF2() {
+ return f2;
+ }
+
+ @Index(3)
+ public void setF2(String f2) {
+ this.f2 = f2;
+ }
+
+ @Index(2)
+ public String getF1() {
+ return f1;
+ }
+
+ public void setF1(String f1) {
+ this.f1 = f1;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (! (o instanceof IndexedFieldsBeanClass)) {
+ return false;
+ }
+ IndexedFieldsBeanClass that = (IndexedFieldsBeanClass) o;
+ if (f5 == null) {
+ if (that.f5 != null) {
+ return false;
+ }
+ }
+ if (that.f5 != null && ! f5.equals(that.f5)) {
+ return false;
+ }
+ if (f4 == null) {
+ if (that.f4 != null) {
+ return false;
+ }
+ }
+ if (that.f4 != null && ! f4.equals(that.f4)) {
+ return false;
+ }
+ if (f3 == null) {
+ if (that.f3 != null) {
+ return false;
+ }
+ }
+ if (that.f3 != null && ! f3.equals(that.f3)) {
+ return false;
+ }
+ if (f2 == null) {
+ if (that.f2 != null) {
+ return false;
+ }
+ }
+ if (that.f2 != null && ! f2.equals(that.f2)) {
+ return false;
+ }
+ if (f1 == null) {
+ if (that.f1 != null) {
+ return false;
+ }
+ }
+ if (that.f1 != null && ! f1.equals(that.f1)) {
+ return false;
+ }
+
+ return true;
+ }
+}
diff --git a/src/test/java/org/msgpack/testclasses/IndexedFieldsBeanClassNotNullable.java b/src/test/java/org/msgpack/testclasses/IndexedFieldsBeanClassNotNullable.java
new file mode 100644
index 000000000..8ec10bfa0
--- /dev/null
+++ b/src/test/java/org/msgpack/testclasses/IndexedFieldsBeanClassNotNullable.java
@@ -0,0 +1,118 @@
+package org.msgpack.testclasses;
+
+import org.junit.Ignore;
+import org.msgpack.annotation.*;
+
+@Ignore @MessagePackBeans
+public class IndexedFieldsBeanClassNotNullable {
+
+ public String f5;
+
+ public String f4;
+
+ public String f3;
+
+ public String f2;
+
+ public String f1;
+
+ @Index(0) @NotNullable
+ public String getF5() {
+ return f5;
+ }
+
+ @NotNullable
+ public void setF5(String f5) {
+ this.f5 = f5;
+ }
+
+ @Index(4) @NotNullable
+ public String getF4() {
+ return f4;
+ }
+
+ @NotNullable
+ public void setF4(String f4) {
+ this.f4 = f4;
+ }
+
+ @NotNullable
+ public String getF3() {
+ return f3;
+ }
+
+ @Index(1) @NotNullable
+ public void setF3(String f3) {
+ this.f3 = f3;
+ }
+
+ @NotNullable
+ public String getF2() {
+ return f2;
+ }
+
+ @Index(3) @NotNullable
+ public void setF2(String f2) {
+ this.f2 = f2;
+ }
+
+ @Index(2) @NotNullable
+ public String getF1() {
+ return f1;
+ }
+
+ @NotNullable
+ public void setF1(String f1) {
+ this.f1 = f1;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (! (o instanceof IndexedFieldsBeanClassNotNullable)) {
+ return false;
+ }
+ IndexedFieldsBeanClassNotNullable that = (IndexedFieldsBeanClassNotNullable) o;
+ if (f5 == null) {
+ if (that.f5 != null) {
+ return false;
+ }
+ }
+ if (that.f5 != null && ! f5.equals(that.f5)) {
+ return false;
+ }
+ if (f4 == null) {
+ if (that.f4 != null) {
+ return false;
+ }
+ }
+ if (that.f4 != null && ! f4.equals(that.f4)) {
+ return false;
+ }
+ if (f3 == null) {
+ if (that.f3 != null) {
+ return false;
+ }
+ }
+ if (that.f3 != null && ! f3.equals(that.f3)) {
+ return false;
+ }
+ if (f2 == null) {
+ if (that.f2 != null) {
+ return false;
+ }
+ }
+ if (that.f2 != null && ! f2.equals(that.f2)) {
+ return false;
+ }
+ if (f1 == null) {
+ if (that.f1 != null) {
+ return false;
+ }
+ }
+ if (that.f1 != null && ! f1.equals(that.f1)) {
+ return false;
+ }
+
+ return true;
+ }
+}
diff --git a/src/test/java/org/msgpack/unpacker/TestMessagePackUnpacker.java b/src/test/java/org/msgpack/unpacker/TestMessagePackUnpacker.java
new file mode 100644
index 000000000..17693003d
--- /dev/null
+++ b/src/test/java/org/msgpack/unpacker/TestMessagePackUnpacker.java
@@ -0,0 +1,38 @@
+package org.msgpack.unpacker;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.msgpack.MessagePack;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+import static org.junit.Assert.*;
+
+public class TestMessagePackUnpacker {
+ private MessagePack msgpack;
+
+ @Before
+ public void setup() {
+ msgpack = new MessagePack();
+ }
+
+ @Test
+ public void testStr8() throws IOException {
+ // Deserialize a data that another platform serialized a string "xxx...xxx" (length: 128).
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ // 0xD9: str8, 0x80: length: 128
+ out.write(new byte[] {(byte) 0xD9, (byte) 0x80});
+ for (int i = 0; i < 128; i++) {
+ // 0x78: 'x'
+ out.write(0x78);
+ }
+ Unpacker unpacker = msgpack.createUnpacker(new ByteArrayInputStream(out.toByteArray()));
+ String string = unpacker.readString();
+ assertEquals(128, string.length());
+ for (int i = 0; i < 128; i++) {
+ assertEquals('x', string.charAt(i));
+ }
+ }
+}
\ No newline at end of file