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

            Assert.That(() => sub1.Subscribe(null, 4),
                        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();
        }