lb_test.go 805 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package lb
  2. import (
  3. "github.com/stretchr/testify/assert"
  4. "testing"
  5. )
  6. type test struct {
  7. id int
  8. }
  9. func TestLb(t *testing.T) {
  10. lb := NewLoadBalancer()
  11. for i := 1; i <= 100; i++ {
  12. err := lb.SetClient("test", &test{id: i})
  13. assert.NoError(t, err)
  14. }
  15. m := make(map[int]bool)
  16. for i := 1; i <= 100; i++ {
  17. tt, err := lb.GetClient("test")
  18. assert.NoError(t, err)
  19. if _, ok := m[tt.(*test).id]; ok {
  20. t.Fail()
  21. }
  22. m[tt.(*test).id] = true
  23. }
  24. for i := 1; i <= 50; i++ {
  25. tt, err := lb.GetClient("test")
  26. assert.NoError(t, err)
  27. err = lb.RemoveClient("test", tt)
  28. assert.NoError(t, err)
  29. }
  30. m = make(map[int]bool)
  31. for i := 1; i <= 50; i++ {
  32. tt, err := lb.GetClient("test")
  33. assert.NoError(t, err)
  34. if _, ok := m[tt.(*test).id]; ok {
  35. t.Fail()
  36. }
  37. m[tt.(*test).id] = true
  38. }
  39. }