Exemple #1
0
        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);
        }