MCPcopy
hub / github.com/go-gorm/gorm / TestExpression

Function TestExpression

clause/expression_test.go:163–247  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

161}
162
163func TestExpression(t *testing.T) {
164 column := "column-name"
165 results := []struct {
166 Expressions []clause.Expression
167 ExpectedVars []interface{}
168 Result string
169 }{{
170 Expressions: []clause.Expression{
171 clause.Eq{Column: column, Value: "column-value"},
172 },
173 ExpectedVars: []interface{}{"column-value"},
174 Result: "`column-name` = ?",
175 }, {
176 Expressions: []clause.Expression{
177 clause.Eq{Column: column, Value: nil},
178 clause.Eq{Column: column, Value: (*string)(nil)},
179 clause.Eq{Column: column, Value: (*int)(nil)},
180 clause.Eq{Column: column, Value: (*bool)(nil)},
181 clause.Eq{Column: column, Value: (interface{})(nil)},
182 clause.Eq{Column: column, Value: sql.NullString{String: "", Valid: false}},
183 },
184 Result: "`column-name` IS NULL",
185 }, {
186 Expressions: []clause.Expression{
187 clause.Neq{Column: column, Value: "column-value"},
188 },
189 ExpectedVars: []interface{}{"column-value"},
190 Result: "`column-name` <> ?",
191 }, {
192 Expressions: []clause.Expression{
193 clause.Neq{Column: column, Value: nil},
194 clause.Neq{Column: column, Value: (*string)(nil)},
195 clause.Neq{Column: column, Value: (*int)(nil)},
196 clause.Neq{Column: column, Value: (*bool)(nil)},
197 clause.Neq{Column: column, Value: (interface{})(nil)},
198 },
199 Result: "`column-name` IS NOT NULL",
200 }, {
201 Expressions: []clause.Expression{
202 clause.Eq{Column: column, Value: []string{"a", "b"}},
203 },
204 ExpectedVars: []interface{}{"a", "b"},
205 Result: "`column-name` IN (?,?)",
206 }, {
207 Expressions: []clause.Expression{
208 clause.Neq{Column: column, Value: []string{"a", "b"}},
209 },
210 ExpectedVars: []interface{}{"a", "b"},
211 Result: "`column-name` NOT IN (?,?)",
212 }, {
213 Expressions: []clause.Expression{
214 clause.Eq{Column: column, Value: []string{}},
215 },
216 Result: "`column-name` IN (NULL)",
217 }, {
218 Expressions: []clause.Expression{
219 clause.Eq{Column: clause.Expr{SQL: "SUM(?)", Vars: []interface{}{clause.Column{Name: "id"}}}, Value: 100},
220 },

Callers

nothing calls this directly

Calls 3

ParseFunction · 0.92
BuildMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected