示例#1
0
        public void send_message_to_all_listeners_as_an_action()
        {
            var handlerA = MockRepository.GenerateMock <IMessageHandler1>();
            var handlerB = MockRepository.GenerateMock <IMessageHandler1>();
            var handlerC = MockRepository.GenerateMock <IMessageHandler1>();

            var handlerD = MockRepository.GenerateMock <IMessageHandler2>();
            var handlerE = MockRepository.GenerateMock <IMessageHandler2>();


            events.AddListeners(handlerA, handlerB, handlerC, handlerD, handlerE);

            var message1 = new Message1();
            var message2 = new Message2();

            events.SendMessage <IMessageHandler1>(x => x.HandleMessage(message1));
            events.SendMessage <IMessageHandler2>(x => x.HandleMessage(message2));

            handlerA.AssertWasCalled(x => x.HandleMessage(message1));
            handlerB.AssertWasCalled(x => x.HandleMessage(message1));
            handlerC.AssertWasCalled(x => x.HandleMessage(message1));

            handlerD.AssertWasCalled(x => x.HandleMessage(message2));
            handlerE.AssertWasCalled(x => x.HandleMessage(message2));
        }
示例#2
0
        public void send_message_to_all_listeners_for_a_message_type()
        {
            var listener1 = new StubListener <Message1>();
            var listener2 = new StubListener <Message1>();
            var listener3 = new StubListener <Message1>();
            var listener4 = new StubListener <Message2>();

            events.AddListeners(listener1, listener2, listener3, this, listener4);

            var message1 = new Message1();
            var message2 = new Message2();

            events.SendMessage(message1);
            events.SendMessage(message2);

            Wait.Until(
                () =>
                listener1.LastMessage != null && listener2.LastMessage != null && listener3.LastMessage != null &&
                listener4.LastMessage != null);

            listener1.LastMessage.ShouldBeTheSameAs(message1);
            listener2.LastMessage.ShouldBeTheSameAs(message1);
            listener3.LastMessage.ShouldBeTheSameAs(message1);

            listener4.LastMessage.ShouldBeTheSameAs(message2);
        }