-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmock_test.go
66 lines (55 loc) · 1.43 KB
/
mock_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
package dbump
import (
"context"
"fmt"
)
var _ Migrator = &MockMigrator{}
type MockMigrator struct {
log []string
LockDBFn func(ctx context.Context) error
UnlockDBFn func(ctx context.Context) error
InitFn func(ctx context.Context) error
VersionFn func(ctx context.Context) (version int, err error)
DoStepFn func(ctx context.Context, step Step) error
}
func (mm *MockMigrator) LockDB(ctx context.Context) error {
mm.log = append(mm.log, "lockdb")
if mm.LockDBFn == nil {
return nil
}
return mm.LockDBFn(ctx)
}
func (mm *MockMigrator) UnlockDB(ctx context.Context) error {
mm.log = append(mm.log, "unlockdb")
if mm.UnlockDBFn == nil {
return nil
}
return mm.UnlockDBFn(ctx)
}
func (mm *MockMigrator) Init(ctx context.Context) error {
mm.log = append(mm.log, "init")
if mm.InitFn == nil {
return nil
}
return mm.InitFn(ctx)
}
func (mm *MockMigrator) Version(ctx context.Context) (version int, err error) {
mm.log = append(mm.log, "getversion")
if mm.VersionFn == nil {
return 0, nil
}
return mm.VersionFn(ctx)
}
func (mm *MockMigrator) DoStep(ctx context.Context, step Step) error {
mm.log = append(mm.log, "dostep", fmt.Sprintf("{v:%d q:'%s' notx:%v}", step.Version, step.Query, step.DisableTx))
if mm.DoStepFn == nil {
return nil
}
return mm.DoStepFn(ctx, step)
}
type MockLoader struct {
LoaderFn func() ([]*Migration, error)
}
func (ml *MockLoader) Load() ([]*Migration, error) {
return ml.LoaderFn()
}