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

Function TestWhere

clause/where_test.go:10–139  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

8)
9
10func TestWhere(t *testing.T) {
11 results := []struct {
12 Clauses []clause.Interface
13 Result string
14 Vars []interface{}
15 }{
16 {
17 []clause.Interface{clause.Select{}, clause.From{}, clause.Where{
18 Exprs: []clause.Expression{clause.Eq{Column: clause.PrimaryColumn, Value: "1"}, clause.Gt{Column: "age", Value: 18}, clause.Or(clause.Neq{Column: "name", Value: "jinzhu"})},
19 }},
20 "SELECT * FROM `users` WHERE `users`.`id` = ? AND `age` > ? OR `name` <> ?",
21 []interface{}{"1", 18, "jinzhu"},
22 },
23 {
24 []clause.Interface{clause.Select{}, clause.From{}, clause.Where{
25 Exprs: []clause.Expression{clause.Or(clause.Neq{Column: "name", Value: "jinzhu"}), clause.Eq{Column: clause.PrimaryColumn, Value: "1"}, clause.Gt{Column: "age", Value: 18}},
26 }},
27 "SELECT * FROM `users` WHERE `users`.`id` = ? OR `name` <> ? AND `age` > ?",
28 []interface{}{"1", "jinzhu", 18},
29 },
30 {
31 []clause.Interface{clause.Select{}, clause.From{}, clause.Where{
32 Exprs: []clause.Expression{clause.Or(clause.Neq{Column: "name", Value: "jinzhu"}), clause.Eq{Column: clause.PrimaryColumn, Value: "1"}, clause.Gt{Column: "age", Value: 18}},
33 }},
34 "SELECT * FROM `users` WHERE `users`.`id` = ? OR `name` <> ? AND `age` > ?",
35 []interface{}{"1", "jinzhu", 18},
36 },
37 {
38 []clause.Interface{clause.Select{}, clause.From{}, clause.Where{
39 Exprs: []clause.Expression{clause.Or(clause.Eq{Column: clause.PrimaryColumn, Value: "1"}), clause.Or(clause.Neq{Column: "name", Value: "jinzhu"})},
40 }},
41 "SELECT * FROM `users` WHERE `users`.`id` = ? OR `name` <> ?",
42 []interface{}{"1", "jinzhu"},
43 },
44 {
45 []clause.Interface{clause.Select{}, clause.From{}, clause.Where{
46 Exprs: []clause.Expression{clause.Eq{Column: clause.PrimaryColumn, Value: "1"}, clause.Gt{Column: "age", Value: 18}, clause.Or(clause.Neq{Column: "name", Value: "jinzhu"})},
47 }, clause.Where{
48 Exprs: []clause.Expression{clause.Or(clause.Gt{Column: "score", Value: 100}, clause.Like{Column: "name", Value: "%linus%"})},
49 }},
50 "SELECT * FROM `users` WHERE `users`.`id` = ? AND `age` > ? OR `name` <> ? AND (`score` > ? OR `name` LIKE ?)",
51 []interface{}{"1", 18, "jinzhu", 100, "%linus%"},
52 },
53 {
54 []clause.Interface{clause.Select{}, clause.From{}, clause.Where{
55 Exprs: []clause.Expression{clause.Not(clause.Eq{Column: clause.PrimaryColumn, Value: "1"}, clause.Gt{Column: "age", Value: 18}), clause.Or(clause.Neq{Column: "name", Value: "jinzhu"})},
56 }, clause.Where{
57 Exprs: []clause.Expression{clause.Or(clause.Not(clause.Gt{Column: "score", Value: 100}), clause.Like{Column: "name", Value: "%linus%"})},
58 }},
59 "SELECT * FROM `users` WHERE (`users`.`id` <> ? AND `age` <= ?) OR `name` <> ? AND (`score` <= ? OR `name` LIKE ?)",
60 []interface{}{"1", 18, "jinzhu", 100, "%linus%"},
61 },
62 {
63 []clause.Interface{clause.Select{}, clause.From{}, clause.Where{
64 Exprs: []clause.Expression{clause.And(clause.Eq{Column: "age", Value: 18}, clause.Or(clause.Neq{Column: "name", Value: "jinzhu"}))},
65 }},
66 "SELECT * FROM `users` WHERE `age` = ? OR `name` <> ?",
67 []interface{}{18, "jinzhu"},

Callers

nothing calls this directly

Calls 4

OrFunction · 0.92
NotFunction · 0.92
AndFunction · 0.92
checkBuildClausesFunction · 0.85

Tested by

no test coverage detected