...

Source file src/github.com/go-kivik/kivik/v4/int/mock/replication.go

Documentation: github.com/go-kivik/kivik/v4/int/mock

     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  }
    89  

View as plain text