Beispiel #1
0
        public void TestPropagationStopped()
        {
            var fooFirst  = new Mock <EventHandler>();
            var fooSecond = new Mock <EventHandler>();
            var args      = new BucketEventArgs("foo");

            dispatcher.AddListener("foo", fooFirst.Object);
            dispatcher.AddListener("foo", fooSecond.Object);

            dispatcher.Dispatch("foo", this, args);
            fooFirst.Verify((o) => o.Invoke(this, It.IsAny <BucketEventArgs>()), Times.Once);
            fooSecond.Verify((o) => o.Invoke(this, It.IsAny <BucketEventArgs>()), Times.Once);

            fooFirst.Setup((o) => o.Invoke(this, It.IsAny <BucketEventArgs>())).Callback(() => args.StopPropagation());
            dispatcher.Dispatch("foo", this, args);
            fooFirst.Verify((o) => o.Invoke(this, It.IsAny <BucketEventArgs>()), Times.Exactly(2));
            fooSecond.Verify((o) => o.Invoke(this, It.IsAny <BucketEventArgs>()), Times.Once);
        }