@@ -4074,6 +4074,56 @@ public void objectList() {
4074
4074
assertThat (entityOut .value .get (0 ) instanceof TestEntityTypeInfo , is (true ));
4075
4075
}
4076
4076
4077
+ static class TestEntityObjectArray {
4078
+ Object [] value ;
4079
+ }
4080
+
4081
+ @ Test
4082
+ public void heterogeneousArray () {
4083
+ final TestEntityObjectArray entity = new TestEntityObjectArray ();
4084
+ entity .value = new Object []{new TestEntityTypeInfo ()};
4085
+
4086
+ final VPack vpack = new VPack .Builder ().build ();
4087
+ final VPackSlice slice = vpack .serialize (entity );
4088
+
4089
+ assertThat (slice .isObject (), is (true ));
4090
+ assertThat (slice .get ("value" ).isArray (), is (true ));
4091
+ assertThat (slice .get ("value" ).get (0 ).isObject (), is (true ));
4092
+ assertThat (slice .get ("value" ).get (0 ).get ("_class" ).isString (), is (true ));
4093
+ assertThat (slice .get ("value" ).get (0 ).get ("_class" ).getAsString (),
4094
+ is ("com.arangodb.velocypack.VPackSerializeDeserializeTest$TestEntityTypeInfo" ));
4095
+
4096
+ final TestEntityObjectArray entityOut = vpack .deserialize (slice , TestEntityObjectArray .class );
4097
+ assertThat (entityOut , is (notNullValue ()));
4098
+ assertThat (entityOut .value , is (notNullValue ()));
4099
+ assertThat (entityOut .value .length , is (1 ));
4100
+ assertThat (entityOut .value [0 ] instanceof TestEntityTypeInfo , is (true ));
4101
+ }
4102
+
4103
+ static class TestEntityTypeInfoArray {
4104
+ TestEntityTypeInfo [] value ;
4105
+ }
4106
+
4107
+ @ Test
4108
+ public void homogeneousArray () {
4109
+ final TestEntityTypeInfoArray entity = new TestEntityTypeInfoArray ();
4110
+ entity .value = new TestEntityTypeInfo []{new TestEntityTypeInfo ()};
4111
+
4112
+ final VPack vpack = new VPack .Builder ().build ();
4113
+ final VPackSlice slice = vpack .serialize (entity );
4114
+
4115
+ assertThat (slice .isObject (), is (true ));
4116
+ assertThat (slice .get ("value" ).isArray (), is (true ));
4117
+ assertThat (slice .get ("value" ).get (0 ).isObject (), is (true ));
4118
+ assertThat (slice .get ("value" ).get (0 ).get ("_class" ).isNone (), is (true ));
4119
+
4120
+ final TestEntityTypeInfoArray entityOut = vpack .deserialize (slice , TestEntityTypeInfoArray .class );
4121
+ assertThat (entityOut , is (notNullValue ()));
4122
+ assertThat (entityOut .value , is (notNullValue ()));
4123
+ assertThat (entityOut .value .length , is (1 ));
4124
+ assertThat (entityOut .value [0 ], notNullValue ());
4125
+ }
4126
+
4077
4127
public static class Limb {
4078
4128
}
4079
4129
0 commit comments