@@ -19,27 +19,35 @@ import (
19
19
"time"
20
20
21
21
"github.com/stretchr/testify/assert"
22
+ "github.com/stretchr/testify/require"
22
23
)
23
24
24
25
func TestRoundRobinSelector_Select (t * testing.T ) {
25
- uris := []string {"uri1" , "uri2" , "uri3" , "uri4" , "uri5" }
26
26
scorer := NewRoundRobinURISelector (func () int64 { return time .Now ().UnixNano () })
27
27
28
- const iterations = 100
29
- observed := make (map [string ]int , iterations )
30
- for i := 0 ; i < iterations ; i ++ {
31
- uri , err := scorer .Select (uris , nil )
32
- assert .NoError (t , err )
33
- assert .Len (t , uri , 1 )
34
- observed [uri [0 ]] = observed [uri [0 ]] + 1
35
- }
36
-
37
- occurences := make ([]int , 0 , len (observed ))
38
- for _ , count := range observed {
39
- occurences = append (occurences , count )
40
- }
41
-
42
- for _ , v := range occurences {
43
- assert .Equal (t , occurences [0 ], v )
44
- }
28
+ t .Run ("round robins across valid connections" , func (t * testing.T ) {
29
+ uris := []string {"uri1" , "uri2" , "uri3" , "uri4" , "uri5" }
30
+ const iterations = 100
31
+ observed := make (map [string ]int , iterations )
32
+ for i := 0 ; i < iterations ; i ++ {
33
+ uri , err := scorer .Select (uris , nil )
34
+ assert .NoError (t , err )
35
+ assert .Len (t , uri , 1 )
36
+ observed [uri [0 ]] = observed [uri [0 ]] + 1
37
+ }
38
+
39
+ occurences := make ([]int , 0 , len (observed ))
40
+ for _ , count := range observed {
41
+ occurences = append (occurences , count )
42
+ }
43
+
44
+ for _ , v := range occurences {
45
+ assert .Equal (t , occurences [0 ], v )
46
+ }
47
+ })
48
+
49
+ t .Run ("erorrs with empty set of provided uris" , func (t * testing.T ) {
50
+ _ , err := scorer .Select ([]string {}, nil )
51
+ require .Error (t , err )
52
+ })
45
53
}
0 commit comments