forked from spring2go/gravitee
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sql_test.go
118 lines (91 loc) · 2.46 KB
/
sql_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
package util_test
import (
"database/sql"
"database/sql/driver"
"testing"
"github.com/spring2go/gravitee/util"
"github.com/stretchr/testify/assert"
)
func TestInOrNull(t *testing.T) {
nullInt := util.PositiveIntOrNull(1)
assert.True(t, nullInt.Valid)
value, err := nullInt.Value()
assert.Nil(t, err)
assert.Equal(t, int64(1), value)
}
func TestPositiveIntOrNull(t *testing.T) {
var (
nullInt sql.NullInt64
value driver.Value
err error
)
// When the number is negative
nullInt = util.PositiveIntOrNull(-1)
// nullInt.Valid should be false
assert.False(t, nullInt.Valid)
// nullInt.Value() should return nil
value, err = nullInt.Value()
assert.Nil(t, err)
assert.Nil(t, value)
// When the number is greater than zero
nullInt = util.PositiveIntOrNull(1)
// nullInt.Valid should be true
assert.True(t, nullInt.Valid)
// nullInt.Value() should return the integer
value, err = nullInt.Value()
assert.Nil(t, err)
assert.Equal(t, int64(1), value)
}
func TestFloatOrNull(t *testing.T) {
nullFloat := util.FloatOrNull(1.5)
assert.True(t, nullFloat.Valid)
value, err := nullFloat.Value()
assert.Nil(t, err)
assert.Equal(t, 1.5, value)
}
func TestPositiveFloatOrNull(t *testing.T) {
var (
nullFloat sql.NullFloat64
value driver.Value
err error
)
// When the number is negative
nullFloat = util.PositiveFloatOrNull(-0.5)
// nullFloat.Valid should be false
assert.False(t, nullFloat.Valid)
// nullFloat.Value() should return nil
value, err = nullFloat.Value()
assert.Nil(t, err)
assert.Nil(t, value)
// When the number is greater than zero
nullFloat = util.PositiveFloatOrNull(1.5)
// nullFloat.Valid should be true
assert.True(t, nullFloat.Valid)
// nullFloat.Value() should return the integer
value, err = nullFloat.Value()
assert.Nil(t, err)
assert.Equal(t, 1.5, value)
}
func TestStringOrNull(t *testing.T) {
var (
nullString sql.NullString
value driver.Value
err error
)
// When the string is empty
nullString = util.StringOrNull("")
// nullString.Valid should be false
assert.False(t, nullString.Valid)
// nullString.Value() should return nil
value, err = nullString.Value()
assert.Nil(t, err)
assert.Nil(t, value)
// When the string is not empty
nullString = util.StringOrNull("foo")
// nullString.Valid should be true
assert.True(t, nullString.Valid)
// nullString.Value() should return the string
value, err = nullString.Value()
assert.Nil(t, err)
assert.Equal(t, "foo", value)
}