public void SubscribeUnsubscribeAndInvoke() { eventClass = new BasicEventClass(); eventClass.BasicEvent += InvokableMethod; eventClass.BasicEvent -= InvokableMethod; eventClass.RaiseBasicEventWithNoArgs(); }
public void SubscribeAndInvokeMultipleTimes() { int times = 10; eventClass = new BasicEventClass(); eventClass.BasicEvent += InvokableMethod; for (int i = 0; i < times; i++) { eventClass.RaiseBasicEventWithNoArgs(); } }
public void SubscribeUnsubscribeAndInvoke2() { int subscribeCount = 10; int unsubscribeCount = 5; eventClass = new BasicEventClass(); var subscribeToBasicEvent = new Action(() => eventClass.BasicEvent += InvokableMethod); ActionExecutor(subscribeToBasicEvent, subscribeCount); var unsubscribeToBasicEvent = new Action(() => eventClass.BasicEvent -= InvokableMethod); ActionExecutor(unsubscribeToBasicEvent, unsubscribeCount); eventClass.RaiseBasicEventWithNoArgs(); }
public void SafeSubscribePractice() { eventClass = new BasicEventClass(); eventClass.SafeSubscribe(InvokableMethod); // Expect a single invocation of the InvokableMethod; eventClass.RaiseBasicEventWithNoArgs(); eventClass.SafeSubscribe(InvokableMethod); // Expect a single invocation of the InvokableMethod; eventClass.RaiseBasicEventWithNoArgs(); eventClass.SafeUnsubscribe(InvokableMethod); eventClass.RaiseBasicEventWithNoArgs(); }