This repository has been archived by the owner on Oct 17, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 215
/
Copy pathclient_test.go
84 lines (75 loc) · 1.54 KB
/
client_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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package postgres
import (
"errors"
"reflect"
"testing"
)
var (
defaultClient = &Client{
uri: DefaultURI,
db: "postgres",
}
errBadClient = errors.New("bad client")
clientTests = []struct {
name string
options []ClientOptionFunc // input
expected *Client // expected result
expectedErr error // expected error
}{
{
"default_client",
make([]ClientOptionFunc, 0),
defaultClient,
nil,
},
{
"with_err",
[]ClientOptionFunc{WithErr()},
defaultClient,
errBadClient,
},
}
)
func WithErr() ClientOptionFunc {
return func(c *Client) error {
return errBadClient
}
}
func TestNewClient(t *testing.T) {
for _, ct := range clientTests {
actual, err := NewClient(ct.options...)
if err != ct.expectedErr {
t.Fatalf("[%s] unexpected NewClient error, expected %+v, got %+v\n", ct.name, ct.expectedErr, err)
}
if err == nil && !reflect.DeepEqual(ct.expected, actual) {
t.Errorf("[%s] Client mismatch\nexpected %+v\ngot %+v", ct.name, ct.expected, actual)
}
}
}
var (
connectTests = []struct {
name string
client *Client
expectedErr error
}{
{
"default connect",
defaultClient,
nil,
},
}
)
func TestConnect(t *testing.T) {
if testing.Short() {
t.Skip("skipping Connect in short mode")
}
for _, ct := range connectTests {
_, err := ct.client.Connect()
if err != ct.expectedErr {
t.Fatalf("[%s] unexpected Connect error, expected %+v, got %+v\n", ct.name, ct.expectedErr, err)
}
if err == nil {
ct.client.Close()
}
}
}