forked from go-kivik/kivik
-
Notifications
You must be signed in to change notification settings - Fork 0
/
replication.go
76 lines (63 loc) · 1.75 KB
/
replication.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
67
68
69
70
71
72
73
74
75
76
package mock
import (
"context"
"time"
"github.com/IG-Soft/kivik/v3/driver"
)
// Replication mocks driver.Replication
type Replication struct {
// ID identifies a specific Replication instance
ID string
DeleteFunc func(context.Context) error
StartTimeFunc func() time.Time
EndTimeFunc func() time.Time
ErrFunc func() error
ReplicationIDFunc func() string
SourceFunc func() string
TargetFunc func() string
StateFunc func() string
UpdateFunc func(context.Context, *driver.ReplicationInfo) error
}
var _ driver.Replication = &Replication{}
// Delete calls r.DeleteFunc
func (r *Replication) Delete(ctx context.Context) error {
return r.DeleteFunc(ctx)
}
// StartTime calls r.StartTimeFunc
func (r *Replication) StartTime() time.Time {
return r.StartTimeFunc()
}
// EndTime calls r.EndTimeFunc
func (r *Replication) EndTime() time.Time {
return r.EndTimeFunc()
}
// Err calls r.ErrFunc
func (r *Replication) Err() error {
return r.ErrFunc()
}
// ReplicationID calls r.ReplicatoinIDFunc
func (r *Replication) ReplicationID() string {
return r.ReplicationIDFunc()
}
// Source calls r.SourceFunc or returns a default value if SourceFunc is nil
func (r *Replication) Source() string {
if r.SourceFunc == nil {
return r.ID + "-source"
}
return r.SourceFunc()
}
// Target calls r.TargetFunc or returns a default if TargetFunc is nil
func (r *Replication) Target() string {
if r.TargetFunc == nil {
return r.ID + "-target"
}
return r.TargetFunc()
}
// State calls r.StateFunc
func (r *Replication) State() string {
return r.StateFunc()
}
// Update calls r.UpdateFunc
func (r *Replication) Update(ctx context.Context, rep *driver.ReplicationInfo) error {
return r.UpdateFunc(ctx, rep)
}