public void CanExecuteReturnsTrueWithoutCanExecuteDelegate() { var handlers = new AsyncDelegateObjectHandlers(); var command = new global::Anori.WinUI.Commands.AsyncRelayCommand <object>(async o => await handlers.Execute(o)); var condition = command.CanExecute(null); Assert.True(condition); }
public void RaiseCanExecuteChangedRaisesCanExecuteChanged() { var handlers = new AsyncDelegateObjectHandlers(); var command = new global::Anori.WinUI.Commands.AsyncRelayCommand <object>(async o => await handlers.Execute(o), o => false); var canExecuteChangedRaised = false; command.CanExecuteChanged += delegate { canExecuteChangedRaised = true; }; command.RaiseCanExecuteChanged(); Assert.True(canExecuteChangedRaised); }
public void RaiseCanExecuteChangedNoCanExecuteNoRaiseCanExecuteChanged() { var handlers = new AsyncDelegateObjectHandlers(); var command = new WinUI.Commands.AsyncRelayCommand <object>(async o => await handlers.Execute(o)); var canExecuteChangedRaised = false; command.CanExecuteChanged += delegate { canExecuteChangedRaised = true; }; command.RaiseCanExecuteChanged(); Assert.False(canExecuteChangedRaised); }
public void CanExecuteCallsPassedInCanExecuteDelegate() { var handlers = new AsyncDelegateObjectHandlers(); var command = new global::Anori.WinUI.Commands.AsyncRelayCommand <object>(async o => await handlers.Execute(o), handlers.CanExecute); var parameter = new object(); handlers.CanExecuteReturnValue = true; var actual = command.CanExecute(parameter); Assert.AreSame(parameter, handlers.CanExecuteParameter); Assert.AreEqual(handlers.CanExecuteReturnValue, actual); }
public void ExecuteCallsPassedInExecuteDelegate() { var handlers = new AsyncDelegateObjectHandlers(); using var waitHandle = new EventWaitHandle(false, EventResetMode.AutoReset); var command = new global::Anori.WinUI.Commands.AsyncRelayCommand <object>(async o => { await handlers.Execute(o); waitHandle.Set(); }) as ICommand; var parameter = new object(); command.Execute(parameter); waitHandle.WaitOne(); Assert.AreSame(parameter, handlers.ExecuteParameter); }