(t *testing.T)
| 232 | } |
| 233 | |
| 234 | func 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 | |
| 265 | func TestProxy_NegotiateProtocolV5(t *testing.T) { |
| 266 | ctx, cancel := context.WithCancel(context.Background()) |
nothing calls this directly
no test coverage detected