public void CallsHandlersResolvedByHandlerProviderAndRegisteredHandlers() { var events = new List <EventA> { new EventA(), new EventA(), new EventA() }; var secondEventHandler = new EventAHandler(); _eventBus.Register <EventA>(secondEventHandler.HandleEvent); events.ForEach(e => _eventBus.Raise(e)); Assert.IsTrue(_eventAHandler.Values.SequenceEqual(events.Select(e => e.Value))); Assert.IsTrue(secondEventHandler.Values.SequenceEqual(events.Select(e => e.Value))); }
public void Setup() { _container = new WindsorContainer(); var handlerProvider = new WindsorHandlerProvider(_container.Kernel); _eventBus = new EventBus(); _eventBus.RegisterProvider(handlerProvider); _eventAHandler = new EventAHandler(); _container.Register( Component.For <IEventHandler <EventA> >().Instance(_eventAHandler) ); }
public void HandlerProviderHandlersGetReleased() { var handlerProvider = new Mock <IHandlerProvider>(); var handler = new EventAHandler(); handlerProvider.Setup(hp => hp.GetHandlers <EventA>()) .Returns(new[] { handler }) .Verifiable(); var eventBus = new EventBus(); eventBus.RegisterProvider(handlerProvider.Object); eventBus.Raise(new EventA()); handlerProvider.Verify(hp => hp.ReleaseHandler(handler)); }
public void CallsHandlersRegisteredAsDelegates() { var eventBus = new EventBus(); var handler = new EventAHandler(); var handler2 = new SecondEventAHander(); eventBus.Register <EventA>(handler.HandleEvent); eventBus.Register <EventA>(handler2.HandleEvent); var events = new List <EventA> { new EventA(), new EventA(), new EventA() }; events.ForEach(e => eventBus.Raise(e)); Assert.IsTrue(handler.Values.SequenceEqual(events.Select(e => e.Value))); Assert.IsTrue(handler2.Values.SequenceEqual(events.Select(e => e.Value))); }