Search in sources :

Example 1 with People

use of org.apache.servicecomb.foundation.test.scaffolding.model.People in project java-chassis by ServiceComb.

the class TestSchemaMetaCodec method testProtoSchemaOperationObjImpl.

private void testProtoSchemaOperationObjImpl(boolean isPojo) throws IOException {
    Invocation consumerInvocation = mockInvocation("obj", InvocationType.CONSUMER);
    Invocation providerInvocation = mockInvocation("obj", InvocationType.PRODUCER);
    OperationProtobuf providerOperationProtobuf = ProtobufManager.getOrCreateOperation(providerInvocation);
    OperationProtobuf consumerOperationProtobuf = ProtobufManager.getOrCreateOperation(consumerInvocation);
    byte[] values;
    // request message
    RequestRootSerializer requestSerializer = consumerOperationProtobuf.getRequestRootSerializer();
    Map<String, Object> args = new HashMap<>();
    args.put("value", 2);
    values = requestSerializer.serialize(args);
    RequestRootDeserializer<Object> requestDeserializer = providerOperationProtobuf.getRequestRootDeserializer();
    Map<String, Object> decodedArgs = requestDeserializer.deserialize(values);
    int result = (int) decodedArgs.get("value");
    Assert.assertEquals(2, result);
    User user = new User();
    user.name = "user";
    User friend = new User();
    friend.name = "friend";
    List<User> friends = new ArrayList<>();
    friends.add(friend);
    user.friends = friends;
    args.put("value", user);
    values = requestSerializer.serialize(args);
    decodedArgs = requestDeserializer.deserialize(values);
    Map<String, Object> userMap = (Map<String, Object>) decodedArgs.get("value");
    Assert.assertEquals("user", userMap.get("name"));
    // proto buffer encode and decode empty list to be null
    friends = (List<User>) userMap.get("friends");
    Map<String, Object> friendMap = (Map<String, Object>) friends.get(0);
    Assert.assertEquals("friend", friendMap.get("name"));
    args.clear();
    People people = new People();
    people.name = "user";
    People pFriend = new People();
    pFriend.name = "friend";
    List<People> pFriends = new ArrayList<>();
    pFriends.add(pFriend);
    people.friends = pFriends;
    args.put("value", people);
    values = requestSerializer.serialize(args);
    decodedArgs = requestDeserializer.deserialize(values);
    people = (People) decodedArgs.get("value");
    Assert.assertEquals("user", people.name);
    // proto buffer encode and decode empty list to be null
    Assert.assertEquals("friend", people.friends.get(0).name);
}
Also used : RequestRootSerializer(org.apache.servicecomb.codec.protobuf.definition.RequestRootSerializer) User(org.apache.servicecomb.foundation.test.scaffolding.model.User) Invocation(org.apache.servicecomb.core.Invocation) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) People(org.apache.servicecomb.foundation.test.scaffolding.model.People) OperationProtobuf(org.apache.servicecomb.codec.protobuf.definition.OperationProtobuf) HashMap(java.util.HashMap) Map(java.util.Map)

Aggregations

ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 OperationProtobuf (org.apache.servicecomb.codec.protobuf.definition.OperationProtobuf)1 RequestRootSerializer (org.apache.servicecomb.codec.protobuf.definition.RequestRootSerializer)1 Invocation (org.apache.servicecomb.core.Invocation)1 People (org.apache.servicecomb.foundation.test.scaffolding.model.People)1 User (org.apache.servicecomb.foundation.test.scaffolding.model.User)1