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

            bus.Subscribe(new SingleSubscriber());
            GC.Collect();

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

            Assert.That(message.LastReceiver, Is.Null);
        }
        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 override void Handle(TestMessage message)
 {
     base.Handle(message);
 }