private PublishedEvent GetEvent(string eventName) { if(!eventPublishers.ContainsKey(eventName)) { eventPublishers[eventName] = new PublishedEvent(); } return eventPublishers[eventName]; }
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 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 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 RegisterSubscriber(string publishedEventName, EventHandler subscriber) { PublishedEvent publishedEvent = GetEvent(publishedEventName); publishedEvent.AddSubscriber(subscriber); }
public void RegisterPublisher(string publishedEventName, object publisher, string eventName) { PublishedEvent @event = GetEvent(publishedEventName); @event.AddPublisher(publisher, eventName); }