Beispiel #1
0
        public void GivenMultipleSubscriptionToTypedMessage_WhenMessagePublished_SubscriberNotified()
        {
            var publisher  = new CommonPublisher();
            var subscriber = new NotifiableSubscriber();

            MessageBus.Default.FromAny().Where <MessageWithSource>().Notify(subscriber);

            MessageBus.Default.Publish(new MessageWithSource(publisher));

            Assert.IsTrue(subscriber.IsNotified);
        }
Beispiel #2
0
        public void GivenAnyPublisher_WhenMessagePublished_SubscriberToAnyPublisherNotified()
        {
            var publisher  = new CommonPublisher();
            var subscriber = new NotifiableSubscriber();

            MessageBus.Default.FromAny().Notify(subscriber);

            MessageBus.Default.Publish(publisher.Message());

            Assert.IsTrue(subscriber.IsNotified);
        }
Beispiel #3
0
        public void GivenMultiplePublishers_WhenMessagePublished_SubscriberToOtherPublisherNotNotified()
        {
            var publisher  = new CommonPublisher();
            var subscriber = new NotifiableSubscriber();

            MessageBus.Default.From(new object()).Notify(subscriber);

            MessageBus.Default.Publish(publisher.Message());

            Assert.IsFalse(subscriber.IsNotified);
        }
Beispiel #4
0
        public void GivenRegisteredSubscriber_WhenMessagePublished_OtherSubscriberNotNotified()
        {
            var otherSubscriber = new NotifiableSubscriber();
            var publisher       = new CommonPublisher();

            MessageBus.Default.From(new object()).Notify(new NotifiableSubscriber());

            MessageBus.Default.Publish(publisher.Message());

            Assert.IsFalse(otherSubscriber.IsNotified);
        }
Beispiel #5
0
        public void GivenMultipleRegisteredSubscribers_WhenMessagePublished_AllSubscribersNotified()
        {
            var publisher       = new CommonPublisher();
            var firstSubscriber = new NotifiableSubscriber();

            MessageBus.Default.From(publisher).Notify(firstSubscriber);
            var secondSubscriber = new NotifiableSubscriber();

            MessageBus.Default.From(publisher).Notify(secondSubscriber);

            MessageBus.Default.Publish(publisher.Message());

            Assert.IsTrue(firstSubscriber.IsNotified && secondSubscriber.IsNotified);
        }
Beispiel #6
0
        public void GiveSubscriber_WhenSubscriberDisposed_SubscriberNotReferenced()
        {
            WeakReference subscriberWeakReference = null;

            new Action(() =>
            {
                var subscriber = new NotifiableSubscriber();
                MessageBus.Default.FromAny().Notify(subscriber);

                subscriberWeakReference = new WeakReference(subscriber);
            })();

            GC.Collect();
            GC.WaitForPendingFinalizers();

            Assert.IsFalse(subscriberWeakReference.IsAlive);
        }