public void Unsubscribe_CountdownNull_ThrowsArgumentNullException()
        {
            var sub1 = new TestSubscriber1();

            Assert.That(() => sub1.Unsubscribe(null),
                        Throws.ArgumentNullException.
                        With.Message.EqualTo(nullExceptionMessage));
        }
        public void Subscribe_NegativeWaitSeconds_ThrowsArgumentException()
        {
            var sub1 = new TestSubscriber1();
            var cd   = new Countdown();

            Assert.That(() => sub1.Subscribe(cd, -1),
                        Throws.ArgumentException.
                        With.Message.EqualTo("You can't wait for negative number of seconds.\r\nParameter name: waitSeconds"));
        }
        static void Main(string[] args)
        {
            Countdown cd = new Countdown();

            var sub1 = new TestSubscriber1();
            var sub2 = new TestSubscriber2();

            sub1.Subscribe(cd, 4);
            sub2.Subscribe(cd, 2);

            cd.SendMessages();
        }
Example #4
0
        public void TestMultipleSubscribersAllReceivingTheMessage()
        {
            var subscriber1 = new TestSubscriber1();
            var subscriber2 = new TestSubscriber1();

            MessageBusOf <TestMessage1> .AcceptSubscriber(subscriber1);

            MessageBusOf <TestMessage1> .AcceptSubscriber(subscriber2);

            MessageBusOf <TestMessage1> .Receive(new TestMessage1());

            Assert.IsTrue(subscriber1.handlerWasExecuted);
            Assert.IsTrue(subscriber2.handlerWasExecuted);
        }
Example #5
0
        public void TestMultipleBussesNotInterferingWithEachother()
        {
            var subscriber1 = new TestSubscriber1();
            var subscriber2 = new TestSubscriber2();

            MessageBusOf <TestMessage1> .AcceptSubscriber(subscriber1);

            MessageBusOf <TestMessage2> .AcceptSubscriber(subscriber2);

            MessageBusOf <TestMessage2> .Receive(new TestMessage2());

            Assert.IsTrue(subscriber2.handlerWasExecuted);
            Assert.IsFalse(subscriber1.handlerWasExecuted);

            // reset sub2's status
            subscriber2.handlerWasExecuted = false;

            MessageBusOf <TestMessage1> .Receive(new TestMessage1());

            Assert.IsFalse(subscriber2.handlerWasExecuted);
            Assert.IsTrue(subscriber1.handlerWasExecuted);
        }