in src/proxy/src/rpc.rs [171:205]
fn test_parse_batch_multiple_message() {
// Create an input buffer with multiple RPC messages
let num_fragments_1 = 3;
let message_size_1 = 12;
let (mut input_buffer, _) = generate_rpc_msg_fragments(message_size_1, num_fragments_1);
let num_fragments_2 = 6;
let message_size_2 = 24;
let (input_buffer_2, _) = generate_rpc_msg_fragments(message_size_2, num_fragments_2);
let num_fragments_3 = 1;
let message_size_3 = 50;
let (input_buffer_3, _) = generate_rpc_msg_fragments(message_size_3, num_fragments_3);
input_buffer.extend_from_slice(&input_buffer_2);
input_buffer.extend_from_slice(&input_buffer_3);
let mut rpc_batch = RpcBatch::parse_batch(&mut input_buffer)
.expect("parse batch failed")
.expect("no rpc messages found");
assert_eq!(3, rpc_batch.rpcs.len());
let rpc_message_3 = rpc_batch.rpcs.pop().expect("No RPC messages");
let expected_message_size_3 = num_fragments_3 * RPC_HEADER_SIZE + message_size_3;
assert_eq!(expected_message_size_3, rpc_message_3.len());
let rpc_message_2 = rpc_batch.rpcs.pop().expect("No RPC messages");
let expected_message_size_2 = num_fragments_2 * RPC_HEADER_SIZE + message_size_2;
assert_eq!(expected_message_size_2, rpc_message_2.len());
let rpc_message_1 = rpc_batch.rpcs.pop().expect("No RPC messages");
let expected_message_size_1 = num_fragments_1 * RPC_HEADER_SIZE + message_size_1;
assert_eq!(expected_message_size_1, rpc_message_1.len());
}