package sql import "testing" func TestTranslate(t *testing.T) { tests := []struct { testCase string flavor flavor query string exp string }{ { "sqlite3 query bind replacement", flavorSQLite3, `select foo from bar where foo.zam = $1;`, `select foo from bar where foo.zam = ?;`, }, { "sqlite3 query bind replacement at newline", flavorSQLite3, `select foo from bar where foo.zam = $1`, `select foo from bar where foo.zam = ?`, }, { "sqlite3 query true", flavorSQLite3, `select foo from bar where foo.zam = true`, `select foo from bar where foo.zam = 1`, }, { "sqlite3 query false", flavorSQLite3, `select foo from bar where foo.zam = false`, `select foo from bar where foo.zam = 0`, }, { "sqlite3 bytea", flavorSQLite3, `"connector_data" bytea not null,`, `"connector_data" blob not null,`, }, { "sqlite3 now", flavorSQLite3, `now(),`, `date('now'),`, }, } for _, tc := range tests { if got := tc.flavor.translate(tc.query); got != tc.exp { t.Errorf("%s: want=%q, got=%q", tc.testCase, tc.exp, got) } } }