1
0
mirror of https://github.com/go-micro/go-micro.git synced 2024-12-18 08:26:38 +02:00
go-micro/selector/strategy_test.go

59 lines
965 B
Go
Raw Normal View History

2016-05-03 23:06:19 +02:00
package selector
import (
"os"
2016-05-03 23:06:19 +02:00
"testing"
2021-10-12 13:55:53 +02:00
"go-micro.dev/v4/registry"
2016-05-03 23:06:19 +02:00
)
func TestStrategies(t *testing.T) {
testData := []*registry.Service{
{
2016-05-03 23:06:19 +02:00
Name: "test1",
Version: "latest",
Nodes: []*registry.Node{
{
2016-05-03 23:06:19 +02:00
Id: "test1-1",
2019-07-08 09:01:42 +02:00
Address: "10.0.0.1:1001",
2016-05-03 23:06:19 +02:00
},
{
2016-05-03 23:06:19 +02:00
Id: "test1-2",
2019-07-08 09:01:42 +02:00
Address: "10.0.0.2:1002",
2016-05-03 23:06:19 +02:00
},
},
},
{
2016-05-03 23:06:19 +02:00
Name: "test1",
Version: "default",
Nodes: []*registry.Node{
{
2016-05-03 23:06:19 +02:00
Id: "test1-3",
2019-07-08 09:01:42 +02:00
Address: "10.0.0.3:1003",
2016-05-03 23:06:19 +02:00
},
{
2016-05-03 23:06:19 +02:00
Id: "test1-4",
2019-07-08 09:01:42 +02:00
Address: "10.0.0.4:1004",
2016-05-03 23:06:19 +02:00
},
},
},
}
for name, strategy := range map[string]Strategy{"random": Random, "roundrobin": RoundRobin} {
next := strategy(testData)
counts := make(map[string]int)
for i := 0; i < 100; i++ {
node, err := next()
if err != nil {
t.Fatal(err)
}
counts[node.Id]++
}
if len(os.Getenv("IN_TRAVIS_CI")) == 0 {
t.Logf("%s: %+v\n", name, counts)
}
2016-05-03 23:06:19 +02:00
}
}