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) } }