Skip to content

Commit

Permalink
feat: add new error for MockDeleteTopicsResponse (#2475)
Browse files Browse the repository at this point in the history
Signed-off-by: jcriadomarco <jcriadomarco@vmware.com>
  • Loading branch information
javiercri committed Aug 8, 2023
1 parent 4cde6b3 commit 43eae9b
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 2 deletions.
29 changes: 29 additions & 0 deletions admin_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
10 changes: 8 additions & 2 deletions mockresponses.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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
}
Expand Down

0 comments on commit 43eae9b

Please sign in to comment.