master
go 44 lines 828 Bytes
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package zookeeper
4
5 import (
6 "testing"
7
8 "github.com/netdata/netdata/go/plugins/plugin/go.d/pkg/socket"
9
10 "github.com/stretchr/testify/assert"
11 )
12
13 func Test_clientFetch(t *testing.T) {
14 c := &zookeeperFetcher{Client: &mockSocket{rowsNumResp: 10}}
15
16 rows, err := c.fetch("whatever\n")
17 assert.NoError(t, err)
18 assert.Len(t, rows, 10)
19
20 rows, err = c.fetch("whatever\n")
21 assert.NoError(t, err)
22 assert.Len(t, rows, 10)
23 }
24
25 type mockSocket struct {
26 rowsNumResp int
27 }
28
29 func (m *mockSocket) Connect() error {
30 return nil
31 }
32
33 func (m *mockSocket) Disconnect() error {
34 return nil
35 }
36
37 func (m *mockSocket) Command(command string, process socket.Processor) error {
38 for i := 0; i < m.rowsNumResp; i++ {
39 if _, err := process([]byte(command)); err != nil {
40 return err
41 }
42 }
43 return nil
44 }