MCPcopy Create free account
hub / github.com/datastax/cql-proxy / TestConnectClientWithEvents

Function TestConnectClientWithEvents

proxycore/clientconn_test.go:102–148  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

100}
101
102func TestConnectClientWithEvents(t *testing.T) {
103 var server MockServer
104
105 ctx, cancel := context.WithCancel(context.Background())
106 defer cancel()
107
108 const supported = primitive.ProtocolVersion2
109 const starting = primitive.ProtocolVersion4
110
111 err := server.Serve(ctx, supported, MockHost{
112 IP: "127.0.0.1",
113 Port: 9042,
114 }, nil)
115 require.NoError(t, err)
116
117 events := make(chan *frame.Frame)
118 cl, err := ConnectClient(ctx, NewEndpoint("127.0.0.1:9042"), ClientConnConfig{
119 Handler: EventHandlerFunc(func(frm *frame.Frame) {
120 events <- frm
121 }),
122 })
123 require.NoError(t, err)
124
125 wait := func() *frame.Frame {
126 timer := time.NewTimer(2 * time.Second)
127 select {
128 case <-timer.C:
129 require.Fail(t, "timed out waiting for event")
130 case event := <-events:
131 return event
132 }
133 require.Fail(t, "event expected")
134 return nil
135 }
136
137 version, err := cl.Handshake(ctx, starting, nil)
138 require.NoError(t, err)
139 assert.Equal(t, supported, version)
140
141 status := &message.StatusChangeEvent{ChangeType: primitive.StatusChangeTypeUp, Address: &primitive.Inet{
142 Addr: net.ParseIP("192.168.1.42"),
143 Port: 9042,
144 }}
145 server.Event(status)
146 received := wait()
147 assert.Equal(t, status, received.Body.Message)
148}
149
150func TestClientConn_HandshakePasswordInvalidAuth(t *testing.T) {
151 ctx, cancel := context.WithCancel(context.Background())

Callers

nothing calls this directly

Calls 6

ServeMethod · 0.95
EventMethod · 0.95
ConnectClientFunction · 0.85
NewEndpointFunction · 0.85
EventHandlerFuncFuncType · 0.85
HandshakeMethod · 0.80

Tested by

no test coverage detected