예제 #1
0
        public void multiple_handlers_to_multiple_messages_then_each_handler_should_handle_only_subscribed_messages()
        {
            var handler1 = new MultipleMessagesTestHandler();
            var handler2 = new MultipleMessagesTestHandler();
            var handler3 = new MultipleMessagesTestHandler();

            Bus.Subscribe <TestMessage>(handler1);
            Bus.Subscribe <TestMessage3>(handler1);

            Bus.Subscribe <TestMessage>(handler2);
            Bus.Subscribe <TestMessage2>(handler2);

            Bus.Subscribe <TestMessage2>(handler3);
            Bus.Subscribe <TestMessage3>(handler3);


            Bus.Publish(new TestMessage());
            Bus.Publish(new TestMessage2());
            Bus.Publish(new TestMessage3());


            Assert.That(handler1.HandledMessages.ContainsSingle <TestMessage>() &&
                        handler1.HandledMessages.ContainsNo <TestMessage2>() &&
                        handler1.HandledMessages.ContainsSingle <TestMessage3>() &&

                        handler2.HandledMessages.ContainsSingle <TestMessage>() &&
                        handler2.HandledMessages.ContainsSingle <TestMessage2>() &&
                        handler2.HandledMessages.ContainsNo <TestMessage3>() &&

                        handler3.HandledMessages.ContainsNo <TestMessage>() &&
                        handler3.HandledMessages.ContainsSingle <TestMessage2>() &&
                        handler3.HandledMessages.ContainsSingle <TestMessage3>());
        }
예제 #2
0
        public void but_not_publishing_messages_noone_should_handle_any_messages()
        {
            var multiHandler = new MultipleMessagesTestHandler();
            Bus.Subscribe<TestMessage>(multiHandler);
            Bus.Subscribe<TestMessage2>(multiHandler);
            Bus.Subscribe<TestMessage3>(multiHandler);

            Assert.That(multiHandler.DidntHandleAnyMessages());
        }
예제 #3
0
        public void multihandler_from_single_message_app_doesnt_throw()
        {
            var handler = new MultipleMessagesTestHandler();
            Bus.Subscribe<TestMessage>(handler);
            Bus.Subscribe<TestMessage2>(handler);
            Bus.Subscribe<TestMessage3>(handler);

            Assert.DoesNotThrow(() => Bus.Unsubscribe<TestMessage>(handler));
        }
예제 #4
0
        public void multihandler_from_single_message_app_doesnt_throw()
        {
            var handler = new MultipleMessagesTestHandler();

            Bus.Subscribe <TestMessage>(handler);
            Bus.Subscribe <TestMessage2>(handler);
            Bus.Subscribe <TestMessage3>(handler);

            Assert.DoesNotThrow(() => Bus.Unsubscribe <TestMessage>(handler));
        }
예제 #5
0
        public void but_not_publishing_messages_noone_should_handle_any_messages()
        {
            var multiHandler = new MultipleMessagesTestHandler();

            Bus.Subscribe <TestMessage>(multiHandler);
            Bus.Subscribe <TestMessage2>(multiHandler);
            Bus.Subscribe <TestMessage3>(multiHandler);

            Assert.That(multiHandler.DidntHandleAnyMessages());
        }
예제 #6
0
        public void one_handler_to_multiple_messages_they_all_should_be_handled()
        {
            var multiHandler = new MultipleMessagesTestHandler();
            Bus.Subscribe<TestMessage>(multiHandler);
            Bus.Subscribe<TestMessage2>(multiHandler);
            Bus.Subscribe<TestMessage3>(multiHandler);

            Bus.Publish(new TestMessage());
            Bus.Publish(new TestMessage2());
            Bus.Publish(new TestMessage3());

            Assert.That(multiHandler.HandledMessages.ContainsSingle<TestMessage>() &&
                        multiHandler.HandledMessages.ContainsSingle<TestMessage2>() &&
                        multiHandler.HandledMessages.ContainsSingle<TestMessage3>());
        }
예제 #7
0
        public void one_handler_to_few_messages_then_only_subscribed_should_be_handled()
        {
            var multiHandler = new MultipleMessagesTestHandler();

            Bus.Subscribe <TestMessage>(multiHandler);
            Bus.Subscribe <TestMessage3>(multiHandler);

            Bus.Publish(new TestMessage());
            Bus.Publish(new TestMessage2());
            Bus.Publish(new TestMessage3());

            Assert.That(multiHandler.HandledMessages.ContainsSingle <TestMessage>() &&
                        multiHandler.HandledMessages.ContainsNo <TestMessage2>() &&
                        multiHandler.HandledMessages.ContainsSingle <TestMessage3>());
        }
