-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver_test.go
109 lines (95 loc) · 1.93 KB
/
server_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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package mockcbt
import (
"errors"
"testing"
"google.golang.org/protobuf/proto"
assert "github.com/stretchr/testify/assert"
pb "google.golang.org/genproto/googleapis/bigtable/v2"
)
func TestReset(t *testing.T) {
assert := assert.New(t)
_, srv, err := New()
assert.Nil(err)
srv.AddRPC(
&pb.ReadRowsRequest{},
[]interface{}{},
)
srv.Reset()
assert.Nil(srv.reqItems)
assert.Nil(srv.resps)
}
func TestAddRPC(t *testing.T) {
assert := assert.New(t)
_, srv, err := New()
assert.Nil(err)
srv.AddRPC(
&pb.ReadRowsRequest{},
[]interface{}{},
)
assert.NotNil(srv.resps)
assert.NotNil(srv.reqItems[0].wantReq)
assert.Nil(srv.reqItems[0].adjust)
}
func TestAddRPCAdjust(t *testing.T) {
assert := assert.New(t)
_, srv, err := New()
assert.Nil(err)
srv.AddRPCAdjust(
&pb.ReadRowsRequest{},
[]interface{}{},
func(req proto.Message) {},
)
assert.NotNil(srv.resps)
assert.NotNil(srv.reqItems[0].wantReq)
assert.NotNil(srv.reqItems[0].adjust)
}
func TestPopRPC(t *testing.T) {
assert := assert.New(t)
_, srv, err := New()
assert.NotNil(srv)
assert.Nil(err)
// test no RPCs
panicTest := func() {
srv.popRPC(nil)
}
assert.Panics(panicTest)
// test success adjust commit
wantReq := &pb.MutateRowRequest{
TableName: "foo",
}
tn := &(wantReq.TableName)
srv.AddRPCAdjust(
wantReq,
&pb.MutateRowResponse{},
func(gotReq proto.Message) {
*tn = gotReq.(*pb.MutateRowRequest).TableName
},
)
resp, err := srv.popRPC(&pb.MutateRowRequest{
TableName: "bar",
})
assert.Nil(err)
assert.NotNil(resp)
// test error non matching requests
srv.AddRPC(
&pb.MutateRowRequest{
TableName: "foo",
},
&pb.MutateRowResponse{},
)
_, err = srv.popRPC(&pb.MutateRowRequest{
TableName: "bar",
})
assert.NotNil(err)
// test error response
srv.AddRPC(
&pb.MutateRowRequest{
TableName: "foo",
},
errors.New("foobar"),
)
_, err = srv.popRPC(&pb.MutateRowRequest{
TableName: "foo",
})
assert.NotNil(err)
}