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