fn test_encode_kvp_item_value_length()

in src/kvp.rs [659:700]


    fn test_encode_kvp_item_value_length() {
        let key = "test_key";
        let value = "A".repeat(HV_KVP_AZURE_MAX_VALUE_SIZE * 2 + 50);

        let encoded_slices = encode_kvp_item(key, &value);

        assert!(
            !encoded_slices.is_empty(),
            "Encoded slices should not be empty"
        );

        for (i, slice) in encoded_slices.iter().enumerate() {
            assert_eq!(
                slice.len(),
                HV_KVP_EXCHANGE_MAX_KEY_SIZE + HV_KVP_EXCHANGE_MAX_VALUE_SIZE,
                "Slice {} length is incorrect",
                i
            );

            let (decoded_key, decoded_value) =
                decode_kvp_item(slice).expect("Failed to decode slice");

            println!("Slice {}: Key: {}", i, decoded_key);
            println!(
                "Slice {}: Value (length {}): {}",
                i,
                decoded_value.len(),
                decoded_value
            );

            assert_eq!(decoded_key, key, "Key mismatch in slice {}", i);
            assert!(
                decoded_value.len() <= HV_KVP_AZURE_MAX_VALUE_SIZE,
                "Value length exceeds limit in slice {}: {} > {}",
                i,
                decoded_value.len(),
                HV_KVP_AZURE_MAX_VALUE_SIZE
            );
        }

        println!("All slices adhere to Azure's max value size limit.");
    }