From 43eae9bc1f5eee3ff4b6220055ff9fe2558aab27 Mon Sep 17 00:00:00 2001 From: Javier Criado Marcos Date: Tue, 8 Aug 2023 08:28:44 +0100 Subject: [PATCH] feat: add new error for MockDeleteTopicsResponse (#2475) Signed-off-by: jcriadomarco --- admin_test.go | 29 +++++++++++++++++++++++++++++ mockresponses.go | 10 ++++++++-- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/admin_test.go b/admin_test.go index 0728091bd..370ee329c 100644 --- a/admin_test.go +++ b/admin_test.go @@ -246,6 +246,35 @@ func TestClusterAdminDeleteEmptyTopic(t *testing.T) { } } +func TestClusterAdminDeleteTopicError(t *testing.T) { + seedBroker := NewMockBroker(t, 1) + defer seedBroker.Close() + + seedBroker.SetHandlerByMap(map[string]MockResponse{ + "MetadataRequest": NewMockMetadataResponse(t). + SetController(seedBroker.BrokerID()). + SetBroker(seedBroker.Addr(), seedBroker.BrokerID()), + "DeleteTopicsRequest": NewMockDeleteTopicsResponse(t).SetError(ErrTopicDeletionDisabled), + }) + + config := NewTestConfig() + config.Version = V0_10_2_0 + admin, err := NewClusterAdmin([]string{seedBroker.Addr()}, config) + if err != nil { + t.Fatal(err) + } + + err = admin.DeleteTopic("my_topic") + if !errors.Is(err, ErrTopicDeletionDisabled) { + t.Fatal(err) + } + + err = admin.Close() + if err != nil { + t.Fatal(err) + } +} + func TestClusterAdminCreatePartitions(t *testing.T) { seedBroker := NewMockBroker(t, 1) defer seedBroker.Close() diff --git a/mockresponses.go b/mockresponses.go index 99b0e73f8..9446ac8e5 100644 --- a/mockresponses.go +++ b/mockresponses.go @@ -668,7 +668,8 @@ func (mr *MockCreateTopicsResponse) For(reqBody versionedDecoder) encoderWithHea } type MockDeleteTopicsResponse struct { - t TestReporter + t TestReporter + error KError } func NewMockDeleteTopicsResponse(t TestReporter) *MockDeleteTopicsResponse { @@ -681,12 +682,17 @@ func (mr *MockDeleteTopicsResponse) For(reqBody versionedDecoder) encoderWithHea res.TopicErrorCodes = make(map[string]KError) for _, topic := range req.Topics { - res.TopicErrorCodes[topic] = ErrNoError + res.TopicErrorCodes[topic] = mr.error } res.Version = req.Version return res } +func (mr *MockDeleteTopicsResponse) SetError(kerror KError) *MockDeleteTopicsResponse { + mr.error = kerror + return mr +} + type MockCreatePartitionsResponse struct { t TestReporter }