public void ShouldThrowIfExecuteMethodDelegateNull() { Assert.Throws <ArgumentNullException>( () => { var command = new global::Anori.WinUI.Commands.AsyncRelayCommand <object>(null); }); }
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 WhenConstructedWithGenericTypeOfObject_InitializesValues() { // Prepare // Act var actual = new global::Anori.WinUI.Commands.AsyncRelayCommand <object>(async o => await Task.Yield()); // verify Assert.NotNull(actual); }
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 GenericAsyncRelayCommandNotObservingPropertiesShouldNotRaiseOnEmptyPropertyName() { var canExecuteChangedRaised = false; var commandTestObject = new CommandTestObject(); var command = new global::Anori.WinUI.Commands.AsyncRelayCommand <object>(async o => await Task.Yield()); command.CanExecuteChanged += delegate { canExecuteChangedRaised = true; }; commandTestObject.RaisePropertyChanged(null); 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 CanRemoveCanExecuteChangedHandler() { var command = new global::Anori.WinUI.Commands.AsyncRelayCommand <object>(async o => await Task.Yield()); var canExecuteChangedRaised = false; void Handler(object s, EventArgs e) => canExecuteChangedRaised = true; command.CanExecuteChanged += Handler; command.CanExecuteChanged -= Handler; command.RaiseCanExecuteChanged(); Assert.False(canExecuteChangedRaised); }
public void ShouldPassParameterInstanceOnCanExecute() { var canExecuteCalled = false; var testClass = new MyClass(); ICommand command = new global::Anori.WinUI.Commands.AsyncRelayCommand <MyClass>( async o => await Task.Yield(), delegate(MyClass parameter) { Assert.AreSame(testClass, parameter); canExecuteCalled = true; return(true); }); command.CanExecute(testClass); Assert.True(canExecuteCalled); }
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); }
public void WhenConstructedWithGenericTypeIsNonNullableValueType_Throws() { ICommand command = new global::Anori.WinUI.Commands.AsyncRelayCommand <int>(async o => await Task.Yield(), exception => { }); Assert.Throws <InvalidCastException>(() => { command.Execute(new object()); }); }