stardb/sql_placeholder_test.go

35 lines
1.1 KiB
Go
Raw Normal View History

package stardb
import "testing"
func TestConvertQuestionToDollarPlaceholders(t *testing.T) {
query := "SELECT * FROM users WHERE id = ? AND name = ?"
got := ConvertQuestionToDollarPlaceholders(query)
want := "SELECT * FROM users WHERE id = $1 AND name = $2"
if got != want {
t.Fatalf("expected %q, got %q", want, got)
}
}
func TestConvertQuestionToDollarPlaceholders_SkipQuotedAndComments(t *testing.T) {
query := "SELECT '?', \"?\", `?`, col FROM t WHERE id = ? -- ?\nAND note = '??' /* ? */ AND x = ?"
got := ConvertQuestionToDollarPlaceholders(query)
want := "SELECT '?', \"?\", `?`, col FROM t WHERE id = $1 -- ?\nAND note = '??' /* ? */ AND x = $2"
if got != want {
t.Fatalf("expected %q, got %q", want, got)
}
}
func TestConvertPlaceholders(t *testing.T) {
query := "SELECT * FROM t WHERE a = ? AND b = ?"
if got := ConvertPlaceholders(query, PlaceholderQuestion); got != query {
t.Fatalf("question style should keep query unchanged, got %q", got)
}
got := ConvertPlaceholders(query, PlaceholderDollar)
want := "SELECT * FROM t WHERE a = $1 AND b = $2"
if got != want {
t.Fatalf("expected %q, got %q", want, got)
}
}