implement pool Send method.
This commit is contained in:
30
pool_test.go
30
pool_test.go
@@ -2,6 +2,7 @@ package honeybee
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/gorilla/websocket"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"net/http"
|
||||
"testing"
|
||||
@@ -169,6 +170,35 @@ func TestPoolRemove(t *testing.T) {
|
||||
|
||||
}
|
||||
|
||||
func TestPoolSend(t *testing.T) {
|
||||
mockSocket := NewMockSocket()
|
||||
outgoingData := make(chan mockOutgoingData, 10)
|
||||
mockSocket.WriteMessageFunc = func(msgType int, data []byte) error {
|
||||
outgoingData <- mockOutgoingData{msgType: msgType, data: data}
|
||||
return nil
|
||||
}
|
||||
mockDialer := &MockDialer{
|
||||
DialFunc: func(string, http.Header) (Socket, *http.Response, error) {
|
||||
return mockSocket, nil, nil
|
||||
},
|
||||
}
|
||||
|
||||
pool, err := NewOutboundPool(nil, nil)
|
||||
assert.NoError(t, err)
|
||||
pool.dialer = mockDialer
|
||||
|
||||
err = pool.Connect("wss://test")
|
||||
assert.NoError(t, err)
|
||||
expectEvent(t, pool.events, "wss://test", EventConnected)
|
||||
|
||||
err = pool.Send("wss://test", []byte("hello"))
|
||||
assert.NoError(t, err)
|
||||
|
||||
expectWrite(t, outgoingData, websocket.TextMessage, []byte("hello"))
|
||||
|
||||
pool.Close()
|
||||
}
|
||||
|
||||
func expectEvent(
|
||||
t *testing.T,
|
||||
events chan PoolEvent,
|
||||
|
||||
Reference in New Issue
Block a user