github.com/go-kivik/kivik/v4@v4.3.2/int/mock/replication.go (about) 1 // Licensed under the Apache License, Version 2.0 (the "License"); you may not 2 // use this file except in compliance with the License. You may obtain a copy of 3 // the License at 4 // 5 // http://www.apache.org/licenses/LICENSE-2.0 6 // 7 // Unless required by applicable law or agreed to in writing, software 8 // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 9 // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 10 // License for the specific language governing permissions and limitations under 11 // the License. 12 13 package mock 14 15 import ( 16 "context" 17 "time" 18 19 "github.com/go-kivik/kivik/v4/driver" 20 ) 21 22 // Replication mocks driver.Replication 23 type Replication struct { 24 // ID identifies a specific Replication instance 25 ID string 26 DeleteFunc func(context.Context) error 27 StartTimeFunc func() time.Time 28 EndTimeFunc func() time.Time 29 ErrFunc func() error 30 ReplicationIDFunc func() string 31 SourceFunc func() string 32 TargetFunc func() string 33 StateFunc func() string 34 UpdateFunc func(context.Context, *driver.ReplicationInfo) error 35 } 36 37 var _ driver.Replication = &Replication{} 38 39 // Delete calls r.DeleteFunc 40 func (r *Replication) Delete(ctx context.Context) error { 41 return r.DeleteFunc(ctx) 42 } 43 44 // StartTime calls r.StartTimeFunc 45 func (r *Replication) StartTime() time.Time { 46 return r.StartTimeFunc() 47 } 48 49 // EndTime calls r.EndTimeFunc 50 func (r *Replication) EndTime() time.Time { 51 return r.EndTimeFunc() 52 } 53 54 // Err calls r.ErrFunc 55 func (r *Replication) Err() error { 56 return r.ErrFunc() 57 } 58 59 // ReplicationID calls r.ReplicationIDFunc 60 func (r *Replication) ReplicationID() string { 61 return r.ReplicationIDFunc() 62 } 63 64 // Source calls r.SourceFunc or returns a default value if SourceFunc is nil 65 func (r *Replication) Source() string { 66 if r.SourceFunc == nil { 67 return r.ID + "-source" 68 } 69 return r.SourceFunc() 70 } 71 72 // Target calls r.TargetFunc or returns a default if TargetFunc is nil 73 func (r *Replication) Target() string { 74 if r.TargetFunc == nil { 75 return r.ID + "-target" 76 } 77 return r.TargetFunc() 78 } 79 80 // State calls r.StateFunc 81 func (r *Replication) State() string { 82 return r.StateFunc() 83 } 84 85 // Update calls r.UpdateFunc 86 func (r *Replication) Update(ctx context.Context, rep *driver.ReplicationInfo) error { 87 return r.UpdateFunc(ctx, rep) 88 }