From 95b78dda07176f927aaa5d7e5bfa455fff0af217 Mon Sep 17 00:00:00 2001 From: Sam Xie Date: Fri, 10 Jul 2020 16:27:35 +0800 Subject: [PATCH] fix: mock sync producer does not handle the offset while sending messages --- mocks/sync_producer.go | 2 ++ mocks/sync_producer_test.go | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/mocks/sync_producer.go b/mocks/sync_producer.go index 3f4986e2f..8a089e0dc 100644 --- a/mocks/sync_producer.go +++ b/mocks/sync_producer.go @@ -97,6 +97,8 @@ func (sp *SyncProducer) SendMessages(msgs []*sarama.ProducerMessage) error { if expectation.Result != errProduceSuccess { return expectation.Result } + sp.lastOffset++ + msgs[i].Offset = sp.lastOffset } return nil } diff --git a/mocks/sync_producer_test.go b/mocks/sync_producer_test.go index bf2c71a19..0e47ddd85 100644 --- a/mocks/sync_producer_test.go +++ b/mocks/sync_producer_test.go @@ -161,6 +161,13 @@ func TestSyncProducerWithCheckerFunctionForSendMessagesWithoutError(t *testing.T t.Error("No error expected on SendMessages call, found: ", err) } + for i, msg := range msgs { + offset := int64(i + 1) + if offset != msg.Offset { + t.Errorf("The message should have been assigned offset %d, but got %d", offset, msg.Offset) + } + } + if err := sp.Close(); err != nil { t.Error(err) }