Example #1
0
        public void TestAddRemoveSubscriber()
        {
            var foo             = new Mock <EventHandler>();
            var bar             = new Mock <EventHandler>();
            var eventSubscriber = new Mock <IEventSubscriber>();

            eventSubscriber.Setup((o) => o.GetSubscribedEvents())
            .Returns(new Dictionary <string, EventHandler>()
            {
                { "foo", foo.Object },
                { "bar", bar.Object },
            });

            dispatcher.AddSubscriber(eventSubscriber.Object);
            dispatcher.Dispatch("foo", this);

            foo.Verify((o) => o.Invoke(this, It.IsAny <BucketEventArgs>()), Times.Once);
            bar.Verify((o) => o.Invoke(this, It.IsAny <BucketEventArgs>()), Times.Never);

            dispatcher.RemoveSubscriber(eventSubscriber.Object);
            dispatcher.Dispatch("bar", this);

            foo.Verify((o) => o.Invoke(this, It.IsAny <BucketEventArgs>()), Times.Once);
            bar.Verify((o) => o.Invoke(this, It.IsAny <BucketEventArgs>()), Times.Never);
        }