예제 #8
0
        public void handler_from_message_it_should_not_handle_this_message_anymore_and_still_handle_other_messages()
        {
            var handler = new MultipleMessagesTestHandler();

            Bus.Subscribe <TestMessage>(handler);
            Bus.Subscribe <TestMessage2>(handler);
            Bus.Subscribe <TestMessage3>(handler);

            Bus.Unsubscribe <TestMessage>(handler);

            Bus.Publish(new TestMessage());
            Bus.Publish(new TestMessage2());
            Bus.Publish(new TestMessage3());

            Assert.That(handler.HandledMessages.ContainsNo <TestMessage>() &&
                        handler.HandledMessages.ContainsSingle <TestMessage2>() &&
                        handler.HandledMessages.ContainsSingle <TestMessage3>());
        }
예제 #9
0
        public void handler_from_multiple_messages_they_all_should_not_be_handled_anymore()
        {
            var handler = new MultipleMessagesTestHandler();

            Bus.Subscribe <TestMessage>(handler);
            Bus.Subscribe <TestMessage2>(handler);
            Bus.Subscribe <TestMessage3>(handler);

            Bus.Unsubscribe <TestMessage>(handler);
            Bus.Unsubscribe <TestMessage2>(handler);
            Bus.Unsubscribe <TestMessage3>(handler);

            Bus.Publish(new TestMessage());
            Bus.Publish(new TestMessage2());
            Bus.Publish(new TestMessage3());

            Assert.That(handler.HandledMessages.ContainsNo <TestMessage>() &&
                        handler.HandledMessages.ContainsNo <TestMessage2>() &&
                        handler.HandledMessages.ContainsNo <TestMessage3>());
        }
예제 #10
0
        public void multiple_handlers_to_multiple_messages_then_each_handler_should_handle_only_subscribed_messages()
        {
            var handler1 = new MultipleMessagesTestHandler();
            var handler2 = new MultipleMessagesTestHandler();
            var handler3 = new MultipleMessagesTestHandler();

            Bus.Subscribe<TestMessage>(handler1);
            Bus.Subscribe<TestMessage3>(handler1);

            Bus.Subscribe<TestMessage>(handler2);
            Bus.Subscribe<TestMessage2>(handler2);

            Bus.Subscribe<TestMessage2>(handler3);
            Bus.Subscribe<TestMessage3>(handler3);


            Bus.Publish(new TestMessage());
            Bus.Publish(new TestMessage2());
            Bus.Publish(new TestMessage3());


            Assert.That(handler1.HandledMessages.ContainsSingle<TestMessage>() &&
                        handler1.HandledMessages.ContainsNo<TestMessage2>() &&
                        handler1.HandledMessages.ContainsSingle<TestMessage3>() &&

                        handler2.HandledMessages.ContainsSingle<TestMessage>() &&
                        handler2.HandledMessages.ContainsSingle<TestMessage2>() &&
                        handler2.HandledMessages.ContainsNo<TestMessage3>() &&

                        handler3.HandledMessages.ContainsNo<TestMessage>() &&
                        handler3.HandledMessages.ContainsSingle<TestMessage2>() &&
                        handler3.HandledMessages.ContainsSingle<TestMessage3>() );
        }
예제 #11
0
        public void handler_from_multiple_messages_they_all_should_not_be_handled_anymore()
        {
            var handler = new MultipleMessagesTestHandler();
            Bus.Subscribe<TestMessage>(handler);
            Bus.Subscribe<TestMessage2>(handler);
            Bus.Subscribe<TestMessage3>(handler);

            Bus.Unsubscribe<TestMessage>(handler);
            Bus.Unsubscribe<TestMessage2>(handler);
            Bus.Unsubscribe<TestMessage3>(handler);

            Bus.Publish(new TestMessage());
            Bus.Publish(new TestMessage2());
            Bus.Publish(new TestMessage3());

            Assert.That(handler.HandledMessages.ContainsNo<TestMessage>() &&
                        handler.HandledMessages.ContainsNo<TestMessage2>() &&
                        handler.HandledMessages.ContainsNo<TestMessage3>());
        }
예제 #12
0
        public void handler_from_message_it_should_not_handle_this_message_anymore_and_still_handle_other_messages()
        {
            var handler = new MultipleMessagesTestHandler();
            Bus.Subscribe<TestMessage>(handler);
            Bus.Subscribe<TestMessage2>(handler);
            Bus.Subscribe<TestMessage3>(handler);

            Bus.Unsubscribe<TestMessage>(handler);

            Bus.Publish(new TestMessage());
            Bus.Publish(new TestMessage2());
            Bus.Publish(new TestMessage3());

            Assert.That(handler.HandledMessages.ContainsNo<TestMessage>() &&
                        handler.HandledMessages.ContainsSingle<TestMessage2>() &&
                        handler.HandledMessages.ContainsSingle<TestMessage3>());
        }