From 42e44444cc991f8f9f3ee29a4a0b12e63eede670 Mon Sep 17 00:00:00 2001 From: riverchu Date: Thu, 19 Aug 2021 14:19:50 +0800 Subject: [PATCH] test: update Expr build test --- clause/expression_test.go | 12 +++++++++++ statement_test.go | 42 --------------------------------------- 2 files changed, 12 insertions(+), 42 deletions(-) diff --git a/clause/expression_test.go b/clause/expression_test.go index 0ccd0771..05074865 100644 --- a/clause/expression_test.go +++ b/clause/expression_test.go @@ -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 { diff --git a/statement_test.go b/statement_test.go index 0ee57a3f..03ad81dc 100644 --- a/statement_test.go +++ b/statement_test.go @@ -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{}{} - } -}