|
|
@@ -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)
|
|
|
+ }
|
|
|
+}
|