| 23 | ) |
| 24 | |
| 25 | func TestValidate(t *testing.T) { |
| 26 | tests := []struct { |
| 27 | name string |
| 28 | sql string |
| 29 | wantErr bool |
| 30 | }{ |
| 31 | {"simple select", "SELECT 1", false}, |
| 32 | {"select from", "SELECT * FROM users", false}, |
| 33 | {"insert", "INSERT INTO t(a) VALUES(1)", false}, |
| 34 | {"invalid", "SELECT FROM WHERE", true}, |
| 35 | {"empty", "", false}, |
| 36 | {"multiple statements", "SELECT 1; SELECT 2", false}, |
| 37 | } |
| 38 | for _, tt := range tests { |
| 39 | t.Run(tt.name, func(t *testing.T) { |
| 40 | err := parser.Validate(tt.sql) |
| 41 | if (err != nil) != tt.wantErr { |
| 42 | t.Errorf("Validate(%q) error = %v, wantErr %v", tt.sql, err, tt.wantErr) |
| 43 | } |
| 44 | }) |
| 45 | } |
| 46 | } |
| 47 | |
| 48 | func TestValidateBytes(t *testing.T) { |
| 49 | err := parser.ValidateBytes([]byte("SELECT * FROM users WHERE id = 1")) |