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 ShouldRegisterOneSubscriber() { EventBroker broker = new EventBroker(); EventHandler subscriber = delegate { }; broker.RegisterSubscriber("SubscribedEvent1", subscriber); List<string> published = new List<string>(broker.RegisteredEvents); List<object> publishers = new List<object>(broker.GetPublishersFor("SubscribedEvent1")); List<EventHandler> subscribers = new List<EventHandler>(broker.GetSubscribersFor("SubscribedEvent1")); Assert.AreEqual(1, published.Count); Assert.AreEqual("SubscribedEvent1", published[0]); Assert.AreEqual(0, publishers.Count); Assert.AreEqual(1, subscribers.Count); Assert.AreSame(subscriber, subscribers[0]); }
public void StrategyProperlyWiresEvents() { MockBuilderContext context = CreateContext(); NamedTypeBuildKey buildKey = NamedTypeBuildKey.Make<ClipboardManager>(); EventBroker broker = new EventBroker(); var brokerLifetime = new ExternallyControlledLifetimeManager(); brokerLifetime.SetValue(broker); context.Policies.Set<ILifetimePolicy>(brokerLifetime, NamedTypeBuildKey.Make<EventBroker>()); EventBrokerInfoPolicy policy = new EventBrokerInfoPolicy(); policy.AddPublication("cut", "Cut"); policy.AddPublication("copy", "Copy"); policy.AddPublication("paste", "Paste"); policy.AddSubscription("copy", typeof(ClipboardManager).GetMethod("OnCopy")); policy.AddSubscription("clipboard data available", typeof(ClipboardManager).GetMethod("OnClipboardDataAvailable")); context.Policies.Set<IEventBrokerInfoPolicy>(policy, buildKey); ClipboardManager existing = new ClipboardManager(); context.ExecuteBuildUp(buildKey, existing); List<string> registeredEvents = new List<string>(broker.RegisteredEvents); registeredEvents.Sort(); List<string> expectedEvents = new List<string>(new string[] { "cut", "copy", "paste", "clipboard data available" }); expectedEvents.Sort(); CollectionAssert.AreEqual(expectedEvents, registeredEvents); }
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 ShouldRemoveSubscriberFromListOnUnregistration() { EventBroker broker = new EventBroker(); string publishedEventName = "SomeEvent"; EventHandler subscriber = delegate { }; broker.RegisterSubscriber(publishedEventName, subscriber); broker.UnregisterSubscriber(publishedEventName, subscriber); Assert.AreEqual(0, new List<EventHandler>(broker.GetSubscribersFor(publishedEventName)).Count); }
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); }