@@ -11,10 +11,11 @@ import (
11
11
12
12
func TestEncodeValues (t * testing.T ) {
13
13
tableTests := []struct {
14
- name string
15
- model interface {}
16
- values map [string ]SQLValuer
17
- skipFlag string
14
+ name string
15
+ model interface {}
16
+ values map [string ]SQLValuer
17
+ skipFlag string
18
+ skipZeroValues bool
18
19
}{
19
20
{
20
21
name : "encode_insert" ,
@@ -23,21 +24,44 @@ func TestEncodeValues(t *testing.T) {
23
24
unexported bool
24
25
FieldToSkip int `goqux:"skip_insert"`
25
26
}{IntField : 1 },
26
- values : map [string ]SQLValuer {"int_field" : {1 }},
27
- skipFlag : skipInsert ,
27
+ values : map [string ]SQLValuer {"int_field" : {1 }},
28
+ skipFlag : skipInsert ,
29
+ skipZeroValues : false ,
28
30
},
29
31
{
30
32
name : "encode_array" ,
31
33
model : struct {
32
34
IntField []int
33
35
}{IntField : []int {1 , 2 }},
34
- values : map [string ]SQLValuer {"int_field" : {[]int {1 , 2 }}},
35
- skipFlag : skipInsert ,
36
+ values : map [string ]SQLValuer {"int_field" : {[]int {1 , 2 }}},
37
+ skipFlag : skipInsert ,
38
+ skipZeroValues : false ,
39
+ },
40
+ {
41
+ name : "encode_array_with_zero_values" ,
42
+ model : struct {
43
+ IntField []int
44
+ }{IntField : []int {1 , 0 }},
45
+ values : map [string ]SQLValuer {"int_field" : {[]int {1 , 0 }}},
46
+ skipFlag : skipInsert ,
47
+ skipZeroValues : false ,
48
+ },
49
+ {
50
+ name : "encode_zero_values" ,
51
+ model : struct {
52
+ IntField int
53
+ FloatField float64
54
+ unexported bool
55
+ FieldToSkip int `goqux:"skip_insert"`
56
+ }{IntField : 0 },
57
+ values : map [string ]SQLValuer {},
58
+ skipFlag : skipInsert ,
59
+ skipZeroValues : true ,
36
60
},
37
61
}
38
62
for _ , tt := range tableTests {
39
63
t .Run (tt .name , func (t * testing.T ) {
40
- values := encodeValues (tt .model , tt .skipFlag )
64
+ values := encodeValues (tt .model , tt .skipFlag , tt . skipZeroValues )
41
65
assert .Equal (t , tt .values , values )
42
66
})
43
67
}
@@ -50,12 +74,11 @@ func TestEncodeTimeValue(t *testing.T) {
50
74
FieldToSkip int `goqux:"skip_insert"`
51
75
}{
52
76
FieldToSkip : 5 ,
53
- }, skipInsert )
77
+ }, skipInsert , true )
54
78
if tf , ok := values ["time_field" ]; ok {
55
79
require .NotNil (t , tf )
56
80
return
57
81
}
58
- t .Fail ()
59
82
}
60
83
61
84
func TestGetColumnsFromStruct (t * testing.T ) {
0 commit comments