public void ObserveControlAndSendToCommand(bool commandEnabled, bool binderActiveDuringEvent, bool expectUpdated) { // Arrange string mouseMoveButton = null; _command.ExecuteAction = parm => { mouseMoveButton = parm; }; _command.CanExecuteCondition = vm => commandEnabled; _binder.Observe(_button.MouseMoveButton).Execute(_command); // Act if (!binderActiveDuringEvent) { _binder.Dispose(); } _button.PerformMouseMove(new MouseEventArgs(MouseButtons.Right, 0, 0, 0, 0)); var expected = expectUpdated ? "Right" : null; // Assert Assert.That(mouseMoveButton, Is.EqualTo(expected)); }
public void SpecifyDefaultScheduler() { // Arrange _binder = Create.Binder(_viewModel); var task = new Task <int>(() => 5); _viewModel.MyObservable = task.ToObservable(); var bindingThread = Thread.CurrentThread; Thread actionThread = null; _binder.Observe(_viewModel.MyObservable).Subscribe(x => actionThread = Thread.CurrentThread); // Act task.Start(); task.Wait(); ConditionalWait.WaitFor(() => actionThread != null); // Assert Assert.That(actionThread, Is.Not.SameAs(bindingThread)); }