Skip to content

Commit d7364b1

Browse files
authored
Merge pull request #77 from go-kivik/membership-v3
Add Membership support
2 parents daa079b + 5924365 commit d7364b1

File tree

13 files changed

+117
-20
lines changed

13 files changed

+117
-20
lines changed

.gitlab-ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ variables:
1212

1313
linter:
1414
stage: test
15-
image: golangci/golangci-lint:v1.26
15+
image: golangci/golangci-lint:v1.28
1616
script:
1717
- go mod download
1818
- golangci-lint run ./...
1919

2020
coverage:
2121
stage: test
22-
image: golang:1.13
22+
image: golang:1.14
2323
services: []
2424
before_script:
2525
- ''

.golangci.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ format = "colored-line-number"
33

44
[linters]
55
enable = [
6-
"interfacer", "gocyclo", "unconvert", "goimports", "unused", "varcheck",
6+
"gocyclo", "unconvert", "goimports", "unused", "varcheck",
77
"vetshadow", "misspell", "nakedret", "errcheck", "golint", "ineffassign",
88
"deadcode", "goconst", "vet", "unparam", "gofmt"
99
]

client.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@ type driverClient struct {
1313
*Client
1414
}
1515

16-
var _ driver.Client = &driverClient{}
17-
var _ driver.ClientCloser = &driverClient{}
18-
var _ driver.Authenticator = &driverClient{}
19-
var _ driver.Cluster = &driverClient{}
20-
var _ driver.DBsStatser = &driverClient{}
21-
var _ driver.Pinger = &driverClient{}
22-
var _ driver.Sessioner = &driverClient{}
23-
var _ driver.Configer = &driverClient{}
16+
var (
17+
_ driver.Client = &driverClient{}
18+
_ driver.ClientCloser = &driverClient{}
19+
_ driver.Authenticator = &driverClient{}
20+
_ driver.Cluster = &driverClient{}
21+
_ driver.DBsStatser = &driverClient{}
22+
_ driver.Pinger = &driverClient{}
23+
_ driver.Sessioner = &driverClient{}
24+
_ driver.Configer = &driverClient{}
25+
)
2426

