Search in sources :

Example 6 with RootSerializer

use of org.apache.servicecomb.foundation.protobuf.RootSerializer in project incubator-servicecomb-java-chassis by apache.

the class TestModelWrap method pojoModel.

@SuppressWarnings("unchecked")
@Test
public void pojoModel() throws IOException {
    RootSerializer pojoSerializer = modelProtoMapper.createRootSerializer("PojoModel", PojoModel.class);
    RootDeserializer<Map<String, Object>> pojoMapDeserializer = modelProtoMapper.createRootDeserializer("PojoModel", Map.class);
    RootDeserializer<PojoModel> pojoModelDeserializer = modelProtoMapper.createRootDeserializer("PojoModel", PojoModel.class);
    RootSerializer protoSerializer = modelProtoMapper.createRootSerializer("ProtoModel", ProtoModel.class);
    RootDeserializer<Map<String, Object>> protoMapDeserializer = modelProtoMapper.createRootDeserializer("ProtoModel", Map.class);
    RootDeserializer<ProtoModel> protoModelDeserializer = modelProtoMapper.createRootDeserializer("ProtoModel", ProtoModel.class);
    PojoModel pojoModel = new PojoModel();
    pojoModel.init();
    String jsonPojoModel = Json.encode(pojoModel);
    Map<String, Object> mapFromPojoModel = (Map<String, Object>) Json.decodeValue(jsonPojoModel, Map.class);
    ProtoModel protoModel = new ProtoModel();
    protoModel.init();
    String jsonProtoModel = Json.encode(protoModel);
    Map<String, Object> mapFromProtoModel = (Map<String, Object>) Json.decodeValue(jsonProtoModel, Map.class);
    // serialize
    byte[] bytes = protoSerializer.serialize(protoModel);
    Assert.assertArrayEquals(bytes, protoSerializer.serialize(mapFromProtoModel));
    Assert.assertArrayEquals(bytes, pojoSerializer.serialize(pojoModel));
    Assert.assertArrayEquals(bytes, pojoSerializer.serialize(mapFromPojoModel));
    // deserialize pojoModel
    PojoModel newPojoModel = pojoModelDeserializer.deserialize(bytes);
    Assert.assertEquals(jsonPojoModel, Json.encode(newPojoModel));
    Map<String, Object> mapFromNewPojoModel = pojoMapDeserializer.deserialize(bytes);
    Assert.assertEquals(jsonPojoModel, Json.encode(mapFromNewPojoModel));
    // deserialize protoModel
    ProtoModel newProtoModel = protoModelDeserializer.deserialize(bytes);
    Assert.assertEquals(jsonProtoModel, Json.encode(newProtoModel));
    Map<String, Object> mapFromNewProtoModel = protoMapDeserializer.deserialize(bytes);
    Assert.assertEquals(jsonProtoModel, Json.encode(mapFromNewProtoModel));
}
Also used : RootSerializer(org.apache.servicecomb.foundation.protobuf.RootSerializer) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map) Test(org.junit.Test)

Aggregations

RootSerializer (org.apache.servicecomb.foundation.protobuf.RootSerializer)6 JavaType (com.fasterxml.jackson.databind.JavaType)4 Map (java.util.Map)4 TypeFactory (com.fasterxml.jackson.databind.type.TypeFactory)2 InputEx (io.protostuff.InputEx)2 OutputEx (io.protostuff.OutputEx)2 SchemaEx (io.protostuff.SchemaEx)2 SchemaWriter (io.protostuff.SchemaWriter)2 WireFormat (io.protostuff.WireFormat)2 Message (io.protostuff.compiler.model.Message)2 IOException (java.io.IOException)2 Type (java.lang.reflect.Type)2 LinkedHashMap (java.util.LinkedHashMap)2 ConcurrentHashMapEx (org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx)2 ProtoMapper (org.apache.servicecomb.foundation.protobuf.ProtoMapper)2 RootDeserializer (org.apache.servicecomb.foundation.protobuf.RootDeserializer)2 ProtoConst (org.apache.servicecomb.foundation.protobuf.internal.ProtoConst)2 PropertyWrapper (org.apache.servicecomb.foundation.protobuf.internal.bean.PropertyWrapper)2 AnyEntrySchema (org.apache.servicecomb.foundation.protobuf.internal.schema.any.AnyEntrySchema)2 Test (org.junit.Test)2