public void CanUnsubscribe()
        {
            var bus = new DirectDispatchMessageBus();

            var target = new SingleSubscriber();
            bus.Subscribe(target);
            bus.Unsubscribe(target);

            var message = new TestMessage();
            bus.Publish(message);

            Assert.That(message.LastReceiver, Is.Null);
        }
        public void SameTargetCanOnlySubscribeOnce()
        {
            var bus = new DirectDispatchMessageBus();

            var target = new SingleSubscriber();

            bus.Subscribe(target);
            bus.Subscribe(target);

            bus.Publish <TestMessage>();

            Assert.That(target.ReceivedMessages, Is.EqualTo(1));
        }
        public void CanSubscribeMultipleTargets()
        {
            var bus = new DirectDispatchMessageBus();

            var target1 = new SingleSubscriber();
            var target2 = new SingleSubscriber();
            bus.Subscribe(target1);
            bus.Subscribe(target2);

            var message = new TestMessage();
            bus.Publish(message);

            Assert.That(target1.LastMessage, Is.SameAs(message));
            Assert.That(target2.LastMessage, Is.SameAs(message));
        }
        public void CanUnsubscribe()
        {
            var bus = new DirectDispatchMessageBus();

            var target = new SingleSubscriber();

            bus.Subscribe(target);
            bus.Unsubscribe(target);

            var message = new TestMessage();

            bus.Publish(message);

            Assert.That(message.LastReceiver, Is.Null);
        }
        public void CanSubscribeMultipleTargets()
        {
            var bus = new DirectDispatchMessageBus();

            var target1 = new SingleSubscriber();
            var target2 = new SingleSubscriber();

            bus.Subscribe(target1);
            bus.Subscribe(target2);

            var message = new TestMessage();

            bus.Publish(message);

            Assert.That(target1.LastMessage, Is.SameAs(message));
            Assert.That(target2.LastMessage, Is.SameAs(message));
        }
        public void MessageIsDispatchedOnCallingThreadByDefault()
        {
            var dispatchedOnUIThread = false;
            var bus = new MessageBus(action =>
            {
                dispatchedOnUIThread = true;
                action();
            });

            var target = new SingleSubscriber();

            bus.Subscribe(target);

            bus.Publish <TestMessage>();

            Assert.That(dispatchedOnUIThread, Is.False);
        }
Esempio n. 7
0
        static void Main()
        {
            var queue = new BlockingCollectionTaskQueue <ISomething <string> >();

            var service = new Worker <ISomething <string> >(queue, SingleSubscriber.Create(new ConsoleDumper()),
                                                            new NullLogger());

            service.RunOnTask(CancellationToken.None);

            var y = queue.ToAsync();

            while (true)
            {
                var s = Console.ReadLine();
                y.Bar(s);
            }
        }
        public void SameTargetCanOnlySubscribeOnce()
        {
            var bus = new DirectDispatchMessageBus();

            var target = new SingleSubscriber();
            bus.Subscribe(target);
            bus.Subscribe(target);

            bus.Publish<TestMessage>();

            Assert.That(target.ReceivedMessages, Is.EqualTo(1));
        }
        public void MessageIsDispatchedOnCallingThreadByDefault()
        {
            var dispatchedOnUIThread = false;
            var bus = new MessageBus(action =>
                {
                    dispatchedOnUIThread = true;
                    action();
                });

            var target = new SingleSubscriber();
            bus.Subscribe(target);

            bus.Publish<TestMessage>();

            Assert.That(dispatchedOnUIThread, Is.False);
        }