-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmocks_test.go
137 lines (113 loc) · 2.93 KB
/
mocks_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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
package httpexpect
import (
"net/http"
"testing"
"time"
)
type mockClient struct {
req *http.Request
resp http.Response
err error
}
func (c *mockClient) Do(req *http.Request) (*http.Response, error) {
c.req = req
if c.err == nil {
c.resp.Header = c.req.Header
c.resp.Body = c.req.Body
return &c.resp, nil
}
return nil, c.err
}
type mockReporter struct {
testing *testing.T
reported bool
}
func newMockReporter(t *testing.T) *mockReporter {
return &mockReporter{t, false}
}
func (r *mockReporter) Errorf(message string, args ...interface{}) {
r.testing.Logf("Fail: "+message, args...)
r.reported = true
}
type mockWebsocketConn struct {
msgType int
readMsgErr error
writeMsgErr error
closeError error
readDlError error
writeDlError error
msg []byte
subprotocol string
}
func newMockWebsocketConn() *mockWebsocketConn {
return &mockWebsocketConn{}
}
func (wc *mockWebsocketConn) WithWriteMsgError(retError error) *mockWebsocketConn {
wc.writeMsgErr = retError
return wc
}
func (wc *mockWebsocketConn) WithReadMsgError(retError error) *mockWebsocketConn {
wc.readMsgErr = retError
return wc
}
func (wc *mockWebsocketConn) WithWriteDlError(retError error) *mockWebsocketConn {
wc.writeDlError = retError
return wc
}
func (wc *mockWebsocketConn) WithReadDlError(retError error) *mockWebsocketConn {
wc.readDlError = retError
return wc
}
func (wc *mockWebsocketConn) WithCloseError(retError error) *mockWebsocketConn {
wc.closeError = retError
return wc
}
func (wc *mockWebsocketConn) WithMsgType(msgType int) *mockWebsocketConn {
wc.msgType = msgType
return wc
}
func (wc *mockWebsocketConn) WithSubprotocol(subprotocol string) *mockWebsocketConn {
wc.subprotocol = subprotocol
return wc
}
func (wc *mockWebsocketConn) WithMessage(msg []byte) *mockWebsocketConn {
wc.msg = msg
return wc
}
func (wc *mockWebsocketConn) ReadMessage() (messageType int, p []byte, err error) {
return wc.msgType, []byte{}, wc.readMsgErr
}
func (wc *mockWebsocketConn) WriteMessage(messageType int, data []byte) error {
return wc.writeMsgErr
}
func (wc *mockWebsocketConn) Close() error {
return wc.closeError
}
func (wc *mockWebsocketConn) SetReadDeadline(t time.Time) error {
return wc.readDlError
}
func (wc *mockWebsocketConn) SetWriteDeadline(t time.Time) error {
return wc.writeDlError
}
func (wc *mockWebsocketConn) Subprotocol() string {
return wc.subprotocol
}
type MockWsPrinter struct {
isWrittenTo bool
isReadFrom bool
}
func newMockWsPrinter() *MockWsPrinter {
return &MockWsPrinter{
isWrittenTo: false,
isReadFrom: false,
}
}
func (pr *MockWsPrinter) Request(*http.Request) {}
// Response is called after response is received.
func (pr *MockWsPrinter) Response(*http.Response, time.Duration) {}
func (pr *MockWsPrinter) WebsocketWrite(typ int, content []byte, closeCode int) {
pr.isWrittenTo = true
}
func (pr *MockWsPrinter) WebsocketRead(typ int, content []byte, closeCode int) {
pr.isReadFrom = true
}