test: update Expr build test
This commit is contained in:
parent
7973af40d4
commit
42e44444cc
@ -156,6 +156,18 @@ func TestExpression(t *testing.T) {
|
||||
},
|
||||
ExpectedVars: []interface{}{"a", "b"},
|
||||
Result: "`column-name` NOT IN (?,?)",
|
||||
}, {
|
||||
Expressions: []clause.Expression{
|
||||
clause.Eq{Column: clause.Expr{SQL: "SUM(?)", Vars: []interface{}{clause.Column{Name: "id"}}}, Value: 100},
|
||||
},
|
||||
ExpectedVars: []interface{}{100},
|
||||
Result: "SUM(`id`) = ?",
|
||||
}, {
|
||||
Expressions: []clause.Expression{
|
||||
clause.Gte{Column: clause.Expr{SQL: "SUM(?)", Vars: []interface{}{clause.Column{Table: "users", Name: "id"}}}, Value: 100},
|
||||
},
|
||||
ExpectedVars: []interface{}{100},
|
||||
Result: "SUM(`users`.`id`) >= ?",
|
||||
}}
|
||||
|
||||
for idx, result := range results {
|
||||
|
@ -3,12 +3,9 @@ package gorm
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"gorm.io/gorm/clause"
|
||||
"gorm.io/gorm/logger"
|
||||
"gorm.io/gorm/schema"
|
||||
)
|
||||
|
||||
func TestWhereCloneCorruption(t *testing.T) {
|
||||
@ -37,42 +34,3 @@ func TestWhereCloneCorruption(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
var _ Dialector = new(dummyDialector)
|
||||
|
||||
type dummyDialector struct{}
|
||||
|
||||
func (dummyDialector) Name() string { return "dummy" }
|
||||
func (dummyDialector) Initialize(*DB) error { return nil }
|
||||
func (dummyDialector) DefaultValueOf(field *schema.Field) clause.Expression {
|
||||
return clause.Expr{SQL: "DEFAULT"}
|
||||
}
|
||||
func (dummyDialector) Migrator(*DB) Migrator { return nil }
|
||||
func (dummyDialector) BindVarTo(writer clause.Writer, stmt *Statement, v interface{}) {
|
||||
writer.WriteByte('?')
|
||||
}
|
||||
func (dummyDialector) QuoteTo(writer clause.Writer, str string) { writer.WriteString("`" + str + "`") }
|
||||
func (dummyDialector) Explain(sql string, vars ...interface{}) string {
|
||||
return logger.ExplainSQL(sql, nil, `"`, vars...)
|
||||
}
|
||||
func (dummyDialector) DataTypeOf(*schema.Field) string { return "" }
|
||||
|
||||
var db, _ = Open(dummyDialector{})
|
||||
|
||||
func TestStatement_WriteQuoted(t *testing.T) {
|
||||
s := Statement{DB: db}
|
||||
|
||||
testdata := map[string]clause.Expression{
|
||||
"SUM(`users`.`id`)": clause.Expr{SQL: "SUM(?)", Vars: []interface{}{clause.Column{Table: "users", Name: "id"}}},
|
||||
}
|
||||
|
||||
for result, expr := range testdata {
|
||||
s.WriteQuoted(expr)
|
||||
if s.SQL.String() != result {
|
||||
t.Errorf("WriteQuoted test fail, expected: %s, got %s", result, s.SQL.String())
|
||||
}
|
||||
|
||||
s.SQL = strings.Builder{}
|
||||
s.Vars = []interface{}{}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user