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

Function TestProxy_UseKeyspace_Error

proxy/proxy_test.go:234–263  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

232}
233
234func TestProxy_UseKeyspace_Error(t *testing.T) {
235 ctx, cancel := context.WithCancel(context.Background())
236 tester, proxyContactPoint, err := setupProxyTest(ctx, 1, proxycore.MockRequestHandlers{
237 primitive.OpCodeQuery: func(cl *proxycore.MockClient, frm *frame.Frame) message.Message {
238 qry := frm.Body.Message.(*message.Query)
239 if qry.Query == "USE non_existing" {
240 return &message.ServerError{
241 ErrorMessage: "Keyspace 'non_existing' does not exist",
242 }
243 }
244 return cl.InterceptQuery(frm.Header, frm.Body.Message.(*message.Query))
245 }})
246 defer func() {
247 cancel()
248 tester.shutdown()
249 }()
250 require.NoError(t, err)
251
252 cl := connectTestClient(t, ctx, proxyContactPoint)
253
254 resp, err := cl.SendAndReceive(ctx, frame.NewFrame(primitive.ProtocolVersion4, 0, &message.Query{Query: "USE non_existing"}))
255 require.NoError(t, err)
256
257 assert.Equal(t, primitive.OpCodeError, resp.Header.OpCode)
258 res, ok := resp.Body.Message.(*message.ServerError)
259 require.True(t, ok)
260 // make sure that CQL Proxy returns the same error of 'USE keyspace' command
261 // as backend C* cluster has and does not wrap it inside a custom one
262 assert.Equal(t, "Keyspace 'non_existing' does not exist", res.ErrorMessage)
263}
264
265func TestProxy_NegotiateProtocolV5(t *testing.T) {
266 ctx, cancel := context.WithCancel(context.Background())

Callers

nothing calls this directly

Calls 5

setupProxyTestFunction · 0.85
connectTestClientFunction · 0.85
InterceptQueryMethod · 0.80
shutdownMethod · 0.80
SendAndReceiveMethod · 0.80

Tested by

no test coverage detected