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);
}
Aggregations