public void When_invoked_then_method_is_called() { var vm = new MockViewModelWithAction(); var invoker = new MethodInfoInvoker<string>("Action", vm); invoker.Invoke("Foo"); Assert.IsTrue(vm.ActionCalled); }
public void When_invoked_then_method_is_called() { var vm = new MockViewModelWithAction(); var invoker = new ExpressionInvoker<string>(p => vm.Action(p)); invoker.Invoke("Foo"); Assert.IsTrue(vm.ActionCalled); }
public void Source_Is_Enabled_When_Target_ICommand_CanExecute_Is_True_During_Initialization() { var source = new MockEventSource(); var target = new MockViewModelWithAction(); var binder = new CommandBinder<MockEventArgs>(source, "MockEvent", target.Command); binder.Bind(); Assert.IsTrue(source.IsEnabled); }
public void Source_Gets_Disabled_When_Target_Command_Is_Disabled_During_Initialization_With_Expression() { var source = new MockEventSource(); var target = new MockViewModelWithAction() { IsActionEnabled = false }; var binder = new MethodBinder<MockEventArgs>(source, "MockEvent", e => this.SetAction(), p => target.IsActionEnabled,target); binder.Bind(); Assert.IsFalse(source.IsEnabled); }
public void Target_Command_CallCount_Is_Zero_After_Initialization_Of_CommandBinder() { var source = new MockEventSource(); var target = new MockViewModelWithAction(); var binder = new CommandBinder<MockEventArgs>(source, "MockEvent", target.Command); binder.Bind(); Assert.AreEqual(0, target.Command.CallCount); }
public void Source_Is_Disabled_When_Target_Command_Gets_Disabled_After_Initialization() { var source = new MockEventSource(); var target = new MockViewModelWithAction() {IsActionEnabled = true}; var binder = new MethodBinder<MockEventArgs>(source, "MockEvent", e => target.Action(), p => target.IsActionEnabled,target); binder.Bind(); target.IsActionEnabled = false; Assert.IsFalse(source.IsEnabled); }
public void MethodBinder_Doesnt_Support_Parameters_On_Actions() { var target = new MockViewModelWithAction(); AssertExt.ExpectException<NotSupportedException>(() => { var binder = new MethodBinder<MockEventArgs>(new UserControl(), "MockEvent", e => target.Action("will fail")); }); }
public void Target_Command_Is_Executed_When_Source_Event_Is_Raised_And_Command_Is_Enabled() { var source = new MockEventSource(); var target = new MockViewModelWithAction(); var binder = new CommandBinder<MockEventArgs>(source, "MockEvent", target.Command); binder.Bind(); source.RaiseMockEvent("foo"); Assert.AreEqual(1, target.Command.CallCount); }
public void Source_Is_Disabled_When_Target_Command_Becomes_Disabled() { var source = new MockEventSource(); var target = new MockViewModelWithAction(); var binder = new CommandBinder<MockEventArgs>(source, "MockEvent", target.Command); target.Command.MaxCalls = 1; binder.Bind(); source.RaiseMockEvent("foo"); Assert.IsFalse(source.IsEnabled); }
public void When_method_binder_is_added_then_it_can_be_retrieved_by_its_event() { var button = new Button(); var view = new UserControl(); var vm = new MockViewModelWithAction(); var buttonBinder = new MethodBinder<RoutedEventArgs>(button, "Click", p => vm.Action()); var viewModelBinder = new ViewBinder<object>(view, vm); viewModelBinder.Add(buttonBinder); var binder = viewModelBinder.GetMethodBinder(button, "Click"); Assert.AreEqual(buttonBinder, binder); }
public void When_two_identical_method_actions_are_compared_then_they_match() { var vm = new MockViewModelWithAction(); Expression<Action<RoutedEventArgs>> action1 = p => vm.Action(); Expression<Action<RoutedEventArgs>> action2 = p => vm.Action(); Assert.IsTrue(action1.ExpressionEquals(action2)); }
public void When_constructed_with_action_disabled_then_source_gets_disabled() { var source = new MockEventSource(); var target = new MockViewModelWithAction() {IsActionEnabled = false}; var binder = new MethodBinder<MockEventArgs>(source, "MockEvent", e => this.SetAction(), p => target.IsActionEnabled,target); binder.Bind(); Assert.IsFalse(source.IsEnabled); }
public void When_command_is_disabled_and_event_is_raised_then_action_is_not_called() { var source = new MockEventSource(); var target = new MockViewModelWithAction() {IsActionEnabled = false}; var binder = new MethodBinder<MockEventArgs>(source, "MockEvent", e => this.SetAction(), p => target.IsActionEnabled,target); binder.Bind(); source.RaiseMockEvent("foo"); Assert.IsFalse(this._actionWasCalled); }
public void Source_Is_Enabled_When_Target_Command_Is_Enabled_During_Initialization() { var source = new MockEventSource(); var target = new MockViewModelWithAction() {IsActionEnabled = true}; var binder = new MethodBinder<MockEventArgs>(source, "MockEvent", e => this.SetAction(), p => target.IsActionEnabled,target); Assert.IsTrue(source.IsEnabled); }
public void When_expression_is_viewmodel_then_viewmodel_can_be_extracted() { var vm = new MockViewModelWithAction(); Expression<Func<object, object>> expr = p => vm; Assert.AreSame(vm, ExpressionUtils.GetModelFromExpression(expr)); }
public void When_constructed_with_a_control_then_sets_event_name() { var button = new Button(); button.Name = "Action"; var vm = new MockViewModelWithAction(); button.SetValue(ViewBinder.ModelProperty, vm); var binder = new MethodBinder(button,vm); Assert.AreEqual("Click",binder.EventName); }
public void When_two_different_method_actions_are_compared_then_they_do_not_match() { var vm = new MockViewModelWithAction(); Expression<Action<RoutedEventArgs>> action1 = p => vm.Action(); Expression<Action<RoutedEventArgs>> action2 = p => DummyAction(); Assert.IsFalse(action1.ExpressionEquals(action2)); }