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);
 }
示例#10
0
        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));
 }