MCPcopy
hub / github.com/rqlite/rqlite / Test_SingleNodeMulti

Function Test_SingleNodeMulti

system_test/single_node_test.go:339–398  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

337}
338
339func Test_SingleNodeMulti(t *testing.T) {
340 node := mustNewLeaderNode("leader1")
341 defer node.Deprovision()
342
343 tests := []struct {
344 stmt string
345 expected string
346 execute bool
347 }{
348 {
349 stmt: `CREATE TABLE foo (id integer not null primary key, name text)`,
350 expected: `{"results":[{}]}`,
351 execute: true,
352 },
353 {
354 stmt: `CREATE TABLE bar (id integer not null primary key, sequence integer)`,
355 expected: `{"results":[{}]}`,
356 execute: true,
357 },
358 {
359 stmt: `INSERT INTO foo(name) VALUES("fiona")`,
360 expected: `{"results":[{"last_insert_id":1,"rows_affected":1}]}`,
361 execute: true,
362 },
363 {
364 stmt: `INSERT INTO foo(name) VALUES("declan")`,
365 expected: `{"results":[{"last_insert_id":2,"rows_affected":1}]}`,
366 execute: true,
367 },
368 {
369 stmt: `INSERT INTO bar(sequence) VALUES(5)`,
370 expected: `{"results":[{"last_insert_id":1,"rows_affected":1}]}`,
371 execute: true,
372 },
373 }
374
375 for i, tt := range tests {
376 var r string
377 var err error
378 if tt.execute {
379 r, err = node.Execute(tt.stmt)
380 } else {
381 r, err = node.Query(tt.stmt)
382 }
383 if err != nil {
384 t.Fatalf(`test %d failed "%s": %s`, i, tt.stmt, err.Error())
385 }
386 if r != tt.expected {
387 t.Fatalf(`test %d received wrong result "%s" got: %s exp: %s`, i, tt.stmt, r, tt.expected)
388 }
389 }
390
391 r, err := node.QueryMulti([]string{"SELECT * FROM foo", "SELECT * FROM bar"})
392 if err != nil {
393 t.Fatalf("failed to run multiple queries: %s", err.Error())
394 }
395 if r != `{"results":[{"columns":["id","name"],"types":["integer","text"],"values":[[1,"fiona"],[2,"declan"]]},{"columns":["id","sequence"],"types":["integer","integer"],"values":[[1,5]]}]}` {
396 t.Fatalf("test received wrong result got %s", r)

Callers

nothing calls this directly

Calls 6

mustNewLeaderNodeFunction · 0.85
QueryMultiMethod · 0.80
ExecuteMethod · 0.65
QueryMethod · 0.65
ErrorMethod · 0.65
DeprovisionMethod · 0.45

Tested by

no test coverage detected