@@ -55,10 +55,10 @@ var (
55
55
56
56
type SimpleRow struct {
57
57
Id uint64
58
- Number int64
58
+ Number string
59
59
String string
60
60
Text string
61
- Date Date
61
+ Date string
62
62
}
63
63
64
64
// Test connect to server via TCP
@@ -144,12 +144,14 @@ func TestSimple(t *testing.T) {
144
144
t .Logf ("Error %s" , err )
145
145
t .Fail ()
146
146
}
147
+
147
148
t .Logf ("Create table" )
148
149
err = db .Query (CREATE_SIMPLE )
149
150
if err != nil {
150
151
t .Logf ("Error %s" , err )
151
152
t .Fail ()
152
153
}
154
+
153
155
t .Logf ("Insert 1000 records" )
154
156
rowMap := make (map [uint64 ][]string )
155
157
for i := 0 ; i < 1000 ; i ++ {
@@ -162,18 +164,21 @@ func TestSimple(t *testing.T) {
162
164
row := []string {fmt .Sprintf ("%d" , num ), str1 , str2 }
163
165
rowMap [db .LastInsertId ] = row
164
166
}
167
+
165
168
t .Logf ("Select inserted data" )
166
169
err = db .Query (SELECT_SIMPLE )
167
170
if err != nil {
168
171
t .Logf ("Error %s" , err )
169
172
t .Fail ()
170
173
}
174
+
171
175
t .Logf ("Use result" )
172
176
res , err := db .UseResult ()
173
177
if err != nil {
174
178
t .Logf ("Error %s" , err )
175
179
t .Fail ()
176
180
}
181
+
177
182
t .Logf ("Validate inserted data" )
178
183
for {
179
184
row := res .FetchRow ()
@@ -187,12 +192,14 @@ func TestSimple(t *testing.T) {
187
192
t .Fail ()
188
193
}
189
194
}
195
+
190
196
t .Logf ("Free result" )
191
197
err = res .Free ()
192
198
if err != nil {
193
199
t .Logf ("Error %s" , err )
194
200
t .Fail ()
195
201
}
202
+
196
203
t .Logf ("Update some records" )
197
204
for i := uint64 (0 ); i < 1000 ; i += 5 {
198
205
rowMap [i + 1 ][2 ] = randString (256 )
@@ -206,18 +213,21 @@ func TestSimple(t *testing.T) {
206
213
t .Fail ()
207
214
}
208
215
}
216
+
209
217
t .Logf ("Select updated data" )
210
218
err = db .Query (SELECT_SIMPLE )
211
219
if err != nil {
212
220
t .Logf ("Error %s" , err )
213
221
t .Fail ()
214
222
}
223
+
215
224
t .Logf ("Store result" )
216
225
res , err = db .StoreResult ()
217
226
if err != nil {
218
227
t .Logf ("Error %s" , err )
219
228
t .Fail ()
220
229
}
230
+
221
231
t .Logf ("Validate updated data" )
222
232
for {
223
233
row := res .FetchRow ()
@@ -232,6 +242,7 @@ func TestSimple(t *testing.T) {
232
242
t .Fail ()
233
243
}
234
244
}
245
+
235
246
t .Logf ("Free result" )
236
247
err = res .Free ()
237
248
if err != nil {
@@ -245,6 +256,8 @@ func TestSimple(t *testing.T) {
245
256
t .Logf ("Error %s" , err )
246
257
t .Fail ()
247
258
}
259
+
260
+ t .Logf ("Close connection" )
248
261
err = db .Close ()
249
262
if err != nil {
250
263
t .Logf ("Error %s" , err )
@@ -260,30 +273,35 @@ func TestSimpleStatement(t *testing.T) {
260
273
t .Logf ("Error %s" , err )
261
274
t .Fail ()
262
275
}
276
+
263
277
t .Logf ("Init statement" )
264
278
stmt , err := db .InitStmt ()
265
279
if err != nil {
266
280
t .Logf ("Error %s" , err )
267
281
t .Fail ()
268
282
}
283
+
269
284
t .Logf ("Prepare create table" )
270
285
err = stmt .Prepare (CREATE_SIMPLE )
271
286
if err != nil {
272
287
t .Logf ("Error %s" , err )
273
288
t .Fail ()
274
289
}
290
+
275
291
t .Logf ("Execute create table" )
276
292
err = stmt .Execute ()
277
293
if err != nil {
278
294
t .Logf ("Error %s" , err )
279
295
t .Fail ()
280
296
}
297
+
281
298
t .Logf ("Prepare insert" )
282
299
err = stmt .Prepare (INSERT_SIMPLE_STMT )
283
300
if err != nil {
284
301
t .Logf ("Error %s" , err )
285
302
t .Fail ()
286
303
}
304
+
287
305
t .Logf ("Insert 1000 records" )
288
306
rowMap := make (map [uint64 ][]string )
289
307
for i := 0 ; i < 1000 ; i ++ {
@@ -299,7 +317,135 @@ func TestSimpleStatement(t *testing.T) {
299
317
t .Fail ()
300
318
}
301
319
row := []string {fmt .Sprintf ("%d" , num ), str1 , str2 }
302
- rowMap [db .LastInsertId ] = row
320
+ rowMap [stmt .LastInsertId ] = row
321
+ }
322
+
323
+ t .Logf ("Prepare select" )
324
+ err = stmt .Prepare (SELECT_SIMPLE )
325
+ if err != nil {
326
+ t .Logf ("Error %s" , err )
327
+ t .Fail ()
328
+ }
329
+
330
+ t .Logf ("Execute select" )
331
+ err = stmt .Execute ()
332
+ if err != nil {
333
+ t .Logf ("Error %s" , err )
334
+ t .Fail ()
335
+ }
336
+
337
+ t .Logf ("Bind result" )
338
+ row := SimpleRow {}
339
+ stmt .BindResult (& row .Id , & row .Number , & row .String , & row .Text , & row .Date )
340
+
341
+ t .Logf ("Validate inserted data" )
342
+ for {
343
+ eof , err := stmt .Fetch ()
344
+ if err != nil {
345
+ t .Logf ("Error %s" , err )
346
+ t .Fail ()
347
+ }
348
+ if eof {
349
+ break
350
+ }
351
+ if rowMap [row .Id ][0 ] != row .Number || rowMap [row .Id ][1 ] != row .String || rowMap [row .Id ][2 ] != row .Text {
352
+ t .Logf ("String from database doesn't match local string" )
353
+ t .Fail ()
354
+ }
355
+ }
356
+
357
+ t .Logf ("Reset statement" )
358
+ err = stmt .Reset ()
359
+ if err != nil {
360
+ t .Logf ("Error %s" , err )
361
+ t .Fail ()
362
+ }
363
+
364
+ t .Logf ("Prepare update" )
365
+ err = stmt .Prepare (UPDATE_SIMPLE_STMT )
366
+ if err != nil {
367
+ t .Logf ("Error %s" , err )
368
+ t .Fail ()
369
+ }
370
+
371
+ t .Logf ("Update some records" )
372
+ for i := uint64 (0 ); i < 1000 ; i += 5 {
373
+ rowMap [i + 1 ][2 ] = randString (256 )
374
+ stmt .BindParams (rowMap [i + 1 ][2 ], i + 1 )
375
+ err = stmt .Execute ()
376
+ if err != nil {
377
+ t .Logf ("Error %s" , err )
378
+ t .Fail ()
379
+ }
380
+ if stmt .AffectedRows != 1 {
381
+ t .Logf ("Expected 1 effected row but got %d" , db .AffectedRows )
382
+ t .Fail ()
383
+ }
384
+ }
385
+
386
+ t .Logf ("Prepare select updated" )
387
+ err = stmt .Prepare (SELECT_SIMPLE )
388
+ if err != nil {
389
+ t .Logf ("Error %s" , err )
390
+ t .Fail ()
391
+ }
392
+
393
+ t .Logf ("Execute select updated" )
394
+ err = stmt .Execute ()
395
+ if err != nil {
396
+ t .Logf ("Error %s" , err )
397
+ t .Fail ()
398
+ }
399
+
400
+ t .Logf ("Validate updated data" )
401
+ for {
402
+ eof , err := stmt .Fetch ()
403
+ if err != nil {
404
+ t .Logf ("Error %s" , err )
405
+ t .Fail ()
406
+ }
407
+ if eof {
408
+ break
409
+ }
410
+ if rowMap [row .Id ][0 ] != row .Number || rowMap [row .Id ][1 ] != row .String || rowMap [row .Id ][2 ] != row .Text {
411
+ t .Logf ("String from database doesn't match local string" )
412
+ t .Fail ()
413
+ }
414
+ }
415
+
416
+ t .Logf ("Free result" )
417
+ err = stmt .FreeResult ()
418
+ if err != nil {
419
+ t .Logf ("Error %s" , err )
420
+ t .Fail ()
421
+ }
422
+
423
+ t .Logf ("Prepare drop" )
424
+ err = stmt .Prepare (DROP_SIMPLE )
425
+ if err != nil {
426
+ t .Logf ("Error %s" , err )
427
+ t .Fail ()
428
+ }
429
+
430
+ t .Logf ("Execute drop" )
431
+ err = stmt .Execute ()
432
+ if err != nil {
433
+ t .Logf ("Error %s" , err )
434
+ t .Fail ()
435
+ }
436
+
437
+ t .Logf ("Close statement" )
438
+ err = stmt .Close ()
439
+ if err != nil {
440
+ t .Logf ("Error %s" , err )
441
+ t .Fail ()
442
+ }
443
+
444
+ t .Logf ("Close connection" )
445
+ err = db .Close ()
446
+ if err != nil {
447
+ t .Logf ("Error %s" , err )
448
+ t .Fail ()
303
449
}
304
450
}
305
451
0 commit comments