Skip to content

Commit a88dfe9

Browse files
add test function for CheckReadiness
1 parent 1badc3d commit a88dfe9

File tree

1 file changed

+143
-0
lines changed

1 file changed

+143
-0
lines changed

addresspool/pool_test.go

+143
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"net/http"
55
"net/http/httptest"
66
"os"
7+
"sync"
78
"testing"
89
"time"
910

@@ -194,3 +195,145 @@ func TestAddressPool_checkConnectivity(t *testing.T) {
194195
assert.Equal(t, statusUnavailable, p.status[server1Addr])
195196
assert.Equal(t, statusUnavailable, p.status[server2Addr])
196197
}
198+
199+
func TestPool_CheckReadiness(t *testing.T) {
200+
type fields struct {
201+
mutex sync.RWMutex
202+
statusHistory []map[string]string
203+
}
204+
tests := []struct {
205+
name string
206+
fields fields
207+
want int
208+
}{
209+
{
210+
name: "success",
211+
fields: fields{
212+
statusHistory: []map[string]string{
213+
{
214+
"1.1.1.1:30110": statusAvailable,
215+
},
216+
{
217+
"1.1.1.1:30110": statusAvailable,
218+
},
219+
{
220+
"1.1.1.1:30110": statusAvailable,
221+
},
222+
},
223+
},
224+
want: ReadinessSuccess,
225+
},
226+
{
227+
name: "success",
228+
fields: fields{
229+
statusHistory: []map[string]string{
230+
{
231+
"1.1.1.1:30110": statusUnavailable,
232+
},
233+
{
234+
"1.1.1.1:30110": statusAvailable,
235+
},
236+
{
237+
"1.1.1.1:30110": statusAvailable,
238+
},
239+
},
240+
},
241+
want: ReadinessSuccess,
242+
},
243+
{
244+
name: "success",
245+
fields: fields{
246+
statusHistory: []map[string]string{
247+
{
248+
"1.1.1.1:30110": statusUnavailable,
249+
},
250+
{
251+
"1.1.1.1:30110": statusAvailable,
252+
},
253+
{
254+
"1.1.1.1:30110": statusUnavailable,
255+
"1.1.1.2:30110": statusAvailable,
256+
},
257+
},
258+
},
259+
want: ReadinessSuccess,
260+
},
261+
{
262+
name: "indeterminate",
263+
fields: fields{
264+
statusHistory: []map[string]string{
265+
{
266+
"1.1.1.1:30110": statusAvailable,
267+
},
268+
{
269+
"1.1.1.1:30110": statusAvailable,
270+
},
271+
{
272+
"1.1.1.1:30110": statusUnavailable,
273+
},
274+
},
275+
},
276+
want: ReadinessIndeterminate,
277+
},
278+
{
279+
name: "indeterminate",
280+
fields: fields{
281+
statusHistory: []map[string]string{
282+
{
283+
"1.1.1.1:30110": statusAvailable,
284+
},
285+
{
286+
"1.1.1.1:30110": statusUnavailable,
287+
},
288+
{
289+
"1.1.1.1:30110": statusUnavailable,
290+
},
291+
},
292+
},
293+
want: ReadinessIndeterminate,
294+
},
295+
{
296+
name: "indeterminate",
297+
fields: fields{
298+
statusHistory: []map[string]string{
299+
{
300+
"1.1.1.1:30110": statusUnavailable,
301+
},
302+
{
303+
"1.1.1.1:30110": statusAvailable,
304+
},
305+
{
306+
"1.1.1.1:30110": statusUnavailable,
307+
},
308+
},
309+
},
310+
want: ReadinessIndeterminate,
311+
},
312+
{
313+
name: "failed",
314+
fields: fields{
315+
statusHistory: []map[string]string{
316+
{
317+
"1.1.1.1:30110": statusUnavailable,
318+
},
319+
{
320+
"1.1.1.1:30110": statusUnavailable,
321+
},
322+
{
323+
"1.1.1.1:30110": statusUnavailable,
324+
},
325+
},
326+
},
327+
want: ReadinessFailed,
328+
},
329+
}
330+
for _, tt := range tests {
331+
t.Run(tt.name, func(t *testing.T) {
332+
p := &Pool{
333+
mutex: tt.fields.mutex,
334+
statusHistory: tt.fields.statusHistory,
335+
}
336+
assert.Equalf(t, tt.want, p.CheckReadiness(), "CheckReadiness()")
337+
})
338+
}
339+
}

0 commit comments

Comments
 (0)