MCPcopy Create free account
hub / github.com/apache/pulsar-client-go / TestNormalZeroQueueConsumer

Function TestNormalZeroQueueConsumer

pulsar/consumer_zero_queue_test.go:63–127  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

61}
62
63func TestNormalZeroQueueConsumer(t *testing.T) {
64 client, err := NewClient(ClientOptions{
65 URL: lookupURL,
66 })
67
68 assert.Nil(t, err)
69 defer client.Close()
70
71 topic := newTopicName()
72 ctx := context.Background()
73
74 // create consumer
75 consumer, err := client.Subscribe(ConsumerOptions{
76 Topic: topic,
77 SubscriptionName: "my-sub",
78 EnableZeroQueueConsumer: true,
79 })
80 assert.Nil(t, err)
81 _, ok := consumer.(*zeroQueueConsumer)
82 assert.True(t, ok)
83 defer consumer.Close()
84
85 // create producer
86 producer, err := client.CreateProducer(ProducerOptions{
87 Topic: topic,
88 DisableBatching: false,
89 })
90 assert.Nil(t, err)
91 defer producer.Close()
92
93 // send 10 messages
94 for i := 0; i < 10; i++ {
95 msg, err := producer.Send(ctx, &ProducerMessage{
96 Payload: []byte(fmt.Sprintf("hello-%d", i)),
97 Key: "pulsar",
98 Properties: map[string]string{
99 "key-1": "pulsar-1",
100 },
101 })
102 assert.Nil(t, err)
103 log.Printf("send message: %s", msg.String())
104 }
105
106 // receive 10 messages
107 for i := 0; i < 10; i++ {
108 msg, err := consumer.Receive(context.Background())
109 if err != nil {
110 log.Fatal(err)
111 }
112
113 expectMsg := fmt.Sprintf("hello-%d", i)
114 expectProperties := map[string]string{
115 "key-1": "pulsar-1",
116 }
117 assert.Equal(t, []byte(expectMsg), msg.Payload())
118 assert.Equal(t, "pulsar", msg.Key())
119 assert.Equal(t, expectProperties, msg.Properties())
120 // ack message

Callers

nothing calls this directly

Calls 15

CloseMethod · 0.95
SubscribeMethod · 0.95
CreateProducerMethod · 0.95
NewClientFunction · 0.70
newTopicNameFunction · 0.70
CloseMethod · 0.65
SendMethod · 0.65
StringMethod · 0.65
ReceiveMethod · 0.65
PayloadMethod · 0.65
KeyMethod · 0.65
PropertiesMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…