ResourceServer: Resource store sql backend (#90170)
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
package sqltemplate
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"reflect"
|
||||
"testing"
|
||||
"text/template"
|
||||
)
|
||||
|
||||
func TestSQLTemplate(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
field := reflect.ValueOf(new(struct {
|
||||
X int
|
||||
})).Elem().FieldByName("X")
|
||||
|
||||
tmpl := New(MySQL)
|
||||
tmpl.Arg(1)
|
||||
_, err := tmpl.Into(field, "colname")
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
tmpl.SetDialect(SQLite)
|
||||
a := tmpl.GetArgs()
|
||||
d := tmpl.GetScanDest()
|
||||
if len(a) != 0 || len(d) != 0 {
|
||||
t.Fatalf("unexpected values after SetDialect(). Args: %v, ScanDest: %v",
|
||||
a, d)
|
||||
}
|
||||
|
||||
b, err := json.Marshal(tmpl)
|
||||
if b != nil || !errors.Is(err, ErrSQLTemplateNoSerialize) {
|
||||
t.Fatalf("should fail serialization with ErrSQLTemplateNoSerialize")
|
||||
}
|
||||
|
||||
err = json.Unmarshal([]byte(`{}`), &tmpl)
|
||||
if !errors.Is(err, ErrSQLTemplateNoSerialize) {
|
||||
t.Fatalf("should fail deserialization with ErrSQLTemplateNoSerialize")
|
||||
}
|
||||
|
||||
err = tmpl.Validate()
|
||||
if !errors.Is(err, ErrValidationNotImplemented) {
|
||||
t.Fatalf("should fail with ErrValidationNotImplemented")
|
||||
}
|
||||
}
|
||||
|
||||
func TestExecute(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
tmpl := template.Must(template.New("test").Parse(`{{ .ID }}`))
|
||||
|
||||
data := struct {
|
||||
ID int
|
||||
}{
|
||||
ID: 1,
|
||||
}
|
||||
|
||||
txt, err := Execute(tmpl, data)
|
||||
if txt != "1" || err != nil {
|
||||
t.Fatalf("unexpected error, txt: %q, err: %v", txt, err)
|
||||
}
|
||||
|
||||
txt, err = Execute(tmpl, 1)
|
||||
if txt != "" || err == nil {
|
||||
t.Fatalf("unexpected result, txt: %q, err: %v", txt, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFormatSQL(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
// TODO: improve testing
|
||||
|
||||
const (
|
||||
input = `
|
||||
SELECT *
|
||||
FROM "mytab" AS t
|
||||
WHERE "id">= 3 AND "str" = ? ;
|
||||
`
|
||||
expected = `SELECT *
|
||||
FROM "mytab" AS t
|
||||
WHERE "id" >= 3 AND "str" = ?;`
|
||||
)
|
||||
|
||||
got := FormatSQL(input)
|
||||
if expected != got {
|
||||
t.Fatalf("Unexpected output.\n\tExpected: %s\n\tActual: %s", expected,
|
||||
got)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user