public void SetupEventBroker() { "Establish an event broker".x(() => this.eventBroker = new EventBroker()); "Establish a registered named publisher".x(() => { this.publisher = new ScopeEvent.NamedPublisher("Test.One"); this.eventBroker.Register(this.publisher); }); "Establish a registered named subscriber parent".x(() => { this.subscriberParent = new ScopeEvent.NamedSubscriber("Test"); this.eventBroker.Register(this.subscriberParent); }); "Establish a registered named subscriber twin".x(() => { this.subscriberTwin = new ScopeEvent.NamedSubscriber("Test.One"); this.eventBroker.Register(this.subscriberTwin); }); "Establish a registered named subscriber sibling".x(() => { this.subscriberSibling = new ScopeEvent.NamedSubscriber("Test.Two"); this.eventBroker.Register(this.subscriberSibling); }); "Establish a registered named subscriber child".x(() => { this.subscriberChild = new ScopeEvent.NamedSubscriber("Test.One.Child"); this.eventBroker.Register(this.subscriberChild); }); }
public void Match( EventBroker eventBroker, ScopeEvent.NamedPublisher publisher, ScopeEvent.NamedSubscriber matchingSubscriber, ScopeEvent.NamedSubscriber nonMatchingSubscriber) { "Establish an event broker with a matcher".x(() => eventBroker = new EventBroker()); "Establish a registered named publisher".x(() => { publisher = new ScopeEvent.NamedPublisher("A.Name"); eventBroker.Register(publisher); }); "Establish a registered matching subscriber".x(() => { matchingSubscriber = new ScopeEvent.NamedSubscriber("A.Name"); eventBroker.Register(matchingSubscriber); }); "Establish a registered not matching subscriber".x(() => { nonMatchingSubscriber = new ScopeEvent.NamedSubscriber("A"); eventBroker.Register(nonMatchingSubscriber); }); "When firing an event".x(() => publisher.FireEventToChildrenAndSiblings()); "It should call subscriber method of matching subscriber".x(() => matchingSubscriber.CalledFromParent .Should().BeTrue()); "It should not call subscriber method of non matching subscriber".x(() => nonMatchingSubscriber.CalledFromParent .Should().BeFalse()); }