浏览代码

add event debounce test

Chris Bannister 10 年之前
父节点
当前提交
da1c6ebb60
共有 1 个文件被更改,包括 32 次插入0 次删除
  1. 32 0
      events_test.go

+ 32 - 0
events_test.go

@@ -0,0 +1,32 @@
+package gocql
+
+import (
+	"net"
+	"sync"
+	"testing"
+)
+
+func TestEventDebounce(t *testing.T) {
+	const eventCount = 150
+	wg := &sync.WaitGroup{}
+	wg.Add(1)
+
+	eventsSeen := 0
+	debouncer := newEventDeouncer("testDebouncer", func(events []frame) {
+		defer wg.Done()
+		eventsSeen += len(events)
+	})
+
+	for i := 0; i < eventCount; i++ {
+		debouncer.debounce(&statusChangeEventFrame{
+			change: "UP",
+			host:   net.IPv4(127, 0, 0, 1),
+			port:   9042,
+		})
+	}
+
+	wg.Wait()
+	if eventCount != eventsSeen {
+		t.Fatalf("expected to see %d events but got %d", eventCount, eventsSeen)
+	}
+}