|
@@ -0,0 +1,78 @@
|
|
|
+package event_test
|
|
|
+
|
|
|
+import (
|
|
|
+ "testing"
|
|
|
+
|
|
|
+ "dev.hexasoftware.com/hxs/event"
|
|
|
+)
|
|
|
+
|
|
|
+func TestEvent(t *testing.T) {
|
|
|
+
|
|
|
+ bus := event.NewBus()
|
|
|
+ a := 0
|
|
|
+ bus.On("test", func(evt event.Event) {
|
|
|
+ t.Log("Event successfull")
|
|
|
+ a++
|
|
|
+ })
|
|
|
+
|
|
|
+ bus.Emit(event.New("test", nil))
|
|
|
+
|
|
|
+ if a != 1 {
|
|
|
+ t.Fatal("Event Failed")
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+// Testing a named emitter that prefixes events
|
|
|
+func TestNamedEmitter(t *testing.T) {
|
|
|
+
|
|
|
+ bus := event.NewBus()
|
|
|
+
|
|
|
+ em := event.NewNamedEmitter("user", bus)
|
|
|
+
|
|
|
+ a := 0
|
|
|
+
|
|
|
+ bus.On("test", func(evt event.Event) {
|
|
|
+ a++
|
|
|
+ })
|
|
|
+
|
|
|
+ bus.On("user:test", func(evt event.Event) {
|
|
|
+ t.Log("Event fired successfully")
|
|
|
+ a++
|
|
|
+ })
|
|
|
+
|
|
|
+ em.Emit(event.New("test", nil))
|
|
|
+ if a != 1 {
|
|
|
+ t.Fail()
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+type MyStruct struct {
|
|
|
+ event.Emitter
|
|
|
+}
|
|
|
+
|
|
|
+func TestCustomStruct(t *testing.T) {
|
|
|
+ bus := event.NewBus()
|
|
|
+ a := 0
|
|
|
+
|
|
|
+ bus.On("MyStruct:test", func(evt event.Event) {
|
|
|
+ t.Log("Event fired successfully")
|
|
|
+ a++
|
|
|
+ })
|
|
|
+
|
|
|
+ s := MyStruct{event.NewNamedEmitter("MyStruct", bus)}
|
|
|
+
|
|
|
+ s.Emit(event.New("test", nil))
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func TestParamData(t *testing.T) {
|
|
|
+ bus := event.NewBus()
|
|
|
+ bus.On("test", func(evt event.Event) {
|
|
|
+ str := evt.Data().(string)
|
|
|
+ if str != "123" {
|
|
|
+ t.FailNow()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ bus.Emit(event.New("test", "123"))
|
|
|
+}
|