wait_test.go 955 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package wait
  2. import (
  3. "fmt"
  4. "testing"
  5. )
  6. func TestWait(t *testing.T) {
  7. const eid = 1
  8. wt := New()
  9. ch := wt.Register(eid)
  10. wt.Trigger(eid, "foo")
  11. v := <-ch
  12. if g, w := fmt.Sprintf("%v (%T)", v, v), "foo (string)"; g != w {
  13. t.Errorf("<-ch = %v, want %v", g, w)
  14. }
  15. if g := <-ch; g != nil {
  16. t.Errorf("unexpected non-nil value: %v (%T)", g, g)
  17. }
  18. }
  19. func TestRegisterDupSuppression(t *testing.T) {
  20. const eid = 1
  21. wt := New()
  22. ch1 := wt.Register(eid)
  23. ch2 := wt.Register(eid)
  24. wt.Trigger(eid, "foo")
  25. <-ch1
  26. g := <-ch2
  27. if g != nil {
  28. t.Errorf("unexpected non-nil value: %v (%T)", g, g)
  29. }
  30. }
  31. func TestTriggerDupSuppression(t *testing.T) {
  32. const eid = 1
  33. wt := New()
  34. ch := wt.Register(eid)
  35. wt.Trigger(eid, "foo")
  36. wt.Trigger(eid, "bar")
  37. v := <-ch
  38. if g, w := fmt.Sprintf("%v (%T)", v, v), "foo (string)"; g != w {
  39. t.Errorf("<-ch = %v, want %v", g, w)
  40. }
  41. if g := <-ch; g != nil {
  42. t.Errorf("unexpected non-nil value: %v (%T)", g, g)
  43. }
  44. }