|
| 1 | +*** Settings *** |
| 2 | +Library ConfluentKafkaLibrary |
| 3 | +Library schema/protobuf/user_helper.py |
| 4 | + |
| 5 | +*** Test Cases *** |
| 6 | +Protobuf Producer With Serializer |
| 7 | + ${schema_registry_conf}= Create Dictionary url=http://127.0.0.1:8081 |
| 8 | + ${schema_registry_client}= Get Schema Registry Client ${schema_registry_conf} |
| 9 | + ${msg_type}= Get Type |
| 10 | + ${protobuf_serializer}= Get Protobuf Serializer ${msg_type} ${schema_registry_client} |
| 11 | + ${protobuf_deserializer}= Get Protobuf Deserializer ${msg_type} |
| 12 | + ${string_serializer}= Get String Serializer |
| 13 | + ${string_deserializer}= Get String Deserializer |
| 14 | + |
| 15 | + # On the Producer when legacy is set to True the value must be converted into a binary string |
| 16 | + ${producer_id}= Create Producer key_serializer=${string_serializer} value_serializer=${protobuf_serializer} legacy=${True} |
| 17 | + ${value}= Create User Robot 10 ${True} |
| 18 | + Produce group_id=${producer_id} topic=protobuf_testing1 key=bd232464-e3d3-425d-93b7-5789dc7273c1 value=${value} |
| 19 | + Wait Until Keyword Succeeds 10x 0.5s All Messages Are Delivered ${producer_id} |
| 20 | + |
| 21 | +Protobuf Producer Consumer With Serializer |
| 22 | + ${schema_registry_conf}= Create Dictionary url=http://127.0.0.1:8081 |
| 23 | + ${schema_registry_client}= Get Schema Registry Client ${schema_registry_conf} |
| 24 | + ${msg_type}= Get Type |
| 25 | + ${protobuf_serializer}= Get Protobuf Serializer ${msg_type} ${schema_registry_client} |
| 26 | + ${protobuf_deserializer}= Get Protobuf Deserializer ${msg_type} |
| 27 | + ${string_serializer}= Get String Serializer |
| 28 | + ${string_deserializer}= Get String Deserializer |
| 29 | + |
| 30 | + ${producer_id}= Create Producer key_serializer=${string_serializer} value_serializer=${protobuf_serializer} legacy=${False} |
| 31 | + ${value}= Create User Robot 10 |
| 32 | + Produce group_id=${producer_id} topic=protobuf_testing2 key=f01df0c6-ec0b-49e9-835f-d766a9e8036f value=${value} |
| 33 | + Wait Until Keyword Succeeds 10x 0.5s All Messages Are Delivered ${producer_id} |
| 34 | + |
| 35 | + ${consumer_group_id}= Create Consumer auto_offset_reset=earliest key_deserializer=${string_deserializer} value_deserializer=${protobuf_deserializer} legacy=${False} |
| 36 | + Subscribe Topic group_id=${consumer_group_id} topics=protobuf_testing2 |
| 37 | + ${messages}= Poll group_id=${consumer_group_id} |
| 38 | + Length Should Be ${messages} 1 |
| 39 | + Should Be Equal ${messages[0]} ${value} |
| 40 | + [Teardown] Basic Teardown ${consumer_group_id} |
| 41 | + |
| 42 | +*** Keywords *** |
| 43 | +All Messages Are Delivered |
| 44 | + [Arguments] ${producer_id} |
| 45 | + ${count}= Flush ${producer_id} |
| 46 | + Log Reaming messages to be delivered: ${count} |
| 47 | + Should Be Equal As Integers ${count} 0 |
| 48 | + |
| 49 | +Basic Teardown |
| 50 | + [Arguments] ${group_id} |
| 51 | + Unsubscribe ${group_id} |
| 52 | + Close Consumer ${group_id} |
| 53 | + ${groups}= Create List ${group_id} |
| 54 | + ${admin_client_id}= Create Admin Client |
| 55 | + ${resp}= Delete Groups ${admin_client_id} group_ids=${groups} |
| 56 | + Log ${resp} |
0 commit comments