예제 #1
0
        public void ShouldAddDelegateToPublishingEventOnAddingPublisher()
        {
            PublishedEvent pe = new PublishedEvent();
            EventSource1 publisher = new EventSource1();

            pe.AddPublisher(publisher, "Event1");

            Assert.AreEqual(1, publisher.NumberOfEvent1Delegates);
        }
예제 #2
0
        public void ShouldAddDelegateToPublishingEventOnAddingPublisher()
        {
            PublishedEvent pe        = new PublishedEvent();
            EventSource1   publisher = new EventSource1();

            pe.AddPublisher(publisher, "Event1");

            Assert.AreEqual(1, publisher.NumberOfEvent1Delegates);
        }
예제 #3
0
        public void ShouldRemoveDelegateWhenRemovingPublisher()
        {
            PublishedEvent pe = new PublishedEvent();
            EventSource1 publisher = new EventSource1();
            pe.AddPublisher(publisher, "Event1");

            pe.RemovePublisher(publisher, "Event1");

            Assert.AreEqual(0, publisher.NumberOfEvent1Delegates);
        }
예제 #4
0
        public void ShouldRemoveDelegateWhenRemovingPublisher()
        {
            PublishedEvent pe        = new PublishedEvent();
            EventSource1   publisher = new EventSource1();

            pe.AddPublisher(publisher, "Event1");

            pe.RemovePublisher(publisher, "Event1");

            Assert.AreEqual(0, publisher.NumberOfEvent1Delegates);
        }
예제 #5
0
        public void ShouldRemovePublisherFromListOnUnregistration()
        {
            EventBroker  broker             = new EventBroker();
            EventSource1 publisher          = new EventSource1();
            string       publishedEventName = "MyEvent";

            broker.RegisterPublisher(publishedEventName, publisher, "Event1");

            broker.UnregisterPublisher(publishedEventName, publisher, "Event1");

            Assert.AreEqual(0, new List <object>(broker.GetPublishersFor(publishedEventName)).Count);
        }
예제 #6
0
        public void ShouldCallSubscriberWhenPublisherFiresEvent()
        {
            PublishedEvent pe = new PublishedEvent();
            EventSource1 publisher = new EventSource1();
            pe.AddPublisher(publisher, "Event1");
            bool subscriberCalled = false;
            EventHandler subscriber = delegate { subscriberCalled = true; };
            pe.AddSubscriber(subscriber);

            publisher.FireEvent1();

            Assert.IsTrue(subscriberCalled);
        }
예제 #7
0
        public void ShouldRegisterOnePublisher()
        {
            EventBroker broker = new EventBroker();
            EventSource1 publisher = new EventSource1();

            broker.RegisterPublisher("PublishedEvent1", publisher, "Event1");

            List<string> published = new List<string>(broker.RegisteredEvents);
            List<object> publishers = new List<object>(broker.GetPublishersFor("PublishedEvent1"));

            Assert.IsTrue(published.Contains("PublishedEvent1"));
            Assert.AreEqual(1, publishers.Count);
            Assert.AreSame(publisher, publishers[0]);
        }
예제 #8
0
        public void ShouldRegisterOnePublisher()
        {
            EventBroker  broker    = new EventBroker();
            EventSource1 publisher = new EventSource1();

            broker.RegisterPublisher("PublishedEvent1", publisher, "Event1");

            List <string> published  = new List <string>(broker.RegisteredEvents);
            List <object> publishers = new List <object>(broker.GetPublishersFor("PublishedEvent1"));

            Assert.IsTrue(published.Contains("PublishedEvent1"));
            Assert.AreEqual(1, publishers.Count);
            Assert.AreSame(publisher, publishers[0]);
        }
예제 #9
0
        public void ShouldCallSubscriberWhenPublisherFiresEvent()
        {
            EventBroker  broker             = new EventBroker();
            EventSource1 publisher          = new EventSource1();
            string       publishedEventName = "MyEvent";
            bool         subscriberFired    = false;
            EventHandler subscriber         = delegate { subscriberFired = true; };

            broker.RegisterPublisher(publishedEventName, publisher, "Event1");
            broker.RegisterSubscriber(publishedEventName, subscriber);

            publisher.FireEvent1();

            Assert.IsTrue(subscriberFired);
        }
예제 #10
0
        public void ShouldCallSubscriberWhenPublisherFiresEvent()
        {
            PublishedEvent pe        = new PublishedEvent();
            EventSource1   publisher = new EventSource1();

            pe.AddPublisher(publisher, "Event1");
            bool         subscriberCalled = false;
            EventHandler subscriber       = delegate { subscriberCalled = true; };

            pe.AddSubscriber(subscriber);

            publisher.FireEvent1();

            Assert.IsTrue(subscriberCalled);
        }
예제 #11
0
        public void ShouldCallSubscriberWhenPublisherFiresEvent()
        {
            EventBroker broker = new EventBroker();
            EventSource1 publisher = new EventSource1();
            string publishedEventName = "MyEvent";
            bool subscriberFired = false;
            EventHandler subscriber = delegate { subscriberFired = true;  };

            broker.RegisterPublisher(publishedEventName, publisher, "Event1");
            broker.RegisterSubscriber(publishedEventName, subscriber);

            publisher.FireEvent1();

            Assert.IsTrue(subscriberFired);
        }
