github.com/woremacx/kocha@v0.7.1-0.20150731103243-a5889322afc9/event/memory/queue_test.go (about) 1 package memory 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/woremacx/kocha/event" 8 ) 9 10 func TestEventQueue(t *testing.T) { 11 e := event.New() 12 if err := e.RegisterQueue("memory", &EventQueue{}); err != nil { 13 t.Fatal(err) 14 } 15 e.Start() 16 defer e.Stop() 17 18 handlerName := "testEventQueueHandler" 19 called := make(chan struct{}) 20 if err := e.AddHandler(handlerName, "memory", func(args ...interface{}) error { 21 called <- struct{}{} 22 return nil 23 }); err != nil { 24 t.Fatal(err) 25 } 26 if err := e.Trigger(handlerName); err != nil { 27 t.Errorf("event.Trigger(%q) => %#v, want nil", handlerName, err) 28 } 29 select { 30 case <-called: 31 case <-time.After(3 * time.Second): 32 t.Errorf("event.Trigger(%q) has try to call handler but hasn't been called within 3 seconds", handlerName) 33 } 34 }