@@ -2,6 +2,7 @@ package mysqldump
2
2
3
3
import (
4
4
"bytes"
5
+ "database/sql"
5
6
"reflect"
6
7
"strings"
7
8
"testing"
@@ -10,8 +11,9 @@ import (
10
11
"github.com/stretchr/testify/assert"
11
12
)
12
13
13
- func GetMockData () (data * Data , mock sqlmock.Sqlmock , err error ) {
14
- db , mock , err := sqlmock .New ()
14
+ func getMockData () (data * Data , mock sqlmock.Sqlmock , err error ) {
15
+ var db * sql.DB
16
+ db , mock , err = sqlmock .New ()
15
17
if err != nil {
16
18
return
17
19
}
@@ -25,7 +27,7 @@ func GetMockData() (data *Data, mock sqlmock.Sqlmock, err error) {
25
27
}
26
28
27
29
func TestGetTablesOk (t * testing.T ) {
28
- data , mock , err := GetMockData ()
30
+ data , mock , err := getMockData ()
29
31
assert .NoError (t , err , "an error was not expected when opening a stub database connection" )
30
32
defer data .Close ()
31
33
@@ -45,20 +47,17 @@ func TestGetTablesOk(t *testing.T) {
45
47
}
46
48
47
49
func TestIgnoreTablesOk (t * testing.T ) {
48
- db , mock , err := sqlmock . New ()
50
+ data , mock , err := getMockData ()
49
51
assert .NoError (t , err , "an error was not expected when opening a stub database connection" )
50
- defer db .Close ()
52
+ defer data .Close ()
51
53
52
54
rows := sqlmock .NewRows ([]string {"Tables_in_Testdb" }).
53
55
AddRow ("Test_Table_1" ).
54
56
AddRow ("Test_Table_2" )
55
57
56
58
mock .ExpectQuery ("^SHOW TABLES$" ).WillReturnRows (rows )
57
59
58
- data := Data {
59
- Connection : db ,
60
- IgnoreTables : []string {"Test_Table_1" },
61
- }
60
+ data .IgnoreTables = []string {"Test_Table_1" }
62
61
63
62
result , err := data .getTables ()
64
63
assert .NoError (t , err )
@@ -70,10 +69,9 @@ func TestIgnoreTablesOk(t *testing.T) {
70
69
}
71
70
72
71
func TestGetTablesNil (t * testing.T ) {
73
- db , mock , err := sqlmock . New ()
72
+ data , mock , err := getMockData ()
74
73
assert .NoError (t , err , "an error was not expected when opening a stub database connection" )
75
-
76
- defer db .Close ()
74
+ defer data .Close ()
77
75
78
76
rows := sqlmock .NewRows ([]string {"Tables_in_Testdb" }).
79
77
AddRow ("Test_Table_1" ).
@@ -82,10 +80,6 @@ func TestGetTablesNil(t *testing.T) {
82
80
83
81
mock .ExpectQuery ("^SHOW TABLES$" ).WillReturnRows (rows )
84
82
85
- data := Data {
86
- Connection : db ,
87
- }
88
-
89
83
result , err := data .getTables ()
90
84
assert .NoError (t , err )
91
85
@@ -96,23 +90,18 @@ func TestGetTablesNil(t *testing.T) {
96
90
}
97
91
98
92
func TestGetServerVersionOk (t * testing.T ) {
99
- db , mock , err := sqlmock . New ()
93
+ data , mock , err := getMockData ()
100
94
assert .NoError (t , err , "an error was not expected when opening a stub database connection" )
101
-
102
- defer db .Close ()
95
+ defer data .Close ()
103
96
104
97
rows := sqlmock .NewRows ([]string {"Version()" }).
105
98
AddRow ("test_version" )
106
99
107
- mock .ExpectBegin ()
108
100
mock .ExpectQuery ("^SELECT version()" ).WillReturnRows (rows )
109
101
110
102
meta := metaData {}
111
103
112
- tx , _ := db .Begin ()
113
- assert .NoError (t , meta .updateServerVersion (& Data {
114
- tx : tx ,
115
- }), "error was not expected while updating stats" )
104
+ assert .NoError (t , meta .updateServerVersion (data ), "error was not expected while updating stats" )
116
105
117
106
// we make sure that all expectations were met
118
107
assert .NoError (t , mock .ExpectationsWereMet (), "there were unfulfilled expections" )
@@ -121,19 +110,15 @@ func TestGetServerVersionOk(t *testing.T) {
121
110
}
122
111
123
112
func TestCreateTableSQLOk (t * testing.T ) {
124
- db , mock , err := sqlmock . New ()
113
+ data , mock , err := getMockData ()
125
114
assert .NoError (t , err , "an error was not expected when opening a stub database connection" )
126
- defer db .Close ()
115
+ defer data .Close ()
127
116
128
117
rows := sqlmock .NewRows ([]string {"Table" , "Create Table" }).
129
118
AddRow ("Test_Table" , "CREATE TABLE 'Test_Table' (`id` int(11) NOT NULL AUTO_INCREMENT,`s` char(60) DEFAULT NULL, PRIMARY KEY (`id`))ENGINE=InnoDB DEFAULT CHARSET=latin1" )
130
119
131
120
mock .ExpectQuery ("^SHOW CREATE TABLE `Test_Table`$" ).WillReturnRows (rows )
132
121
133
- data := Data {
134
- Connection : db ,
135
- }
136
-
137
122
table := data .createTable ("Test_Table" )
138
123
139
124
result , err := table .CreateSQL ()
@@ -150,20 +135,16 @@ func TestCreateTableSQLOk(t *testing.T) {
150
135
}
151
136
152
137
func TestCreateTableRowValues (t * testing.T ) {
153
- db , mock , err := sqlmock . New ()
138
+ data , mock , err := getMockData ()
154
139
assert .NoError (t , err , "an error was not expected when opening a stub database connection" )
155
- defer db .Close ()
140
+ defer data .Close ()
156
141
157
142
rows := sqlmock .NewRows ([]string {"id" , "email" , "name" }).
158
143
AddRow (
1 ,
"[email protected] " ,
"Test Name 1" ).
159
144
AddRow (
2 ,
"[email protected] " ,
"Test Name 2" )
160
145
161
146
mock .ExpectQuery ("^SELECT (.+) FROM `test`$" ).WillReturnRows (rows )
162
147
163
- data := Data {
164
- Connection : db ,
165
- }
166
-
167
148
table := data .createTable ("test" )
168
149
169
150
assert .True (t , table .Next ())
@@ -178,20 +159,17 @@ func TestCreateTableRowValues(t *testing.T) {
178
159
}
179
160
180
161
func TestCreateTableValuesSteam (t * testing.T ) {
181
- db , mock , err := sqlmock . New ()
162
+ data , mock , err := getMockData ()
182
163
assert .NoError (t , err , "an error was not expected when opening a stub database connection" )
183
- defer db .Close ()
164
+ defer data .Close ()
184
165
185
166
rows := sqlmock .NewRows ([]string {"id" , "email" , "name" }).
186
167
AddRow (
1 ,
"[email protected] " ,
"Test Name 1" ).
187
168
AddRow (
2 ,
"[email protected] " ,
"Test Name 2" )
188
169
189
170
mock .ExpectQuery ("^SELECT (.+) FROM `test`$" ).WillReturnRows (rows )
190
171
191
- data := Data {
192
- Connection : db ,
193
- MaxAllowedPacket : 4096 ,
194
- }
172
+ data .MaxAllowedPacket = 4096
195
173
196
174
table := data .createTable ("test" )
197
175
@@ -203,20 +181,17 @@ func TestCreateTableValuesSteam(t *testing.T) {
203
181
}
204
182
205
183
func TestCreateTableValuesSteamSmallPackets (t * testing.T ) {
206
- db , mock , err := sqlmock . New ()
184
+ data , mock , err := getMockData ()
207
185
assert .NoError (t , err , "an error was not expected when opening a stub database connection" )
208
- defer db .Close ()
186
+ defer data .Close ()
209
187
210
188
rows := sqlmock .NewRows ([]string {"id" , "email" , "name" }).
211
189
AddRow (
1 ,
"[email protected] " ,
"Test Name 1" ).
212
190
AddRow (
2 ,
"[email protected] " ,
"Test Name 2" )
213
191
214
192
mock .ExpectQuery ("^SELECT (.+) FROM `test`$" ).WillReturnRows (rows )
215
193
216
- data := Data {
217
- Connection : db ,
218
- MaxAllowedPacket : 64 ,
219
- }
194
+ data .MaxAllowedPacket = 64
220
195
221
196
table := data .createTable ("test" )
222
197
@@ -229,9 +204,9 @@ func TestCreateTableValuesSteamSmallPackets(t *testing.T) {
229
204
}
230
205
231
206
func TestCreateTableAllValuesWithNil (t * testing.T ) {
232
- db , mock , err := sqlmock . New ()
207
+ data , mock , err := getMockData ()
233
208
assert .NoError (t , err , "an error was not expected when opening a stub database connection" )
234
- defer db .Close ()
209
+ defer data .Close ()
235
210
236
211
rows := sqlmock .NewRows ([]string {"id" , "email" , "name" }).
237
212
AddRow (1 , nil , "Test Name 1" ).
@@ -240,10 +215,6 @@ func TestCreateTableAllValuesWithNil(t *testing.T) {
240
215
241
216
mock .ExpectQuery ("^SELECT (.+) FROM `test`$" ).WillReturnRows (rows )
242
217
243
- data := Data {
244
- Connection : db ,
245
- }
246
-
247
218
table := data .createTable ("test" )
248
219
249
220
results := make ([]string , 0 )
@@ -262,10 +233,9 @@ func TestCreateTableAllValuesWithNil(t *testing.T) {
262
233
}
263
234
264
235
func TestCreateTableOk (t * testing.T ) {
265
- db , mock , err := sqlmock . New ()
236
+ data , mock , err := getMockData ()
266
237
assert .NoError (t , err , "an error was not expected when opening a stub database connection" )
267
-
268
- defer db .Close ()
238
+ defer data .Close ()
269
239
270
240
createTableRows := sqlmock .NewRows ([]string {"Table" , "Create Table" }).
271
241
AddRow ("Test_Table" , "CREATE TABLE 'Test_Table' (`id` int(11) NOT NULL AUTO_INCREMENT,`s` char(60) DEFAULT NULL, PRIMARY KEY (`id`))ENGINE=InnoDB DEFAULT CHARSET=latin1" )
@@ -278,11 +248,8 @@ func TestCreateTableOk(t *testing.T) {
278
248
mock .ExpectQuery ("^SELECT (.+) FROM `Test_Table`$" ).WillReturnRows (createTableValueRows )
279
249
280
250
var buf bytes.Buffer
281
- data := Data {
282
- Connection : db ,
283
- Out : & buf ,
284
- MaxAllowedPacket : 4096 ,
285
- }
251
+ data .Out = & buf
252
+ data .MaxAllowedPacket = 4096
286
253
287
254
assert .NoError (t , data .getTemplates ())
288
255
@@ -319,10 +286,9 @@ UNLOCK TABLES;
319
286
}
320
287
321
288
func TestCreateTableOkSmallPackets (t * testing.T ) {
322
- db , mock , err := sqlmock . New ()
289
+ data , mock , err := getMockData ()
323
290
assert .NoError (t , err , "an error was not expected when opening a stub database connection" )
324
-
325
- defer db .Close ()
291
+ defer data .Close ()
326
292
327
293
createTableRows := sqlmock .NewRows ([]string {"Table" , "Create Table" }).
328
294
AddRow ("Test_Table" , "CREATE TABLE 'Test_Table' (`id` int(11) NOT NULL AUTO_INCREMENT,`s` char(60) DEFAULT NULL, PRIMARY KEY (`id`))ENGINE=InnoDB DEFAULT CHARSET=latin1" )
@@ -335,11 +301,8 @@ func TestCreateTableOkSmallPackets(t *testing.T) {
335
301
mock .ExpectQuery ("^SELECT (.+) FROM `Test_Table`$" ).WillReturnRows (createTableValueRows )
336
302
337
303
var buf bytes.Buffer
338
- data := Data {
339
- Connection : db ,
340
- Out : & buf ,
341
- MaxAllowedPacket : 64 ,
342
- }
304
+ data .Out = & buf
305
+ data .MaxAllowedPacket = 64
343
306
344
307
assert .NoError (t , data .getTemplates ())
345
308
0 commit comments