"\"longPrimitiveArray2d\":[[9223372036854775807],[-9223372036854775808]]," +
"\"shortPrimitiveArray2d\":[[9,7,8,15]]," +
"\"voidProperty\":null" +
"}";
SimpleBean bean = reader.read( input );
assertNotNull( bean );
assertEquals( "toto", bean.getString() );
assertEquals( new Integer( 34 ).byteValue(), bean.getBytePrimitive() );
assertEquals( new Byte( new Integer( 87 ).byteValue() ), bean.getByteBoxed() );
assertEquals( new Integer( 12 ).shortValue(), bean.getShortPrimitive() );
assertEquals( new Short( new Integer( 15 ).shortValue() ), bean.getShortBoxed() );
assertEquals( 234, bean.getIntPrimitive() );
assertEquals( new Integer( 456 ), bean.getIntBoxed() );
assertEquals( Long.MIN_VALUE, bean.getLongPrimitive() );
assertEquals( new Long( Long.MAX_VALUE ), bean.getLongBoxed() );
assertEquals( 126.23, bean.getDoublePrimitive() );
assertEquals( 1256.98, bean.getDoubleBoxed() );
assertEquals( new Double( 12.89 ).floatValue(), bean.getFloatPrimitive() );
assertEquals( new Double( 67.3 ).floatValue(), bean.getFloatBoxed() );
assertEquals( new BigDecimal( "12345678987654.456789" ), bean.getBigDecimal() );
assertEquals( new BigInteger( "123456789098765432345678987654" ), bean.getBigInteger() );
assertTrue( bean.isBooleanPrimitive() );
assertFalse( bean.getBooleanBoxed() );
assertEquals( AnEnum.B, bean.getEnumProperty() );
assertEquals( '\u00e7', bean.getCharPrimitive() );
assertEquals( new Character( '\u00e8' ), bean.getCharBoxed() );
// Date
assertEquals( new Date( 1345304756543l ), bean.getDate() );
assertEquals( getUTCTime( 2012, 8, 18, 0, 0, 0, 0 ), bean.getSqlDate().getTime() );
assertEquals( new Time( 15, 45, 56 ), bean.getSqlTime() );
assertEquals( new java.sql.Timestamp( 1345304756546l ), bean.getSqlTimestamp() );
// Arrays
assertTrue( Arrays.deepEquals( new String[]{"Hello", null, "World", "!"}, bean.getStringArray() ) );
assertTrue( Arrays.equals( new boolean[]{true, false, false, true, false}, bean.getBooleanPrimitiveArray() ) );
assertTrue( Arrays.equals( "Hello".getBytes(), bean.getBytePrimitiveArray() ) );
assertTrue( Arrays.equals( new char[]{'\u00e7', 'o', 'u'}, bean.getCharacterPrimitiveArray() ) );
assertTrue( Arrays.equals( new double[]{45.789, 0d, 5.1024}, bean.getDoublePrimitiveArray() ) );
assertTrue( Arrays.equals( new float[]{0f}, bean.getFloatPrimitiveArray() ) );
assertTrue( Arrays.equals( new int[]{4, 5, 6, 0, 7, 8}, bean.getIntegerPrimitiveArray() ) );
assertTrue( Arrays.equals( new long[]{Long.MAX_VALUE, 0l, Long.MIN_VALUE}, bean.getLongPrimitiveArray() ) );
assertTrue( Arrays.equals( new short[]{9, 0, 7, 8, 15}, bean.getShortPrimitiveArray() ) );
// 2D Arrays
assertTrue( isArray2dEquals( newArray2d( new String[]{"Jean", "Dujardin"}, new String[]{"Omar", "Sy"}, new String[]{"toto",
null} ), bean
.getStringArray2d() ) );
assertTrue( isArray2dEquals( newArray2d( new boolean[]{true, false}, new boolean[]{false, false} ), bean
.getBooleanPrimitiveArray2d() ) );
assertTrue( isArray2dEquals( newArray2d( "Hello".getBytes(), "World".getBytes() ), bean.getBytePrimitiveArray2d() ) );
assertTrue( isArray2dEquals( newArray2d( new char[]{'\u00e7', 'o'}, new char[]{'a', 'b'} ), bean.getCharacterPrimitiveArray2d() ) );
assertTrue( isArray2dEquals( newArray2d( new double[]{45.789, 5.1024} ), bean.getDoublePrimitiveArray2d() ) );
assertTrue( isArray2dEquals( newArray2d( new float[]{} ), bean.getFloatPrimitiveArray2d() ) );
assertTrue( isArray2dEquals( newArray2d( new int[]{1, 2, 3}, new int[]{4, 5, 6}, new int[]{7, 8, 9} ), bean
.getIntegerPrimitiveArray2d() ) );
assertTrue( isArray2dEquals( newArray2d( new long[]{Long.MAX_VALUE}, new long[]{Long.MIN_VALUE} ), bean
.getLongPrimitiveArray2d() ) );
assertTrue( isArray2dEquals( newArray2d( new short[]{9, 7, 8, 15} ), bean.getShortPrimitiveArray2d() ) );
// Void
assertNull( bean.getVoidProperty() );
}