package dispatcher import ( "testing" "time" ) func TestNewDispatcher(t *testing.T) { d := NewDispatcher() if d.subscribers == nil { t.Error("Dispatcher subscribers is nil") } if d.subscribersMu == nil { t.Error("Dispatcher subscribersMu is nil") } } func TestAddSubscriber(t *testing.T) { d := NewDispatcher() d.AddSubscriber() if len(d.subscribers) != 1 { t.Error("Dispatcher subscribers length is not 1") } } func TestCloseSubscriber(t *testing.T) { d := NewDispatcher() _, closeCh := d.AddSubscriber() close(closeCh) time.Sleep(time.Millisecond) if len(d.subscribers) != 0 { t.Error("Dispatcher subscribers length is not 0") } }