fn test_parse_batch_multiple_message()

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