1
1
package queries_test
2
2
3
3
import (
4
- "context"
5
4
"testing"
6
5
7
6
"go-simpler.org/queries"
@@ -13,45 +12,40 @@ import (
13
12
14
13
func TestBuilder (t * testing.T ) {
15
14
var qb queries.Builder
16
- qb .Appendf ("select %s from tbl where 1=1" , "*" )
17
- qb .Appendf (" and foo = %$" , 1 )
18
- qb .Appendf (" and bar = %$" , 2 )
19
- qb .Appendf (" and baz = %$" , 3 )
15
+ qb .Appendf ("SELECT %s FROM tbl WHERE 1=1" , "*" )
16
+ qb .Appendf (" AND foo = %$" , 42 )
17
+ qb .Appendf (" AND bar = %$" , "test" )
18
+ qb .Appendf (" AND baz = %$" , false )
20
19
21
- assert .Equal [E ](t , qb .String (), "select * from tbl where 1=1 and foo = $1 and bar = $2 and baz = $3" )
22
- assert .Equal [E ](t , qb .Args , []any {1 , 2 , 3 })
20
+ assert .Equal [E ](t , qb .Query (), "SELECT * FROM tbl WHERE 1=1 AND foo = $1 AND bar = $2 AND baz = $3" )
21
+ assert .Equal [E ](t , qb .Args () , []any {42 , "test" , false })
23
22
}
24
23
25
24
func TestBuilder_placeholders (t * testing.T ) {
26
25
tests := map [string ]struct {
27
26
format string
28
27
query string
29
- debug string
30
28
}{
31
29
"?" : {
32
- format : "select * from tbl where foo = %? and bar = %? and baz = %?" ,
33
- query : "select * from tbl where foo = ? and bar = ? and baz = ?" ,
34
- debug : "select * from tbl where foo = 42 and bar = 'test' and baz = 'context.Background'" ,
30
+ format : "SELECT * FROM tbl WHERE foo = %? AND bar = %? AND baz = %?" ,
31
+ query : "SELECT * FROM tbl WHERE foo = ? AND bar = ? AND baz = ?" ,
35
32
},
36
33
"$" : {
37
- format : "select * from tbl where foo = %$ and bar = %$ and baz = %$" ,
38
- query : "select * from tbl where foo = $1 and bar = $2 and baz = $3" ,
39
- debug : "select * from tbl where foo = 42 and bar = 'test' and baz = 'context.Background'" ,
34
+ format : "SELECT * FROM tbl WHERE foo = %$ AND bar = %$ AND baz = %$" ,
35
+ query : "SELECT * FROM tbl WHERE foo = $1 AND bar = $2 AND baz = $3" ,
40
36
},
41
37
"@" : {
42
- format : "select * from tbl where foo = %@ and bar = %@ and baz = %@" ,
43
- query : "select * from tbl where foo = @p1 and bar = @p2 and baz = @p3" ,
44
- debug : "select * from tbl where foo = 42 and bar = 'test' and baz = 'context.Background'" ,
38
+ format : "SELECT * FROM tbl WHERE foo = %@ AND bar = %@ AND baz = %@" ,
39
+ query : "SELECT * FROM tbl WHERE foo = @p1 AND bar = @p2 AND baz = @p3" ,
45
40
},
46
41
}
47
42
48
43
for name , tt := range tests {
49
44
t .Run (name , func (t * testing.T ) {
50
45
var qb queries.Builder
51
- qb .Appendf (tt .format , 42 , "test" , context .Background ())
52
- assert .Equal [E ](t , qb .String (), tt .query )
53
- assert .Equal [E ](t , qb .Args , []any {42 , "test" , context .Background ()})
54
- assert .Equal [E ](t , qb .DebugString (), tt .debug )
46
+ qb .Appendf (tt .format , 1 , 2 , 3 )
47
+ assert .Equal [E ](t , qb .Query (), tt .query )
48
+ assert .Equal [E ](t , qb .Args (), []any {1 , 2 , 3 })
55
49
})
56
50
}
57
51
}
@@ -63,35 +57,35 @@ func TestBuilder_badQuery(t *testing.T) {
63
57
}{
64
58
"bad verb" : {
65
59
appends : func (qb * queries.Builder ) {
66
- qb .Appendf ("select %d from tbl" , "foo" )
60
+ qb .Appendf ("SELECT %d FROM tbl" , "foo" )
67
61
},
68
- panicMsg : "queries: bad query: select %!d(string=foo) from tbl" ,
62
+ panicMsg : "queries: bad query: SELECT %!d(string=foo) FROM tbl" ,
69
63
},
70
64
"too few arguments" : {
71
65
appends : func (qb * queries.Builder ) {
72
- qb .Appendf ("select %s from tbl" )
66
+ qb .Appendf ("SELECT %s FROM tbl" )
73
67
},
74
- panicMsg : "queries: bad query: select %!s(MISSING) from tbl" ,
68
+ panicMsg : "queries: bad query: SELECT %!s(MISSING) FROM tbl" ,
75
69
},
76
70
"too many arguments" : {
77
71
appends : func (qb * queries.Builder ) {
78
- qb .Appendf ("select %s from tbl" , "foo" , "bar" )
72
+ qb .Appendf ("SELECT %s FROM tbl" , "foo" , "bar" )
79
73
},
80
- panicMsg : "queries: bad query: select foo from tbl%!(EXTRA queries.argument=bar)" ,
74
+ panicMsg : "queries: bad query: SELECT foo FROM tbl%!(EXTRA queries.argument=bar)" ,
81
75
},
82
76
"different placeholders" : {
83
77
appends : func (qb * queries.Builder ) {
84
- qb .Appendf ("select * from tbl where foo = %? and bar = %$ and baz = %@" , 1 , 2 , 3 )
78
+ qb .Appendf ("SELECT * FROM tbl WHERE foo = %? AND bar = %$ AND baz = %@" , 1 , 2 , 3 )
85
79
},
86
- panicMsg : "queries: bad query: different placeholders used" ,
80
+ panicMsg : "queries: different placeholders used" ,
87
81
},
88
82
}
89
83
90
84
for name , tt := range tests {
91
85
t .Run (name , func (t * testing.T ) {
92
86
var qb queries.Builder
93
87
tt .appends (& qb )
94
- assert .Panics [E ](t , func () { _ = qb .String () }, tt .panicMsg )
88
+ assert .Panics [E ](t , func () { _ = qb .Query () }, tt .panicMsg )
95
89
})
96
90
}
97
91
}
0 commit comments