| package proxy |
|
|
| import ( |
| "testing" |
| ) |
|
|
| func TestPoolAllocateAndRelease(t *testing.T) { |
| p := NewPool([]string{"http://proxy1:8080", "http://proxy2:8080", "http://proxy3:8080"}) |
|
|
| ip1 := p.Allocate() |
| ip2 := p.Allocate() |
| ip3 := p.Allocate() |
| ip4 := p.Allocate() |
|
|
| if ip1 == ip2 || ip2 == ip3 { |
| t.Errorf("round-robin should cycle: got %q, %q, %q, %q", ip1, ip2, ip3, ip4) |
| } |
| if ip1 != ip4 { |
| t.Errorf("4th allocate should be same as 1st: got %q, want %q", ip4, ip1) |
| } |
| } |
|
|
| func TestPoolEmpty(t *testing.T) { |
| p := NewPool(nil) |
| ip := p.Allocate() |
| if ip != "" { |
| t.Errorf("empty pool should return empty string, got %q", ip) |
| } |
| } |
|
|
| func TestPoolCount(t *testing.T) { |
| p := NewPool([]string{"a", "b", "c"}) |
| if p.Count() != 3 { |
| t.Errorf("Count = %d, want 3", p.Count()) |
| } |
| } |
|
|