public void WhenPolledIsFiredTheSourcePointToTheAggregatorNotTheFiringServer()
        {
            StubServerMonitor stubServerMonitor1 = new StubServerMonitor("tcp://1.2.3.4/");

            aggregator         = new AggregatingServerMonitor(stubServerMonitor1);
            aggregator.Polled += new MonitorServerPolledEventHandler(Aggregator_Polled);

            aggregator.Poll();

            Assert.AreSame(lastPolledSource, aggregator);
            Assert.AreSame(lastPolledArgs.ServerMonitor, stubServerMonitor1);
        }
        public void PolledIsFiredWheneverAnyContainedServerFiresIt()
        {
            pollCount = 0;

            StubServerMonitor stubServerMonitor1 = new StubServerMonitor("tcp://1.2.3.4/");
            StubServerMonitor stubServerMonitor2 = new StubServerMonitor("tcp://1.2.3.5/");

            aggregator         = new AggregatingServerMonitor(stubServerMonitor1, stubServerMonitor2);
            aggregator.Polled += new MonitorServerPolledEventHandler(Aggregator_Polled);

            Assert.AreEqual(0, pollCount);
            stubServerMonitor1.Poll();

            Assert.AreEqual(1, pollCount);
        }
        public void QueueChangedIsFiredWheneverAnyContainedServerFiresIt()
        {
            queueChangedCount         = 0;
            lastQueueChangedEventArgs = null;

            StubServerMonitor stubServerMonitor1 = new StubServerMonitor("tcp://somehost1/");
            StubServerMonitor stubServerMonitor2 = new StubServerMonitor("tcp://somehost2/");

            aggregator = new AggregatingServerMonitor(stubServerMonitor1, stubServerMonitor2);
            aggregator.QueueChanged += new MonitorServerQueueChangedEventHandler(Aggregator_QueueChanged);

            Assert.AreEqual(0, queueChangedCount);
            stubServerMonitor1.OnQueueChanged(new MonitorServerQueueChangedEventArgs(stubServerMonitor1));

            Assert.AreEqual(1, queueChangedCount);
            Assert.AreSame(stubServerMonitor1, lastQueueChangedEventArgs.ServerMonitor);
        }