2527
func (c *driverClient) Authenticate(ctx context.Context, authenticator interface{}) error {
2628
expected := &ExpectedAuthenticate{

client_gen.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,17 @@ func (c *driverClient) GetReplications(ctx context.Context, options map[string]i
238238
return driverReplications(expected.ret0), expected.wait(ctx)
239239
}
240240

241+
func (c *driverClient) Membership(ctx context.Context) (*driver.ClusterMembership, error) {
242+
expected := &ExpectedMembership{}
243+
if err := c.nextExpectation(expected); err != nil {
244+
return nil, err
245+
}
246+
if expected.callback != nil {
247+
return expected.callback(ctx)
248+
}
249+
return expected.ret0, expected.wait(ctx)
250+
}
251+
241252
func (c *driverClient) Replicate(ctx context.Context, arg0 string, arg1 string, options map[string]interface{}) (driver.Replication, error) {
242253
expected := &ExpectedReplicate{
243254
arg0: arg0,

clientexpectations_gen.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -900,6 +900,50 @@ func (e *ExpectedGetReplications) method(v bool) string {
900900
return fmt.Sprintf("GetReplications(ctx, %s)", options)
901901
}
902902

903+
// ExpectedMembership represents an expectation for a call to Membership().
904+
type ExpectedMembership struct {
905+
commonExpectation
906+
callback func(ctx context.Context) (*driver.ClusterMembership, error)
907+
ret0 *driver.ClusterMembership
908+
}
909+
910+
// WillExecute sets a callback function to be called with any inputs to the
911+
// original function. Any values returned by the callback will be returned as
912+
// if generated by the driver.
913+
func (e *ExpectedMembership) WillExecute(cb func(ctx context.Context) (*driver.ClusterMembership, error)) *ExpectedMembership {
914+
e.callback = cb
915+
return e
916+
}
917+
918+
// WillReturn sets the values that will be returned by the call to Membership().
919+
func (e *ExpectedMembership) WillReturn(ret0 *driver.ClusterMembership) *ExpectedMembership {
920+
e.ret0 = ret0
921+
return e
922+
}
923+
924+
// WillReturnError sets the error value that will be returned by the call to Membership().
925+
func (e *ExpectedMembership) WillReturnError(err error) *ExpectedMembership {
926+
e.err = err
927+
return e
928+
}
929+
930+
// WillDelay causes the call to Membership() to delay.
931+
func (e *ExpectedMembership) WillDelay(delay time.Duration) *ExpectedMembership {
932+
e.delay = delay
933+
return e
934+
}
935+
936+
func (e *ExpectedMembership) met(_ expectation) bool {
937+
return true
938+
}
939+
940+
func (e *ExpectedMembership) method(v bool) string {
941+
if !v {
942+
return "Membership()"
943+
}
944+
return fmt.Sprintf("Membership(ctx)")
945+
}
946+
903947
// ExpectedReplicate represents an expectation for a call to Replicate().
904948
type ExpectedReplicate struct {
905949
commonExpectation

clientmock_gen.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,13 @@ func (c *Client) ExpectGetReplications() *ExpectedGetReplications {
126126
return e
127127
}
128128

129+
// ExpectMembership queues an expectation that Membership will be called.
130+
func (c *Client) ExpectMembership() *ExpectedMembership {
131+
e := &ExpectedMembership{}
132+
c.expected = append(c.expected, e)
133+
return e
134+
}
135+
129136
// ExpectReplicate queues an expectation that Replicate will be called.
130137
func (c *Client) ExpectReplicate() *ExpectedReplicate {
131138
e := &ExpectedReplicate{}

db.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ type driverDB struct {
1010
*DB
1111
}
1212

13-
var _ driver.DB = &driverDB{}
14-
var _ driver.BulkGetter = &driverDB{}
15-
var _ driver.OptsFinder = &driverDB{}
13+
var (
14+
_ driver.DB = &driverDB{}
15+
_ driver.BulkGetter = &driverDB{}
16+
_ driver.OptsFinder = &driverDB{}
17+
)
1618

1719
func (db *driverDB) Close(ctx context.Context) error {
1820
expected := &ExpectedDBClose{

expectations.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,15 @@ func (e *ExpectedClusterStatus) String() string {
111111
errorString(e.err)
112112
}
113113

114+
func (e *ExpectedMembership) String() string {
115+
extra := delayString(e.delay) + errorString(e.err)
116+
msg := "call to Membership()"
117+
if extra != "" {
118+
msg += " which:" + extra
119+
}
120+
return msg
121+
}
122+
114123
// WithAction specifies the action to be matched. Note that this expectation
115124
// is compared with the actual action's marshaled JSON output, so it is not
116125
// essential that the data types match exactly, in a Go sense.

gen/main.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"reflect"
66
"sort"
77

8-
kivik "github.com/go-kivik/kivik/v3"
8+
"github.com/go-kivik/kivik/v3"
99
"github.com/go-kivik/kivik/v3/driver"
1010
)
1111

@@ -45,6 +45,7 @@ type fullClient interface {
4545
driver.Pinger
4646
driver.Sessioner
4747
driver.Cluster
48+
driver.Cluster2
4849
driver.ClientCloser
4950
driver.Authenticator
5051
driver.ClientReplicator

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ go 1.13
55
require (
66
github.com/flimzy/diff v0.1.6
77
github.com/go-kivik/couchdb/v3 v3.0.0
8-
github.com/go-kivik/kivik/v3 v3.1.1
8+
github.com/go-kivik/kivik/v3 v3.2.0
99
gitlab.com/flimzy/testy v0.0.3
1010
)

0 commit comments

Comments
 (0)