Skip to content

Commit 86bbb72

Browse files
committed
test: add more tests for least-response-time
1 parent 223e0fc commit 86bbb72

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

core/least-algorithm/least-algorithm_test.go

+29-2
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ func TestNewLeastAlgorithmWithoutAlgorithmType(t *testing.T) {
4242
}
4343

4444
func TestNext(t *testing.T) {
45-
4645
t.Run("least-connection", func(t *testing.T) {
4746
t.Run("with zero pending requests", func(t *testing.T) {
4847
caseFour := mocks.TestCases[4]
@@ -73,8 +72,36 @@ func TestNext(t *testing.T) {
7372
})
7473
})
7574

76-
// TODO least-response-time test
75+
t.Run("least-response-time", func(t *testing.T) {
76+
t.Run("with zero avg response time", func(t *testing.T) {
77+
caseFive := mocks.TestCases[4]
78+
caseFive.Config.Type = "least-response-time"
79+
balancer := NewLeastAlgorithm(&caseFive.Config, caseFive.ProxyFunc)
80+
assert.NotNil(t, balancer)
81+
82+
leastResponseTime := balancer.(*LeastAlgorithm)
83+
proxy := leastResponseTime.nextFunc()
7784

85+
assert.IsType(t, &mocks.MockProxy{}, proxy)
86+
mProxy := proxy.(*mocks.MockProxy)
87+
assert.Equal(t, caseFive.Config.Backends[1].Url, mProxy.Addr)
88+
})
89+
90+
t.Run("with non zero avg response time", func(t *testing.T) {
91+
caseOne := mocks.TestCases[0]
92+
caseOne.Config.Type = "least-response-time"
93+
balancer := NewLeastAlgorithm(&caseOne.Config, caseOne.ProxyFunc)
94+
assert.NotNil(t, balancer)
95+
96+
leastResponseTime := balancer.(*LeastAlgorithm)
97+
proxy := leastResponseTime.nextFunc()
98+
99+
assert.IsType(t, &mocks.MockProxy{}, proxy)
100+
mProxy := proxy.(*mocks.MockProxy)
101+
assert.Equal(t, caseOne.Config.Backends[0].Url, mProxy.Addr)
102+
103+
})
104+
})
78105
}
79106

80107
func TestServe(t *testing.T) {

mocks/mocks.go

+3
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ func (m *MockProxy) PendingRequests() int {
3434
}
3535

3636
func (m *MockProxy) AvgResponseTime() float64 {
37+
if m.Addr == "localhost:7070" {
38+
return 1
39+
}
3740
return 0
3841
}
3942

0 commit comments

Comments
 (0)