Files
play-with-docker/event/local_broker_test.go
Jonathan Leibiusky @xetorthio 4731d8ec98 Event refactor
2017-07-18 10:45:05 -03:00

61 lines
1.2 KiB
Go

package event
import (
"sync"
"testing"
"github.com/stretchr/testify/assert"
)
func TestLocalBroker_On(t *testing.T) {
broker := NewLocalBroker()
called := 0
receivedSessionId := ""
receivedArgs := []interface{}{}
wg := sync.WaitGroup{}
wg.Add(1)
broker.On(INSTANCE_NEW, func(sessionId string, args ...interface{}) {
called++
receivedSessionId = sessionId
receivedArgs = args
wg.Done()
})
broker.Emit(SESSION_READY, "1")
broker.Emit(INSTANCE_NEW, "2", "foo", "bar")
wg.Wait()
assert.Equal(t, 1, called)
assert.Equal(t, "2", receivedSessionId)
assert.Equal(t, []interface{}{"foo", "bar"}, receivedArgs)
}
func TestLocalBroker_OnAny(t *testing.T) {
broker := NewLocalBroker()
var receivedEvent EventType
receivedSessionId := ""
receivedArgs := []interface{}{}
wg := sync.WaitGroup{}
wg.Add(1)
broker.OnAny(func(eventType EventType, sessionId string, args ...interface{}) {
receivedSessionId = sessionId
receivedArgs = args
receivedEvent = eventType
wg.Done()
})
broker.Emit(SESSION_READY, "1")
wg.Wait()
var expectedArgs []interface{}
assert.Equal(t, SESSION_READY, receivedEvent)
assert.Equal(t, "1", receivedSessionId)
assert.Equal(t, expectedArgs, receivedArgs)
}