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