events_test.go 598 B

123456789101112131415161718192021222324252627282930313233
  1. package gocql
  2. import (
  3. "net"
  4. "sync"
  5. "testing"
  6. )
  7. func TestEventDebounce(t *testing.T) {
  8. const eventCount = 150
  9. wg := &sync.WaitGroup{}
  10. wg.Add(1)
  11. eventsSeen := 0
  12. debouncer := newEventDebouncer("testDebouncer", func(events []frame) {
  13. defer wg.Done()
  14. eventsSeen += len(events)
  15. })
  16. defer debouncer.stop()
  17. for i := 0; i < eventCount; i++ {
  18. debouncer.debounce(&statusChangeEventFrame{
  19. change: "UP",
  20. host: net.IPv4(127, 0, 0, 1),
  21. port: 9042,
  22. })
  23. }
  24. wg.Wait()
  25. if eventCount != eventsSeen {
  26. t.Fatalf("expected to see %d events but got %d", eventCount, eventsSeen)
  27. }
  28. }