Example #1
0
        public void DisposingOfSubscriptionUnregistersEvent()
        {
            var sink = new EventSink();
            var mockListener = new Mock<IEventListener>();
            mockListener.Setup(l => l.OnGenericEvent()).Verifiable();

            using(EventManager.SubscribeTo<IEventListener, EventArgs>(
                h => sink.GenericEvent += h,
                h => sink.GenericEvent -= h,
                mockListener.Object,
                (l, args) => l.OnGenericEvent()
            )) {
                sink.OnGenericEvent(EventArgs.Empty);
                sink.OnGenericEvent(EventArgs.Empty);
            }

            sink.OnGenericEvent(EventArgs.Empty);
            mockListener.Verify(l => l.OnGenericEvent(), Times.Exactly(2));
        }
Example #2
0
        public void SubscribedEventIsActedOn()
        {
            var sink = new EventSink();
            var mockListener = new Mock<IEventListener>();
            mockListener.Setup(l=>l.OnGenericEvent()).Verifiable();

            EventManager.SubscribeTo<IEventListener, EventArgs>(
                h => sink.GenericEvent += h,
                h => sink.GenericEvent -= h,
                mockListener.Object,
                (l,args)=>l.OnGenericEvent()
            );

            sink.OnGenericEvent(EventArgs.Empty);
            mockListener.Verify(l=>l.OnGenericEvent(), Times.Once());
        }