MCPcopy Create free account
hub / github.com/datastax/cql-proxy / TestRoundRobinLoadBalancer_NewQueryPlan

Function TestRoundRobinLoadBalancer_NewQueryPlan

proxycore/lb_test.go:23–74  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

21)
22
23func TestRoundRobinLoadBalancer_NewQueryPlan(t *testing.T) {
24 lb := NewRoundRobinLoadBalancer()
25
26 qp := lb.NewQueryPlan()
27 assert.Nil(t, qp.Next())
28
29 newHost := func(addr string) *Host {
30 return &Host{Endpoint: &defaultEndpoint{addr: addr}}
31 }
32
33 lb.OnEvent(&BootstrapEvent{Hosts: []*Host{newHost("127.0.0.1"), newHost("127.0.0.2"), newHost("127.0.0.3")}})
34 qp = lb.NewQueryPlan()
35 assert.Equal(t, newHost("127.0.0.2"), qp.Next())
36 assert.Equal(t, newHost("127.0.0.3"), qp.Next())
37 assert.Equal(t, newHost("127.0.0.1"), qp.Next())
38 assert.Nil(t, qp.Next())
39
40 lb.OnEvent(&AddEvent{Host: newHost("127.0.0.4")})
41
42 qp = lb.NewQueryPlan()
43 assert.Equal(t, newHost("127.0.0.3"), qp.Next())
44 assert.Equal(t, newHost("127.0.0.4"), qp.Next())
45 assert.Equal(t, newHost("127.0.0.1"), qp.Next())
46 assert.Equal(t, newHost("127.0.0.2"), qp.Next())
47 assert.Nil(t, qp.Next())
48
49 lb.OnEvent(&RemoveEvent{Host: newHost("127.0.0.4")})
50
51 qp = lb.NewQueryPlan()
52 assert.Equal(t, newHost("127.0.0.1"), qp.Next())
53 assert.Equal(t, newHost("127.0.0.2"), qp.Next())
54 assert.Equal(t, newHost("127.0.0.3"), qp.Next())
55 assert.Nil(t, qp.Next())
56
57 lb.OnEvent(&RemoveEvent{Host: newHost("127.0.0.3")})
58
59 qp = lb.NewQueryPlan()
60 assert.Equal(t, newHost("127.0.0.1"), qp.Next())
61 assert.Equal(t, newHost("127.0.0.2"), qp.Next())
62 assert.Nil(t, qp.Next())
63
64 lb.OnEvent(&RemoveEvent{Host: newHost("127.0.0.2")})
65
66 qp = lb.NewQueryPlan()
67 assert.Equal(t, newHost("127.0.0.1"), qp.Next())
68 assert.Nil(t, qp.Next())
69
70 lb.OnEvent(&RemoveEvent{Host: newHost("127.0.0.1")})
71
72 qp = lb.NewQueryPlan()
73 assert.Nil(t, qp.Next())
74}

Callers

nothing calls this directly

Calls 4

NextMethod · 0.95
NewQueryPlanMethod · 0.65
OnEventMethod · 0.65

Tested by

no test coverage detected