@@ -47,11 +47,11 @@ func TestRunCheck(t *testing.T) {
47
47
func TestMigrateUp (t * testing.T ) {
48
48
wantLog := []string {
49
49
"lockdb" , "init" , "getversion" ,
50
- "exec " , "SELECT 1;" , "[]" , "setversion" , "1 " ,
51
- "exec " , "SELECT 2;" , "[]" , "setversion" , "2 " ,
52
- "exec " , "SELECT 3;" , "[]" , "setversion" , "3 " ,
53
- "exec " , "SELECT 4;" , "[]" , "setversion" , "4 " ,
54
- "exec " , "SELECT 5;" , "[]" , "setversion" , "5 " ,
50
+ "dostep " , "{v:1 q:' SELECT 1;' notx:true} " ,
51
+ "dostep " , "{v:2 q:' SELECT 2;' notx:true} " ,
52
+ "dostep " , "{v:3 q:' SELECT 3;' notx:true} " ,
53
+ "dostep " , "{v:4 q:' SELECT 4;' notx:true} " ,
54
+ "dostep " , "{v:5 q:' SELECT 5;' notx:true} " ,
55
55
"unlockdb" ,
56
56
}
57
57
@@ -91,9 +91,7 @@ func TestMigrateUpOne(t *testing.T) {
91
91
currVersion := 3
92
92
wantLog := []string {
93
93
"lockdb" , "init" , "getversion" ,
94
- "begin" ,
95
- "exec" , "SELECT 4;" , "[]" , "setversion" , "4" ,
96
- "commit" ,
94
+ "dostep" , "{v:4 q:'SELECT 4;' notx:false}" ,
97
95
"unlockdb" ,
98
96
}
99
97
@@ -115,11 +113,11 @@ func TestMigrateUpOne(t *testing.T) {
115
113
func TestMigrateDown (t * testing.T ) {
116
114
wantLog := []string {
117
115
"lockdb" , "init" , "getversion" ,
118
- "exec " , "SELECT 50;" , "[]" , "setversion" , "4 " ,
119
- "exec " , "SELECT 40;" , "[]" , "setversion" , "3 " ,
120
- "exec " , "SELECT 30;" , "[]" , "setversion" , "2 " ,
121
- "exec " , "SELECT 20;" , "[]" , "setversion" , "1 " ,
122
- "exec " , "SELECT 10;" , "[]" , "setversion" , "0 " ,
116
+ "dostep " , "{v:4 q:' SELECT 50;' notx:true} " ,
117
+ "dostep " , "{v:3 q:' SELECT 40;' notx:true} " ,
118
+ "dostep " , "{v:2 q:' SELECT 30;' notx:true} " ,
119
+ "dostep " , "{v:1 q:' SELECT 20;' notx:true} " ,
120
+ "dostep " , "{v:0 q:' SELECT 10;' notx:true} " ,
123
121
"unlockdb" ,
124
122
}
125
123
@@ -163,9 +161,7 @@ func TestMigrateDownOne(t *testing.T) {
163
161
currVersion := 3
164
162
wantLog := []string {
165
163
"lockdb" , "init" , "getversion" ,
166
- "begin" ,
167
- "exec" , "SELECT 30;" , "[]" , "setversion" , "2" ,
168
- "commit" ,
164
+ "dostep" , "{v:2 q:'SELECT 30;' notx:false}" ,
169
165
"unlockdb" ,
170
166
}
171
167
@@ -188,8 +184,8 @@ func TestUseForce(t *testing.T) {
188
184
currVersion := 3
189
185
wantLog := []string {
190
186
"lockdb" , "unlockdb" , "lockdb" , "init" , "getversion" ,
191
- "exec " , "SELECT 4;" , "[]" , "setversion" , "4 " ,
192
- "exec " , "SELECT 5;" , "[]" , "setversion" , "5 " ,
187
+ "dostep " , "{v:4 q:' SELECT 4;' notx:true} " ,
188
+ "dostep " , "{v:5 q:' SELECT 5;' notx:true} " ,
193
189
"unlockdb" ,
194
190
}
195
191
@@ -225,25 +221,25 @@ func TestUseForce(t *testing.T) {
225
221
func TestZigZag (t * testing.T ) {
226
222
wantLog := []string {
227
223
"lockdb" , "init" , "getversion" ,
228
- "exec " , "SELECT 1;" , "[]" , "setversion" , "1 " ,
229
- "exec " , "SELECT 10;" , "[]" , "setversion" , "0 " ,
230
- "exec " , "SELECT 1;" , "[]" , "setversion" , "1 " ,
224
+ "dostep " , "{v:1 q:' SELECT 1;' notx:true} " ,
225
+ "dostep " , "{v:0 q:' SELECT 10;' notx:true} " ,
226
+ "dostep " , "{v:1 q:' SELECT 1;' notx:true} " ,
231
227
232
- "exec " , "SELECT 2;" , "[]" , "setversion" , "2 " ,
233
- "exec " , "SELECT 20;" , "[]" , "setversion" , "1 " ,
234
- "exec " , "SELECT 2;" , "[]" , "setversion" , "2 " ,
228
+ "dostep " , "{v:2 q:' SELECT 2;' notx:true} " ,
229
+ "dostep " , "{v:1 q:' SELECT 20;' notx:true} " ,
230
+ "dostep " , "{v:2 q:' SELECT 2;' notx:true} " ,
235
231
236
- "exec " , "SELECT 3;" , "[]" , "setversion" , "3 " ,
237
- "exec " , "SELECT 30;" , "[]" , "setversion" , "2 " ,
238
- "exec " , "SELECT 3;" , "[]" , "setversion" , "3 " ,
232
+ "dostep " , "{v:3 q:' SELECT 3;' notx:true} " ,
233
+ "dostep " , "{v:2 q:' SELECT 30;' notx:true} " ,
234
+ "dostep " , "{v:3 q:' SELECT 3;' notx:true} " ,
239
235
240
- "exec " , "SELECT 4;" , "[]" , "setversion" , "4 " ,
241
- "exec " , "SELECT 40;" , "[]" , "setversion" , "3 " ,
242
- "exec " , "SELECT 4;" , "[]" , "setversion" , "4 " ,
236
+ "dostep " , "{v:4 q:' SELECT 4;' notx:true} " ,
237
+ "dostep " , "{v:3 q:' SELECT 40;' notx:true} " ,
238
+ "dostep " , "{v:4 q:' SELECT 4;' notx:true} " ,
243
239
244
- "exec " , "SELECT 5;" , "[]" , "setversion" , "5 " ,
245
- "exec " , "SELECT 50;" , "[]" , "setversion" , "4 " ,
246
- "exec " , "SELECT 5;" , "[]" , "setversion" , "5 " ,
240
+ "dostep " , "{v:5 q:' SELECT 5;' notx:true} " ,
241
+ "dostep " , "{v:4 q:' SELECT 50;' notx:true} " ,
242
+ "dostep " , "{v:5 q:' SELECT 5;' notx:true} " ,
247
243
"unlockdb" ,
248
244
}
249
245
@@ -298,9 +294,7 @@ func TestFailOnUnlockDB(t *testing.T) {
298
294
currVersion := 4
299
295
wantLog := []string {
300
296
"lockdb" , "init" , "getversion" ,
301
- "begin" ,
302
- "exec" , "SELECT 5;" , "[]" , "setversion" , "5" ,
303
- "commit" ,
297
+ "dostep" , "{v:5 q:'SELECT 5;' notx:false}" ,
304
298
"unlockdb" ,
305
299
}
306
300
mm := & MockMigrator {
@@ -340,16 +334,14 @@ func TestFailOnGetVersionError(t *testing.T) {
340
334
mustEqual (t , mm .log , wantLog )
341
335
}
342
336
343
- func TestFailOnSetVersionError (t * testing.T ) {
337
+ func TestFailOnDoStepError (t * testing.T ) {
344
338
wantLog := []string {
345
339
"lockdb" , "init" , "getversion" ,
346
- "begin" ,
347
- "exec" , "SELECT 1;" , "[]" , "setversion" , "1" ,
348
- "rollback" ,
340
+ "dostep" , "{v:1 q:'SELECT 1;' notx:false}" ,
349
341
"unlockdb" ,
350
342
}
351
343
mm := & MockMigrator {
352
- SetVersionFn : func (ctx context.Context , version int ) error {
344
+ DoStepFn : func (ctx context.Context , step Step ) error {
353
345
return errors .New ("no access" )
354
346
},
355
347
}
@@ -363,101 +355,6 @@ func TestFailOnSetVersionError(t *testing.T) {
363
355
mustEqual (t , mm .log , wantLog )
364
356
}
365
357
366
- func TestFailOnBegin (t * testing.T ) {
367
- wantLog := []string {
368
- "lockdb" , "init" , "getversion" ,
369
- "begin" ,
370
- "unlockdb" ,
371
- }
372
- mm := & MockMigrator {
373
- BeginFn : func (ctx context.Context ) error {
374
- return errors .New ("timeout" )
375
- },
376
- }
377
- cfg := Config {
378
- Migrator : mm ,
379
- Loader : NewSliceLoader (testdataMigrations ),
380
- Mode : ModeUp ,
381
- }
382
-
383
- failIfOk (t , Run (context .Background (), cfg ))
384
- mustEqual (t , mm .log , wantLog )
385
- }
386
-
387
- func TestFailOnExec (t * testing.T ) {
388
- wantLog := []string {
389
- "lockdb" , "init" , "getversion" ,
390
- "begin" ,
391
- "exec" , "SELECT 1;" , "[]" ,
392
- "rollback" ,
393
- "unlockdb" ,
394
- }
395
- mm := & MockMigrator {
396
- ExecFn : func (ctx context.Context , query string , args ... interface {}) error {
397
- return errors .New ("syntax error" )
398
- },
399
- }
400
- cfg := Config {
401
- Migrator : mm ,
402
- Loader : NewSliceLoader (testdataMigrations ),
403
- Mode : ModeUp ,
404
- }
405
-
406
- failIfOk (t , Run (context .Background (), cfg ))
407
- mustEqual (t , mm .log , wantLog )
408
- }
409
-
410
- func TestFailOnCommit (t * testing.T ) {
411
- wantLog := []string {
412
- "lockdb" , "init" , "getversion" ,
413
- "begin" ,
414
- "exec" , "SELECT 1;" , "[]" , "setversion" , "1" ,
415
- "commit" ,
416
- "rollback" ,
417
- "unlockdb" ,
418
- }
419
- mm := & MockMigrator {
420
- CommitFn : func (ctx context.Context ) error {
421
- return errors .New ("constraint violation" )
422
- },
423
- }
424
- cfg := Config {
425
- Migrator : mm ,
426
- Loader : NewSliceLoader (testdataMigrations ),
427
- Mode : ModeUp ,
428
- }
429
-
430
- failIfOk (t , Run (context .Background (), cfg ))
431
- mustEqual (t , mm .log , wantLog )
432
- }
433
-
434
- func TestFailOnRollback (t * testing.T ) {
435
- wantLog := []string {
436
- "lockdb" , "init" , "getversion" ,
437
- "begin" ,
438
- "exec" , "SELECT 1;" , "[]" , "setversion" , "1" ,
439
- "commit" ,
440
- "rollback" ,
441
- "unlockdb" ,
442
- }
443
- mm := & MockMigrator {
444
- CommitFn : func (ctx context.Context ) error {
445
- return errors .New ("constraint violation" )
446
- },
447
- RollbackFn : func (ctx context.Context ) error {
448
- return errors .New ("timeout" )
449
- },
450
- }
451
- cfg := Config {
452
- Migrator : mm ,
453
- Loader : NewSliceLoader (testdataMigrations ),
454
- Mode : ModeUp ,
455
- }
456
-
457
- failIfOk (t , Run (context .Background (), cfg ))
458
- mustEqual (t , mm .log , wantLog )
459
- }
460
-
461
358
func TestFailOnLoad (t * testing.T ) {
462
359
cfg := Config {
463
360
Migrator : & MockMigrator {},
0 commit comments