MCPcopy
hub / github.com/IBM/sarama / TestSyncProducerRecoveryWithRetriesDisabled

Function TestSyncProducerRecoveryWithRetriesDisabled

sync_producer_test.go:287–330  ·  sync_producer_test.go::TestSyncProducerRecoveryWithRetriesDisabled
(t *testing.T)

Source from the content-addressed store, hash-verified

285}
286
287func TestSyncProducerRecoveryWithRetriesDisabled(t *testing.T) {
288 seedBroker := NewMockBroker(t, 1)
289 leader1 := NewMockBroker(t, 2)
290 leader2 := NewMockBroker(t, 3)
291
292 metadataLeader1 := new(MetadataResponse)
293 metadataLeader1.AddBroker(leader1.Addr(), leader1.BrokerID())
294 metadataLeader1.AddTopicPartition("my_topic", 0, leader1.BrokerID(), nil, nil, nil, ErrNoError)
295 seedBroker.Returns(metadataLeader1)
296
297 config := NewTestConfig()
298 config.Producer.Retry.Max = 0 // disable!
299 config.Producer.Retry.Backoff = 0
300 config.Producer.Return.Successes = true
301 producer, err := NewSyncProducer([]string{seedBroker.Addr()}, config)
302 if err != nil {
303 t.Fatal(err)
304 }
305 seedBroker.Close()
306
307 prodNotLeader := new(ProduceResponse)
308 prodNotLeader.AddTopicPartition("my_topic", 0, ErrNotLeaderForPartition)
309 leader1.Returns(prodNotLeader)
310 _, _, err = producer.SendMessage(&ProducerMessage{Topic: "my_topic", Value: StringEncoder(TestMessage)})
311 if !errors.Is(err, ErrNotLeaderForPartition) {
312 t.Fatal(err)
313 }
314
315 metadataLeader2 := new(MetadataResponse)
316 metadataLeader2.AddBroker(leader2.Addr(), leader2.BrokerID())
317 metadataLeader2.AddTopicPartition("my_topic", 0, leader2.BrokerID(), nil, nil, nil, ErrNoError)
318 leader1.Returns(metadataLeader2)
319 prodSuccess := new(ProduceResponse)
320 prodSuccess.AddTopicPartition("my_topic", 0, ErrNoError)
321 leader2.Returns(prodSuccess)
322 _, _, err = producer.SendMessage(&ProducerMessage{Topic: "my_topic", Value: StringEncoder(TestMessage)})
323 if err != nil {
324 t.Fatal(err)
325 }
326
327 leader1.Close()
328 leader2.Close()
329 safeClose(t, producer)
330}
331
332// This example shows the basic usage pattern of the SyncProducer.
333func ExampleSyncProducer() {

Callers

nothing calls this directly

Calls 14

AddrMethod · 0.95
BrokerIDMethod · 0.95
ReturnsMethod · 0.95
CloseMethod · 0.95
SendMessageMethod · 0.95
NewMockBrokerFunction · 0.85
StringEncoderTypeAlias · 0.85
AddBrokerMethod · 0.80
FatalMethod · 0.80
IsMethod · 0.80
NewTestConfigFunction · 0.70
NewSyncProducerFunction · 0.70

Tested by

no test coverage detected