diff options
Diffstat (limited to '')
-rw-r--r-- | src/go/collectors/go.d.plugin/modules/zookeeper/fetcher_test.go | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/go/collectors/go.d.plugin/modules/zookeeper/fetcher_test.go b/src/go/collectors/go.d.plugin/modules/zookeeper/fetcher_test.go new file mode 100644 index 000000000..dbc5174b9 --- /dev/null +++ b/src/go/collectors/go.d.plugin/modules/zookeeper/fetcher_test.go @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +package zookeeper + +import ( + "testing" + + "github.com/netdata/netdata/go/go.d.plugin/pkg/socket" + "github.com/stretchr/testify/assert" +) + +func Test_clientFetch(t *testing.T) { + c := &zookeeperFetcher{Client: &mockSocket{rowsNumResp: 10}} + + rows, err := c.fetch("whatever\n") + assert.NoError(t, err) + assert.Len(t, rows, 10) + + rows, err = c.fetch("whatever\n") + assert.NoError(t, err) + assert.Len(t, rows, 10) +} + +func Test_clientFetchReadLineLimitExceeded(t *testing.T) { + c := &zookeeperFetcher{Client: &mockSocket{rowsNumResp: limitReadLines + 1}} + + rows, err := c.fetch("whatever\n") + assert.Error(t, err) + assert.Len(t, rows, 0) +} + +type mockSocket struct { + rowsNumResp int +} + +func (m *mockSocket) Connect() error { + return nil +} + +func (m *mockSocket) Disconnect() error { + return nil +} + +func (m *mockSocket) Command(command string, process socket.Processor) error { + for i := 0; i < m.rowsNumResp; i++ { + process([]byte(command)) + } + return nil +} |