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());
        }