Skip to content

Commit cb651b2

Browse files
author
Philio
committed
Completed simple statement unit test
1 parent db0964a commit cb651b2

File tree

1 file changed

+149
-3
lines changed

1 file changed

+149
-3
lines changed

mysql_test.go

Lines changed: 149 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,10 @@ var (
5555

5656
type SimpleRow struct {
5757
Id uint64
58-
Number int64
58+
Number string
5959
String string
6060
Text string
61-
Date Date
61+
Date string
6262
}
6363

6464
// Test connect to server via TCP
@@ -144,12 +144,14 @@ func TestSimple(t *testing.T) {
144144
t.Logf("Error %s", err)
145145
t.Fail()
146146
}
147+
147148
t.Logf("Create table")
148149
err = db.Query(CREATE_SIMPLE)
149150
if err != nil {
150151
t.Logf("Error %s", err)
151152
t.Fail()
152153
}
154+
153155
t.Logf("Insert 1000 records")
154156
rowMap := make(map[uint64][]string)
155157
for i := 0; i < 1000; i++ {
@@ -162,18 +164,21 @@ func TestSimple(t *testing.T) {
162164
row := []string{fmt.Sprintf("%d", num), str1, str2}
163165
rowMap[db.LastInsertId] = row
164166
}
167+
165168
t.Logf("Select inserted data")
166169
err = db.Query(SELECT_SIMPLE)
167170
if err != nil {
168171
t.Logf("Error %s", err)
169172
t.Fail()
170173
}
174+
171175
t.Logf("Use result")
172176
res, err := db.UseResult()
173177
if err != nil {
174178
t.Logf("Error %s", err)
175179
t.Fail()
176180
}
181+
177182
t.Logf("Validate inserted data")
178183
for {
179184
row := res.FetchRow()
@@ -187,12 +192,14 @@ func TestSimple(t *testing.T) {
187192
t.Fail()
188193
}
189194
}
195+
190196
t.Logf("Free result")
191197
err = res.Free()
192198
if err != nil {
193199
t.Logf("Error %s", err)
194200
t.Fail()
195201
}
202+
196203
t.Logf("Update some records")
197204
for i := uint64(0); i < 1000; i += 5 {
198205
rowMap[i+1][2] = randString(256)
@@ -206,18 +213,21 @@ func TestSimple(t *testing.T) {
206213
t.Fail()
207214
}
208215
}
216+
209217
t.Logf("Select updated data")
210218
err = db.Query(SELECT_SIMPLE)
211219
if err != nil {
212220
t.Logf("Error %s", err)
213221
t.Fail()
214222
}
223+
215224
t.Logf("Store result")
216225
res, err = db.StoreResult()
217226
if err != nil {
218227
t.Logf("Error %s", err)
219228
t.Fail()
220229
}
230+
221231
t.Logf("Validate updated data")
222232
for {
223233
row := res.FetchRow()
@@ -232,6 +242,7 @@ func TestSimple(t *testing.T) {
232242
t.Fail()
233243
}
234244
}
245+
235246
t.Logf("Free result")
236247
err = res.Free()
237248
if err != nil {
@@ -245,6 +256,8 @@ func TestSimple(t *testing.T) {
245256
t.Logf("Error %s", err)
246257
t.Fail()
247258
}
259+
260+
t.Logf("Close connection")
248261
err = db.Close()
249262
if err != nil {
250263
t.Logf("Error %s", err)
@@ -260,30 +273,35 @@ func TestSimpleStatement(t *testing.T) {
260273
t.Logf("Error %s", err)
261274
t.Fail()
262275
}
276+
263277
t.Logf("Init statement")
264278
stmt, err := db.InitStmt()
265279
if err != nil {
266280
t.Logf("Error %s", err)
267281
t.Fail()
268282
}
283+
269284
t.Logf("Prepare create table")
270285
err = stmt.Prepare(CREATE_SIMPLE)
271286
if err != nil {
272287
t.Logf("Error %s", err)
273288
t.Fail()
274289
}
290+
275291
t.Logf("Execute create table")
276292
err = stmt.Execute()
277293
if err != nil {
278294
t.Logf("Error %s", err)
279295
t.Fail()
280296
}
297+
281298
t.Logf("Prepare insert")
282299
err = stmt.Prepare(INSERT_SIMPLE_STMT)
283300
if err != nil {
284301
t.Logf("Error %s", err)
285302
t.Fail()
286303
}
304+
287305
t.Logf("Insert 1000 records")
288306
rowMap := make(map[uint64][]string)
289307
for i := 0; i < 1000; i++ {
@@ -299,7 +317,135 @@ func TestSimpleStatement(t *testing.T) {
299317
t.Fail()
300318
}
301319
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()
303449
}
304450
}
305451

0 commit comments

Comments
 (0)