(t *testing.T)
| 529 | } |
| 530 | |
| 531 | func TestConvertQueryAndBuildArgs(t *testing.T) { |
| 532 | Convey("Test query rewrite and sanitizer", t, func() { |
| 533 | var ( |
| 534 | containsDDL bool |
| 535 | sanitizedQuery string |
| 536 | sanitizedArgs []interface{} |
| 537 | err error |
| 538 | ) |
| 539 | |
| 540 | // show tables query |
| 541 | containsDDL, sanitizedQuery, sanitizedArgs, err = convertQueryAndBuildArgs( |
| 542 | "SHOW TABLES", []types.NamedArg{}) |
| 543 | So(containsDDL, ShouldBeFalse) |
| 544 | So(sanitizedQuery, ShouldContainSubstring, "sqlite_master") |
| 545 | So(sanitizedArgs, ShouldHaveLength, 0) |
| 546 | So(err, ShouldBeNil) |
| 547 | |
| 548 | // show index query |
| 549 | containsDDL, sanitizedQuery, sanitizedArgs, err = convertQueryAndBuildArgs( |
| 550 | "SHOW INDEX FROM TABLE a", []types.NamedArg{}) |
| 551 | So(containsDDL, ShouldBeFalse) |
| 552 | So(sanitizedQuery, ShouldContainSubstring, "sqlite_master") |
| 553 | So(sanitizedArgs, ShouldHaveLength, 0) |
| 554 | So(err, ShouldBeNil) |
| 555 | |
| 556 | // show create table query |
| 557 | containsDDL, sanitizedQuery, sanitizedArgs, err = convertQueryAndBuildArgs( |
| 558 | "SHOW CREATE TABLE a", []types.NamedArg{}) |
| 559 | So(containsDDL, ShouldBeFalse) |
| 560 | So(sanitizedQuery, ShouldContainSubstring, "sqlite_master") |
| 561 | So(sanitizedArgs, ShouldHaveLength, 0) |
| 562 | So(err, ShouldBeNil) |
| 563 | |
| 564 | // desc table query |
| 565 | containsDDL, sanitizedQuery, sanitizedArgs, err = convertQueryAndBuildArgs( |
| 566 | "DESC a", []types.NamedArg{}) |
| 567 | So(containsDDL, ShouldBeFalse) |
| 568 | So(sanitizedQuery, ShouldContainSubstring, "table_info") |
| 569 | So(sanitizedArgs, ShouldHaveLength, 0) |
| 570 | So(err, ShouldBeNil) |
| 571 | |
| 572 | // contains ddl query |
| 573 | ddlQuery := "CREATE TABLE test (test int)" |
| 574 | containsDDL, sanitizedQuery, sanitizedArgs, err = convertQueryAndBuildArgs( |
| 575 | ddlQuery, []types.NamedArg{}) |
| 576 | So(containsDDL, ShouldBeTrue) |
| 577 | So(sanitizedQuery, ShouldEqual, ddlQuery) |
| 578 | So(sanitizedArgs, ShouldHaveLength, 0) |
| 579 | So(err, ShouldBeNil) |
| 580 | |
| 581 | // contains ddl query |
| 582 | ddlQuery = "CREATE VIRTUAL TABLE test USING xxfunc(foo bar)" |
| 583 | containsDDL, sanitizedQuery, sanitizedArgs, err = convertQueryAndBuildArgs( |
| 584 | ddlQuery, []types.NamedArg{}) |
| 585 | So(containsDDL, ShouldBeTrue) |
| 586 | So(sanitizedQuery, ShouldEqual, ddlQuery) |
| 587 | So(sanitizedArgs, ShouldHaveLength, 0) |
| 588 | So(err, ShouldBeNil) |
nothing calls this directly
no test coverage detected