public void DispatchShouldSupportMultipleHandlers() { // Arrange. var evt = new OrderCancelledEvent(); var executed = 0; var handler1 = new OrderCancelledEventHandler1(() => { executed++; }); var handler2 = new OrderCancelledEventHandler2(() => { executed++; }); var map = new MessageHandlerMap(); map.Add(typeof(OrderCancelledEvent), handler1.GetType()); map.Add(typeof(OrderCancelledEvent), handler2.GetType()); var container = A.Fake <IContainer>(); A.CallTo(() => container.Resolve(handler1.GetType())).Returns(handler1); A.CallTo(() => container.Resolve(handler2.GetType())).Returns(handler2); var dispatcher = new MessageDispatcher(container, map); // Act. dispatcher.Dispatch("CreateOrder", new Envelope <OrderCancelledEvent>(evt)).Wait(); // Assert. Assert.Equal(2, executed); }
public void DispatchShouldSupportMultipleHandlers() { // Arrange. var evt = new OrderCancelledEvent(); var executed = 0; var handler1 = new OrderCancelledEventHandler1(() => { executed++; }); var handler2 = new OrderCancelledEventHandler2(() => { executed++; }); var map = new MessageHandlerMap(); map.Add(typeof(OrderCancelledEvent), handler1.GetType()); map.Add(typeof(OrderCancelledEvent), handler2.GetType()); var container = A.Fake<IContainer>(); A.CallTo(() => container.Resolve(handler1.GetType())).Returns(handler1); A.CallTo(() => container.Resolve(handler2.GetType())).Returns(handler2); var dispatcher = new MessageDispatcher(container, map); // Act. dispatcher.Dispatch("CreateOrder", new Envelope<OrderCancelledEvent>(evt)).Wait(); // Assert. Assert.Equal(2, executed); }