summaryrefslogtreecommitdiffstats
path: root/src/go/collectors/go.d.plugin/modules/zookeeper/fetcher_test.go
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/go/collectors/go.d.plugin/modules/zookeeper/fetcher_test.go49
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
+}