1
- package _go_test
1
+ package mock_test
2
2
3
3
import (
4
4
"fmt"
@@ -7,105 +7,120 @@ import (
7
7
"net/http/httptest"
8
8
"strings"
9
9
"testing"
10
+ "time"
10
11
11
12
"github.com/stretchr/testify/assert"
12
13
"github.com/stretchr/testify/require"
13
14
14
- . "github.com/mockingio/go "
15
+ . "github.com/mockingio/mock "
15
16
)
16
17
18
+ func TestBuilder_Validation (t * testing.T ) {
19
+ _ , err := New ().Start ()
20
+ assert .Error (t , err )
21
+ }
22
+
17
23
func TestBuilder_MatchedRoute (t * testing.T ) {
18
24
t .Run ("simple get" , func (t * testing.T ) {
19
- srv := New ().
25
+ srv , err := New ().
20
26
Get ("/hello" ).
21
27
Response (http .StatusOK , "world" ).
22
- Start (t )
28
+ Start ()
23
29
defer srv .Close ()
24
30
31
+ require .NoError (t , err )
25
32
assertHTTPGETRequest (t , url (srv , "/hello" ), 200 , "world" )
26
33
})
27
34
28
35
t .Run ("simple post" , func (t * testing.T ) {
29
- srv := New ().
36
+ srv , err := New ().
30
37
Post ("/hello" ).
31
38
Response (http .StatusOK , "world" ).
32
- Start (t )
39
+ Start ()
33
40
defer srv .Close ()
34
41
42
+ require .NoError (t , err )
35
43
assertHTTPPOSTRequest (t , url (srv , "/hello" ), "" , 200 , "world" )
36
44
})
37
45
38
46
t .Run ("simple put" , func (t * testing.T ) {
39
- srv := New ().
47
+ srv , err := New ().
40
48
Put ("/hello" ).
41
49
Response (http .StatusOK , "world" ).
42
- Start (t )
50
+ Start ()
43
51
defer srv .Close ()
44
52
53
+ require .NoError (t , err )
45
54
assertHTTPPUTRequest (t , url (srv , "/hello" ), "" , 200 , "world" )
46
55
})
47
56
48
57
t .Run ("simple options" , func (t * testing.T ) {
49
- srv := New ().
58
+ srv , err := New ().
50
59
Option ("/hello" ).
51
60
Response (http .StatusOK , "world" ).
52
- Start (t )
61
+ Start ()
53
62
defer srv .Close ()
54
63
64
+ require .NoError (t , err )
55
65
assertHTTPOPTIONSRequest (t , url (srv , "/hello" ), "" , 200 , "world" )
56
66
})
57
67
58
68
t .Run ("simple put" , func (t * testing.T ) {
59
- srv := New ().
69
+ srv , err := New ().
60
70
Delete ("/hello" ).
61
71
Response (http .StatusOK , "world" ).
62
- Start (t )
72
+ Start ()
63
73
defer srv .Close ()
64
74
75
+ require .NoError (t , err )
65
76
assertHTTPDELETETRequest (t , url (srv , "/hello" ), "" , 200 , "world" )
66
77
})
67
78
68
79
t .Run ("simple get with builder" , func (t * testing.T ) {
69
80
builder := New ()
70
81
builder .Get ("/hello" ).
71
82
Response (http .StatusOK , "world" )
72
- srv := builder .Start (t )
83
+ srv , err := builder .Start ()
73
84
defer srv .Close ()
74
85
86
+ require .NoError (t , err )
75
87
assertHTTPGETRequest (t , url (srv , "/hello" ), 200 , "world" )
76
88
})
77
89
78
90
t .Run ("with a condition" , func (t * testing.T ) {
79
- srv := New ().
91
+ srv , err := New ().
80
92
Get ("/hello" ).
81
93
Response (http .StatusOK , "world" ).
82
94
When (Cookie , "name" , Equal , "Jack" ).
83
- Start (t )
95
+ Start ()
84
96
97
+ require .NoError (t , err )
85
98
assertHTTPGETRequest (t , url (srv , "/hello" ), 200 , "world" )
86
99
})
87
100
88
101
t .Run ("with AND condition" , func (t * testing.T ) {
89
- srv := New ().
102
+ srv , err := New ().
90
103
Get ("/hello" ).
91
104
Response (http .StatusOK , "world" ).
92
105
When (Cookie , "name" , Equal , "Jack" ).
93
106
And (Cookie , "name" , Regex , "[a-zA-Z]+" ).
94
107
And (Header , "x-type" , Regex , "x-men" ).
95
- Start (t )
108
+ Start ()
96
109
110
+ require .NoError (t , err )
97
111
assertHTTPGETRequest (t , url (srv , "/hello" ), 200 , "world" )
98
112
})
99
113
100
114
t .Run ("with OR condition" , func (t * testing.T ) {
101
- srv := New ().
115
+ srv , err := New ().
102
116
Get ("/hello" ).
103
117
Response (http .StatusOK , "world" ).
104
118
When (Cookie , "name" , Equal , "Jack" ).
105
119
Or (Header , "name" , Regex , "non exist value" ).
106
120
Or (Header , "age" , Equal , "18" ).
107
- Start (t )
121
+ Start ()
108
122
123
+ require .NoError (t , err )
109
124
assertHTTPGETRequest (t , url (srv , "/hello" ), 200 , "world" )
110
125
})
111
126
@@ -120,56 +135,76 @@ func TestBuilder_MatchedRoute(t *testing.T) {
120
135
builder .Post ("/hello3" ).
121
136
Response (http .StatusOK , "world3" )
122
137
123
- srv := builder .Start (t )
138
+ srv , err := builder .Start ()
124
139
defer srv .Close ()
125
140
141
+ require .NoError (t , err )
126
142
assertHTTPGETRequest (t , url (srv , "/hello1" ), 200 , "world1" )
127
143
assertHTTPGETRequest (t , url (srv , "/hello2" ), 200 , "world2" )
128
144
assertHTTPPOSTRequest (t , url (srv , "/hello3" ), "" , 200 , "world3" )
129
145
})
146
+
147
+ t .Run ("with delay" , func (t * testing.T ) {
148
+ srv , err := New ().
149
+ Get ("/hello" ).
150
+ Response (http .StatusOK , "world" ).
151
+ Delay (50 ).
152
+ Start ()
153
+ defer srv .Close ()
154
+
155
+ timer := time .Now ()
156
+
157
+ require .NoError (t , err )
158
+ assertHTTPGETRequest (t , url (srv , "/hello" ), 200 , "world" )
159
+ assert .Greater (t , time .Since (timer ), 50 * time .Millisecond )
160
+ })
130
161
}
131
162
132
163
func TestBuilder_NoMatchedRoute (t * testing.T ) {
133
164
t .Run ("simple get" , func (t * testing.T ) {
134
- srv := New ().
165
+ srv , err := New ().
135
166
Get ("/hello" ).
136
167
Response (http .StatusOK , "world" ).
137
- Start (t )
168
+ Start ()
138
169
defer srv .Close ()
139
170
171
+ require .NoError (t , err )
140
172
assertNoMatchHTTPGETRequest (t , url (srv , "/hellox" ), 200 )
141
173
})
142
174
143
175
t .Run ("with a condition" , func (t * testing.T ) {
144
- srv := New ().
176
+ srv , err := New ().
145
177
Get ("/hello" ).
146
178
Response (http .StatusOK , "world" ).
147
179
When (Cookie , "name" , Equal , "Jack not found" ).
148
- Start (t )
180
+ Start ()
149
181
182
+ require .NoError (t , err )
150
183
assertNoMatchHTTPGETRequest (t , url (srv , "/hello" ), 200 )
151
184
})
152
185
153
186
t .Run ("with AND condition" , func (t * testing.T ) {
154
- srv := New ().
187
+ srv , err := New ().
155
188
Get ("/hello" ).
156
189
Response (http .StatusOK , "world" ).
157
190
When (Cookie , "name" , Equal , "Jack" ).
158
191
And (Cookie , "name" , Regex , "[a-zA-Z]+" ).
159
192
And (Header , "x-type" , Regex , "x-women" ).
160
- Start (t )
193
+ Start ()
161
194
195
+ require .NoError (t , err )
162
196
assertNoMatchHTTPGETRequest (t , url (srv , "/hello" ), 200 )
163
197
})
164
198
165
199
t .Run ("with OR condition" , func (t * testing.T ) {
166
- srv := New ().
200
+ srv , err := New ().
167
201
Get ("/hello" ).
168
202
Response (http .StatusOK , "world" ).
169
203
When (Cookie , "name" , Equal , "Jack not found" ).
170
204
Or (Header , "name" , Regex , "non exist value" ).
171
- Start (t )
205
+ Start ()
172
206
207
+ require .NoError (t , err )
173
208
assertNoMatchHTTPGETRequest (t , url (srv , "/hello" ), 200 )
174
209
})
175
210
}
0 commit comments