public void LifeCycleTest() { var listener1Success = false; var eventPublisher = new TestEventPublisher(); var listener1 = new LivetWeakEventListener<EventHandler, EventArgs>( h => new EventHandler(h), h => eventPublisher.EmptyEvent += h, h => eventPublisher.EmptyEvent -= h, (sender, e) => listener1Success = true); //------------------ listener1Success.Is(false); eventPublisher.RaiseEmptyEvent(); listener1Success.Is(true); //------------------ listener1Success = false; listener1.Dispose(); eventPublisher.RaiseEmptyEvent(); listener1Success.Is(false); }
public void WeakEventTest() { var listener1Success = false; var eventPublisher = new TestEventPublisher(); var listener1 = new LivetWeakEventListener<EventHandler, EventArgs>( h => new EventHandler(h), h => eventPublisher.EmptyEvent += h, h => eventPublisher.EmptyEvent -= h, (sender, e) => listener1Success = true); var listenerWeakReference = new WeakReference(listener1); //------------------ listener1Success.Is(false); eventPublisher.RaiseEmptyEvent(); listener1Success.Is(true); //------------------ listener1Success = false; listener1 = null; GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); eventPublisher.RaiseEmptyEvent(); listener1Success.Is(false); }
public void LifeCycleTest() { var listener1Success = false; var listener2Success = false; var eventPublisher = new TestEventPublisher(); var listener1 = GetEmptyListener(eventPublisher, (sender, e) => listener1Success = true); var listener2 = GetStringListener(eventPublisher, (sender, e) => listener2Success = true); //------------------ listener1Success.Is(false); listener2Success.Is(false); eventPublisher.RaiseEmptyEvent(); eventPublisher.RaiseStringEvent(string.Empty); listener1Success.Is(true); listener2Success.Is(true); //------------------ listener1Success = false; listener2Success = false; listener1.Dispose(); listener2.Dispose(); eventPublisher.RaiseEmptyEvent(); eventPublisher.RaiseStringEvent(string.Empty); listener1Success.Is(false); listener2Success.Is(false); }