@Test public void givenDateValueWhenSerializingAndDeserializingExpectEquals() { String serialized = valueSerialization.serialize( new DateTime( "2020-03-04T13:24:35", forID( "CET" ) ).toDate() ); assertThat( serialized, equalTo( "2020-03-04T12:24:35.000Z" ) ); Date deserialized = valueSerialization.deserialize( Date.class, serialized ); assertThat( deserialized, equalTo( new DateTime( "2020-03-04T13:24:35", forID( "CET" ) ).toDate() ) ); assertThat( deserialized, equalTo( new DateTime( "2020-03-04T12:24:35", UTC ).toDate() ) ); }
@Test public void givenLocalDateValueWhenSerializingAndDeserializingExpectEquals() { String serialized = valueSerialization.serialize( new LocalDate( "2020-03-04" ) ); assertThat( serialized, equalTo( "2020-03-04" ) ); LocalDate deserialized = valueSerialization.deserialize( LocalDate.class, serialized ); assertThat( deserialized, equalTo( new LocalDate( "2020-03-04" ) ) ); }
@Test public void givenBigDecimalValueWhenSerializingAndDeserializingExpectEquals() { BigDecimal bigDecimal = new BigDecimal( "42.2376931348623157e+309" ); assertThat( bigDecimal.doubleValue(), equalTo( Double.POSITIVE_INFINITY ) ); String serialized = valueSerialization.serialize( bigDecimal ); assertThat( serialized, equalTo( "4.22376931348623157E+310" ) ); BigDecimal deserialized = valueSerialization.deserialize( BigDecimal.class, serialized ); assertThat( deserialized, equalTo( bigDecimal ) ); }
@Test public void givenBigIntegerValueWhenSerializingAndDeserializingExpectEquals() { BigInteger bigInteger = new BigInteger( "42424242424242424242424242" ); assertThat( bigInteger, not( equalTo( BigInteger.valueOf( bigInteger.longValue() ) ) ) ); String serialized = valueSerialization.serialize( bigInteger ); assertThat( serialized, equalTo( "42424242424242424242424242" ) ); BigInteger deserialized = valueSerialization.deserialize( BigInteger.class, serialized ); assertThat( deserialized, equalTo( bigInteger ) ); }
@Test public void givenCharacterValueWhenSerializingAndDeserializingExpectEquals() { String serialized = valueSerialization.serialize( 'q' ); assertThat( "Serialized", serialized, equalTo( "q" ) ); Character deserialized = valueSerialization.deserialize( Character.class, serialized ); assertThat( "Deserialized", deserialized, equalTo( 'q' ) ); }
@Test public void givenByteValueWhenSerializingAndDeserializingExpectEquals() { String serialized = valueSerialization.serialize( (byte) 42 ); assertThat( serialized, equalTo( "42" ) ); Byte deserialized = valueSerialization.deserialize( Byte.class, serialized ); assertThat( deserialized, equalTo( (byte) 42 ) ); }
@Test public void givenDoubleValueWhenSerializingAndDeserializingExpectEquals() { String serialized = valueSerialization.serialize( 42D ); assertThat( serialized, equalTo( "42.0" ) ); Double deserialized = valueSerialization.deserialize( Double.class, serialized ); assertThat( deserialized, equalTo( 42D ) ); }
@Test public void givenStringValueWhenSerializingAndDeserializingExpectEquals() { String serialized = valueSerialization.serialize( "test" ); assertThat( serialized, equalTo( "test" ) ); String deserialized = valueSerialization.deserialize( String.class, serialized ); assertThat( deserialized, equalTo( "test" ) ); }
@Test public void givenBooleanValueWhenSerializingAndDeserializingExpectEquals() { String serialized = valueSerialization.serialize( Boolean.TRUE ); assertThat( serialized, equalTo( "true" ) ); Boolean deserialized = valueSerialization.deserialize( Boolean.class, serialized ); assertThat( deserialized, equalTo( Boolean.TRUE ) ); }
@Test public void givenArrayWithByteAndNullElementWhenSerializingAndDeserializingExpectEquals() throws Exception { Byte[] array = new Byte[] { 9, null, -12, -12, 127, -128, 73 }; String output = valueSerialization.serialize( array ); Byte[] deserialized = valueSerialization.deserialize( Byte[].class, output ); assertArrayEquals( array, deserialized ); }
@Test public void givenPrimitiveArrayWithIntsWhenSerializingAndDeserializingExpectEquals() throws Exception { int[] primitiveArray = new int[] { 23, 42, -23, -42 }; String output = valueSerialization.serialize( primitiveArray ); int[] deserialized = valueSerialization.deserialize( int[].class, output ); assertArrayEquals( primitiveArray, deserialized ); }
@Test public void givenLocalDateTimeValueWhenSerializingAndDeserializingExpectEquals() { // Serialized without TimeZone String serialized = valueSerialization.serialize( new LocalDateTime( "2020-03-04T13:23:00", forID( "CET" ) ) ); assertThat( serialized, equalTo( "2020-03-04T13:23:00.000" ) ); LocalDateTime deserialized = valueSerialization.deserialize( LocalDateTime.class, serialized ); assertThat( deserialized, equalTo( new LocalDateTime( "2020-03-04T13:23:00", UTC ) ) ); }
@Test public void testIOString() throws Exception { StringBuilder sb = new StringBuilder(); iterable( byteCollection() ).transferTo( map( valueSerialization.serialize(), text( sb ) ) ); String output = sb.toString(); List<Byte> list = new ArrayList<Byte>(); text( output ).transferTo( map( valueSerialization.deserialize( Byte.class ), collection( list ) ) ); assertEquals( byteCollection(), list ); }
@Test public void givenIterableTypeWithByteAndNullElementWhenSerializingAndDeserializingExpectEquals() throws Exception { String output = valueSerialization.serialize( Iterables.iterable( byteCollection().toArray() ) ); CollectionType collectionType = new CollectionType( List.class, new ValueType( Byte.class ) ); List<Byte> list = valueSerialization.deserialize( collectionType, output ); assertEquals( byteCollection(), list ); }
@Test public void givenCollectionTypeWithCharacterAndNullElementWhenSerializingAndDeserializingExpectEquals() throws Exception { String output = valueSerialization.serialize( characterCollection() ); CollectionType collectionType = new CollectionType( List.class, new ValueType( Character.class ) ); List<Character> list = valueSerialization.deserialize( collectionType, output ); assertEquals( characterCollection(), list ); }
@Test public void givenCollectionTypeWithIntegerAndNullElementWhenSerializingAndDeserializingExpectEquals() throws Exception { String output = valueSerialization.serialize( integerCollection() ); CollectionType collectionType = new CollectionType( List.class, new ValueType( Integer.class ) ); List<Integer> list = valueSerialization.deserialize( collectionType, output ); assertEquals( integerCollection(), list ); }
@Test public void givenCollectionTypeWithDoubleAndNullElementWhenSerializingExpectCorrectJsonOutput() throws Exception { String output = valueSerialization.serialize( doubleCollection() ); CollectionType collectionType = new CollectionType( List.class, new ValueType( Double.class ) ); List<Double> list = valueSerialization.deserialize( collectionType, output ); assertEquals( doubleCollection(), list ); }
@Test public void givenCollectionTypeWithFloatAndNullElementWhenSerializingAndDeserializingExpectEquals() throws Exception { String output = valueSerialization.serialize( floatCollection() ); CollectionType collectionType = new CollectionType( List.class, new ValueType( Float.class ) ); List<Float> list = valueSerialization.deserialize( collectionType, output ); assertEquals( floatCollection(), list ); }
@Test public void givenCollectionTypeWithBigDecimalAndNullElementWhenSerializingAndDeserializingExpectEquals() throws Exception { String output = valueSerialization.serialize( bigDecimalCollection() ); CollectionType collectionType = new CollectionType( Collection.class, new ValueType( BigDecimal.class ) ); Collection<BigDecimal> collection = valueSerialization.deserialize( collectionType, output ); assertEquals( bigDecimalCollection(), collection ); }
@Test public void givenMapOfStringByteAndNullElementWhenSerializingAndDeserializingExpectEquals() throws Exception { String output = valueSerialization.serialize( stringByteMap() ); MapType mapType = new MapType( Map.class, new ValueType( String.class ), new ValueType( Byte.class ) ); Map<String, Byte> value = valueSerialization.deserialize( mapType, output ); assertEquals( stringByteMap(), value ); }