public void ShouldAddDelegateToPublishingEventOnAddingPublisher() { PublishedEvent pe = new PublishedEvent(); EventSource1 publisher = new EventSource1(); pe.AddPublisher(publisher, "Event1"); Assert.AreEqual(1, publisher.NumberOfEvent1Delegates); }
public void ShouldRemoveDelegateWhenRemovingPublisher() { PublishedEvent pe = new PublishedEvent(); EventSource1 publisher = new EventSource1(); pe.AddPublisher(publisher, "Event1"); pe.RemovePublisher(publisher, "Event1"); Assert.AreEqual(0, publisher.NumberOfEvent1Delegates); }
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); }
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); }
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]); }
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]); }
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); }
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); }
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); }
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]); }
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]); }
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); }