public void RaiseCanExecuteChangedTest() { var executed = false; var canExecute = false; var command = new DelegateCommand(() => executed = true, () => canExecute); Assert.IsFalse(command.CanExecute(null)); canExecute = true; Assert.IsTrue(command.CanExecute(null)); AssertHelper.CanExecuteChangedEvent(command, () => command.RaiseCanExecuteChanged()); Assert.IsFalse(executed); }
public void MemoryTest() { DelegateCommand command = new DelegateCommand(() => { }); MockView view1 = new MockView(); command.CanExecuteChanged += view1.CanExecuteChangedHandler; command.RaiseCanExecuteChanged(); Assert.IsTrue(view1.CanExecuteChangedHandlerCalled); // Check that view1 is collected by the garbage collector. WeakReference weakReference = new WeakReference(view1); view1 = null; GC.Collect(); Assert.IsFalse(weakReference.IsAlive); MockView view2 = new MockView(); command.CanExecuteChanged += view2.CanExecuteChangedHandler; command.RaiseCanExecuteChanged(); Assert.IsTrue(view2.CanExecuteChangedHandlerCalled); // Check that after unwiring view2 the eventhandler is not called anymore. command.CanExecuteChanged -= view2.CanExecuteChangedHandler; view2.Clear(); command.RaiseCanExecuteChanged(); Assert.IsFalse(view2.CanExecuteChangedHandlerCalled); }