event_test.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package event_test
  2. import (
  3. "testing"
  4. "dev.hexasoftware.com/hxs/event"
  5. )
  6. func TestEvent(t *testing.T) {
  7. bus := event.NewBus()
  8. a := 0
  9. bus.On("test", func(evt event.Event) {
  10. t.Log("Event successfull")
  11. a++
  12. })
  13. bus.Emit(event.New("test", nil))
  14. if a != 1 {
  15. t.Fatal("Event Failed")
  16. }
  17. }
  18. // Testing a named emitter that prefixes events
  19. func TestNamedEmitter(t *testing.T) {
  20. bus := event.NewBus()
  21. em := event.NewNamedEmitter("user", bus)
  22. a := 0
  23. bus.On("test", func(evt event.Event) {
  24. a++
  25. })
  26. bus.On("user:test", func(evt event.Event) {
  27. t.Log("Event fired successfully")
  28. a++
  29. })
  30. em.Emit(event.New("test", nil))
  31. if a != 1 {
  32. t.Fail()
  33. }
  34. }
  35. type MyStruct struct {
  36. event.Emitter
  37. }
  38. func TestCustomStruct(t *testing.T) {
  39. bus := event.NewBus()
  40. a := 0
  41. bus.On("MyStruct:test", func(evt event.Event) {
  42. t.Log("Event fired successfully")
  43. a++
  44. })
  45. s := MyStruct{event.NewNamedEmitter("MyStruct", bus)}
  46. s.Emit(event.New("test", nil))
  47. }
  48. func TestParamData(t *testing.T) {
  49. bus := event.NewBus()
  50. bus.On("test", func(evt event.Event) {
  51. str := evt.Data().(string)
  52. if str != "123" {
  53. t.FailNow()
  54. }
  55. })
  56. bus.Emit(event.New("test", "123"))
  57. }