优化结构
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
package data
|
||||
|
||||
import "testing"
|
||||
|
||||
type reloadableTestClient struct{ id int }
|
||||
|
||||
func TestReloadableReclaimsRepublishedClient(t *testing.T) {
|
||||
first := &reloadableTestClient{id: 1}
|
||||
second := &reloadableTestClient{id: 2}
|
||||
closed := map[*reloadableTestClient]int{}
|
||||
clients := newReloadable(first, func(client *reloadableTestClient) { closed[client]++ })
|
||||
|
||||
clients.replace(second)
|
||||
clients.replace(first)
|
||||
|
||||
if clients.retired.take(first) {
|
||||
t.Fatal("republished client remained scheduled for retirement")
|
||||
}
|
||||
clients.close()
|
||||
if closed[first] != 1 {
|
||||
t.Fatalf("active client closed %d times, want 1", closed[first])
|
||||
}
|
||||
if closed[second] != 1 {
|
||||
t.Fatalf("retired client closed %d times, want 1", closed[second])
|
||||
}
|
||||
}
|
||||
|
||||
func TestReloadableCloseDeduplicatesHandles(t *testing.T) {
|
||||
client := &reloadableTestClient{id: 1}
|
||||
closed := 0
|
||||
clients := newReloadable(client, func(*reloadableTestClient) { closed++ })
|
||||
clients.retired.items = append(clients.retired.items, client, client)
|
||||
|
||||
clients.close()
|
||||
if closed != 1 {
|
||||
t.Fatalf("client closed %d times, want 1", closed)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user