public void ShouldKeepWeakReferenceToOnCanExecuteChangedHandlers() { var command = new TestableCompositeCommand(); var handlers = new CanExecutChangeHandler(); var weakHandlerRef = new WeakReference(handlers); command.CanExecuteChanged += handlers.CanExecuteChangeHandler; handlers = null; GC.Collect(); Assert.IsFalse(weakHandlerRef.IsAlive); }
public void ShouldKeepWeakReferenceToOnCanExecuteChangedHandlers() { var command = new TestableCompositeCommand(); var handlers = new CanExecutChangeHandler(); var weakHandlerRef = new WeakReference(handlers); command.CanExecuteChanged += handlers.CanExecuteChangeHandler; handlers = null; GC.Collect(); Assert.IsFalse(weakHandlerRef.IsAlive); Assert.IsNotNull(command); // Only here to ensure command survives optimizations and the GC.Collect }
public void ShouldKeepStrongReferenceToOnCanExecuteChangedHandlers() { var command = new DelegateCommand <MyClass>((MyClass c) => { }); var handlers = new CanExecutChangeHandler(); var weakHandlerRef = new WeakReference(handlers); command.CanExecuteChanged += handlers.CanExecuteChangeHandler; handlers = null; GC.Collect(); Assert.IsTrue(weakHandlerRef.IsAlive); Assert.IsNotNull(command); // Only here to ensure command survives optimizations and the GC.Collect }
public void ShouldKeepWeakReferenceToOnCanExecuteChangedHandlers() { var command = new DelegateCommand <MyClass>((MyClass c) => { }); var handlers = new CanExecutChangeHandler(); var weakHandlerRef = new WeakReference(handlers); command.CanExecuteChanged += handlers.CanExecuteChangeHandler; handlers = null; GC.Collect(); command.RaiseCanExecuteChanged(); Assert.IsFalse(weakHandlerRef.IsAlive); }
public void ShouldKeepWeakReferenceToOnCanExecuteChangedHandlers() { var command = new DelegateCommand<MyClass>((MyClass c) => { }); var handlers = new CanExecutChangeHandler(); var weakHandlerRef = new WeakReference(handlers); command.CanExecuteChanged += handlers.CanExecuteChangeHandler; handlers = null; GC.Collect(); command.RaiseCanExecuteChanged(); Assert.IsFalse(weakHandlerRef.IsAlive); Assert.IsNotNull(command); // Only here to ensure command survives optimizations and the GC.Collect }
public void ShouldKeepStrongReferenceToOnCanExecuteChangedHandlers() { var command = new TestableCompositeCommand(); var handlers = new CanExecutChangeHandler(); var weakHandlerRef = new WeakReference(handlers); Assert.IsTrue(weakHandlerRef.IsAlive, "FirstOne"); command.CanExecuteChanged += handlers.CanExecuteChangeHandler; handlers = null; GC.Collect(); Assert.IsTrue(weakHandlerRef.IsAlive); Assert.IsNotNull(command); // Only here to ensure command survives optimizations and the GC.Collect }
public void ShouldKeepWeakReferenceToOnCanExecuteChangedHandlers() { var command = new DelegateCommand<MyClass>((MyClass c) => { }); var handlers = new CanExecutChangeHandler(); var weakHandlerRef = new WeakReference(handlers); command.CanExecuteChanged += handlers.CanExecuteChangeHandler; handlers = null; GC.Collect(); command.RaiseCanExecuteChanged(); Assert.IsFalse(weakHandlerRef.IsAlive); }