(t *testing.T)
| 288 | } |
| 289 | |
| 290 | func Test_SingleNodeRequest(t *testing.T) { |
| 291 | node := mustNewLeaderNode("leader1") |
| 292 | defer node.Deprovision() |
| 293 | |
| 294 | tests := []struct { |
| 295 | stmt string |
| 296 | expected string |
| 297 | }{ |
| 298 | { |
| 299 | stmt: `CREATE TABLE foo (id integer not null primary key, name text)`, |
| 300 | expected: `{"results":[{}]}`, |
| 301 | }, |
| 302 | { |
| 303 | stmt: `INSERT INTO foo(name) VALUES("fiona")`, |
| 304 | expected: `{"results":[{"last_insert_id":1,"rows_affected":1}]}`, |
| 305 | }, |
| 306 | { |
| 307 | stmt: `INSERT INTO bar(name) VALUES("fiona")`, |
| 308 | expected: `{"results":[{"error":"no such table: bar"}]}`, |
| 309 | }, |
| 310 | { |
| 311 | stmt: `INSERT blah blah`, |
| 312 | expected: `{"results":[{"error":"near \"blah\": syntax error"}]}`, |
| 313 | }, |
| 314 | { |
| 315 | stmt: `SELECT * FROM foo`, |
| 316 | expected: `{"results":[{"columns":["id","name"],"types":["integer","text"],"values":[[1,"fiona"]]}]}`, |
| 317 | }, |
| 318 | { |
| 319 | stmt: `DROP TABLE bar`, |
| 320 | expected: `{"results":[{"error":"no such table: bar"}]}`, |
| 321 | }, |
| 322 | { |
| 323 | stmt: `DROP TABLE foo`, |
| 324 | expected: `{"results":[{"last_insert_id":1,"rows_affected":1}]}`, |
| 325 | }, |
| 326 | } |
| 327 | |
| 328 | for i, tt := range tests { |
| 329 | r, err := node.Request(tt.stmt) |
| 330 | if err != nil { |
| 331 | t.Fatalf(`test %d failed "%s": %s`, i, tt.stmt, err.Error()) |
| 332 | } |
| 333 | if r != tt.expected { |
| 334 | t.Fatalf(`test %d received wrong result "%s" got: %s exp: %s`, i, tt.stmt, r, tt.expected) |
| 335 | } |
| 336 | } |
| 337 | } |
| 338 | |
| 339 | func Test_SingleNodeMulti(t *testing.T) { |
| 340 | node := mustNewLeaderNode("leader1") |
nothing calls this directly
no test coverage detected