public void Subscribe_adds_it_to_the_source_so_it_can_be_resolved()
        {
            var assignee = new SimpleSubscriber();
            var handler = new TestHandler();
            assignee.Subscribe(handler);

            var handlers = assignee.ResolveHandlersFor(typeof(TestMessage));

            Assert.That(handlers, Has.Member(handler));
        }
Esempio n. 2
0
        public void Should_no_throw_if_no_dispatcher_found_and_set_to_ignore()
        {
            var assignee = new SimpleSubscriber();
            var handler = new TestHandler();
            var message = new TestMessage();
            var publisher = new Publisher(new PublisherSettings{IgnoreNoDispatcher = true},assignee, new[] { new SimpleDispatcher(new Rule(x => false)) });

            assignee.Subscribe(handler);

            Should.NotThrow(() => publisher.Publish(message));
        }
        public void Unsubscribe_removes_it_from_source_so_it_could_be_resolved()
        {
            var assignee = new SimpleSubscriber();
            var handler = new TestHandler();
            assignee.Subscribe(handler);
            assignee.Unsubscribe(handler);

            var handlers = assignee.ResolveHandlersFor(typeof(TestMessage));

            Assert.That(handlers, Has.No.Member(handler));
        }
Esempio n. 4
0
        public void Should_not_throw_if_multiple_dispather_can_dispatch_a_message_and_set_to_ignore()
        {
            var assignee = new SimpleSubscriber();
            var dispatcher = new SimpleDispatcher();
            var handler = new TestHandler();
            var message = new TestMessage();
            var publisher = new Publisher(new PublisherSettings{IgnoreMultipleDispatcher = true},  assignee, new[] { dispatcher, dispatcher });

            assignee.Subscribe(handler);

            Should.NotThrow(() => publisher.Publish(message));
        }
Esempio n. 5
0
        public void Should_not_fail_if_onle_one_dispatcher_can_dispath_message()
        {
            var assignee = new SimpleSubscriber();
            var dispatcher = new SimpleDispatcher();
            var handler = new TestHandler();
            var message = new TestMessage();
            var publisher = new Publisher(assignee, new[] { dispatcher, new SimpleDispatcher(new Rule(x => false)) });

            assignee.Subscribe(handler);

            Should.NotThrow(() => publisher.Publish(message));
        }
        public void Subscribe_will_not_add_same_object_twice()
        {
            var assignee = new SimpleSubscriber();
            var handler = new TestHandler();
            assignee.Subscribe(handler);
            assignee.Subscribe(handler);

            IEnumerable handlers = assignee.ResolveHandlersFor(typeof(TestMessage));

            Assert.That(handlers, Has.Member(handler));
            //Assert.That(handlers.Count(), Is.EqualTo(1));
        }
        public void Returns_same_object_for_different_handlers()
        {
            var assignee = new SimpleSubscriber();
            var handler = new MultiHandler();

            assignee.Subscribe(handler);

            var messageHandlers = assignee.ResolveHandlersFor(typeof(TestMessage));
            var anotherMessageHandlers = assignee.ResolveHandlersFor(typeof(AnotherMessage));

            CollectionAssert.AreEqual(messageHandlers, anotherMessageHandlers);
        }
Esempio n. 8
0
        public void Publish_will_send_the_message_to_listner()
        {
            var assignee = new SimpleSubscriber();
            var dispatcher = new SimpleDispatcher();
            var handler = new TestHandler();
            var message = new TestMessage();
            var publisher = new Publisher(assignee, new[] {dispatcher});

            assignee.Subscribe(handler);

            publisher.Publish(message);

            Assert.That(handler.TestMessage, Is.SameAs(message));
        }
Esempio n. 9
0
        public void Should_throw_if_multiple_dispather_can_dispatch_a_message()
        {
            var assignee = new SimpleSubscriber();
            var dispatcher = new SimpleDispatcher();
            var handler = new TestHandler();
            var message = new TestMessage();
            var publisher = new Publisher(assignee, new[] { dispatcher, dispatcher });

            assignee.Subscribe(handler);

            Should.Throw<InvalidOperationException>(() => publisher.Publish(message));
        }
Esempio n. 10
0
        public void Should_throw_if_no_handlers_found_and_set_to_ignore_this()
        {
            var assignee = new SimpleSubscriber();
            var dispatcher = new SimpleDispatcher();
            var message = new TestMessage();
            var publisher = new Publisher(new PublisherSettings{IgnoreNoHandlers = true},  assignee, new[] { dispatcher});

            Should.NotThrow(() => publisher.Publish(message));
        }
Esempio n. 11
0
        public void Should_throw_if_no_handlers_found()
        {
            var assignee = new SimpleSubscriber();
            var dispatcher = new SimpleDispatcher();
            var message = new TestMessage();
            var publisher = new Publisher(assignee, new[] { dispatcher});

            Should.Throw<InvalidOperationException>(() => publisher.Publish(message));
        }
Esempio n. 12
0
        public void Should_throw_if_no_dispatcher_found()
        {
            var assignee = new SimpleSubscriber();
            var handler = new TestHandler();
            var message = new TestMessage();
            var publisher = new Publisher(assignee, new[] { new SimpleDispatcher(new Rule(x => false)) });

            assignee.Subscribe(handler);

            Should.Throw<InvalidOperationException>(() => publisher.Publish(message));
        }
        public void SetUp()
        {
            _compositeSource = new CompositeHandlerSource();

            _firstSource = new SimpleSubscriber();
            _secondSource = new SimpleSubscriber();

            _compositeSource.AddSource(_firstSource);
            _compositeSource.AddSource(_secondSource);
        }
        public void Should_return_empty_collection_if_no_handlers()
        {
            var handlers = new SimpleSubscriber().ResolveHandlersFor(typeof(TestMessage));

            Assert.That(handlers, Is.Empty);
        }