예제 #12
0
        public void ShouldNotCallSubscriberAfterRemoval()
        {
            PublishedEvent pe = new PublishedEvent();
            EventSource1 publisher = new EventSource1();
            pe.AddPublisher(publisher, "Event1");
            int numberOfSubscriberCalls = 0;
            EventHandler subscriber = delegate { ++numberOfSubscriberCalls; };
            pe.AddSubscriber(subscriber);

            publisher.FireEvent1();

            pe.RemoveSubscriber(subscriber);
            publisher.FireEvent1();

            Assert.AreEqual(1, numberOfSubscriberCalls);
        }
예제 #13
0
        public void ShouldMulticastEventsToMultipleSubscribers()
        {
            PublishedEvent pe = new PublishedEvent();
            EventSource1 publisher = new EventSource1();
            pe.AddPublisher(publisher, "Event1");
            bool subscriber1Called = false;
            EventHandler subscriber1 = delegate { subscriber1Called = true; };
            bool subscriber2Called = false;
            EventHandler subscriber2 = delegate { subscriber2Called = true; };
            pe.AddSubscriber(subscriber1);
            pe.AddSubscriber(subscriber2);

            publisher.FireEvent1();

            Assert.IsTrue(subscriber1Called);
            Assert.IsTrue(subscriber2Called);
        }
예제 #14
0
        public void ShouldNotCallSubscriberAfterRemoval()
        {
            PublishedEvent pe        = new PublishedEvent();
            EventSource1   publisher = new EventSource1();

            pe.AddPublisher(publisher, "Event1");
            int          numberOfSubscriberCalls = 0;
            EventHandler subscriber = delegate { ++numberOfSubscriberCalls; };

            pe.AddSubscriber(subscriber);

            publisher.FireEvent1();

            pe.RemoveSubscriber(subscriber);
            publisher.FireEvent1();

            Assert.AreEqual(1, numberOfSubscriberCalls);
        }
예제 #15
0
        public void ShouldMulticastEventsToMultipleSubscribers()
        {
            PublishedEvent pe        = new PublishedEvent();
            EventSource1   publisher = new EventSource1();

            pe.AddPublisher(publisher, "Event1");
            bool         subscriber1Called = false;
            EventHandler subscriber1       = delegate { subscriber1Called = true; };
            bool         subscriber2Called = false;
            EventHandler subscriber2       = delegate { subscriber2Called = true; };

            pe.AddSubscriber(subscriber1);
            pe.AddSubscriber(subscriber2);

            publisher.FireEvent1();

            Assert.IsTrue(subscriber1Called);
            Assert.IsTrue(subscriber2Called);
        }
예제 #16
0
        public void ShouldRegisterOnePublisherAndOneSubscriber()
        {
            EventBroker  broker             = new EventBroker();
            EventSource1 publisher          = new EventSource1();
            string       publishedEventName = "MyEvent";
            EventHandler subscriber         = delegate { };

            broker.RegisterPublisher(publishedEventName, publisher, "Event1");
            broker.RegisterSubscriber(publishedEventName, subscriber);

            List <string>       published   = new List <string>(broker.RegisteredEvents);
            List <object>       publishers  = new List <object>(broker.GetPublishersFor(publishedEventName));
            List <EventHandler> subscribers = new List <EventHandler>(broker.GetSubscribersFor(publishedEventName));

            Assert.AreEqual(1, published.Count);
            Assert.AreEqual(publishedEventName, published[0]);

            Assert.AreEqual(1, publishers.Count);
            Assert.AreSame(publisher, publishers[0]);

            Assert.AreEqual(1, subscribers.Count);
            Assert.AreSame(subscriber, subscribers[0]);
        }
예제 #17
0
        public void ShouldRegisterOnePublisherAndOneSubscriber()
        {
            EventBroker broker = new EventBroker();
            EventSource1 publisher = new EventSource1();
            string publishedEventName = "MyEvent";
            EventHandler subscriber = delegate { };

            broker.RegisterPublisher(publishedEventName, publisher, "Event1");
            broker.RegisterSubscriber(publishedEventName, subscriber);
            
            List<string> published = new List<string>(broker.RegisteredEvents);
            List<object> publishers = new List<object>(broker.GetPublishersFor(publishedEventName));
            List<EventHandler> subscribers = new List<EventHandler>(broker.GetSubscribersFor(publishedEventName));

            Assert.AreEqual(1, published.Count);
            Assert.AreEqual(publishedEventName, published[0]);

            Assert.AreEqual(1, publishers.Count);
            Assert.AreSame(publisher, publishers[0]);

            Assert.AreEqual(1, subscribers.Count);
            Assert.AreSame(subscriber, subscribers[0]);
        }
예제 #18
0
        public void ShouldRemovePublisherFromListOnUnregistration()
        {
            EventBroker broker = new EventBroker();
            EventSource1 publisher = new EventSource1();
            string publishedEventName = "MyEvent";
            broker.RegisterPublisher(publishedEventName, publisher, "Event1");

            broker.UnregisterPublisher(publishedEventName, publisher, "Event1");

            Assert.AreEqual(0, new List<object>(broker.GetPublishersFor(publishedEventName)).Count);
        }