Пример #1
0
        public void UsesBackupSubjectIfActionTargetNotAvailable()
        {
            var view = new DependencyObject();
            var backupView = new DependencyObject();
            var cmd = new CommandAction(view, backupView, "DoSomething", ActionUnavailableBehaviour.Throw, ActionUnavailableBehaviour.Throw);

            View.SetActionTarget(backupView, this.target);
            view.SetValue(FrameworkElement.DataContextProperty, this.target);

            cmd.Execute(null);
            Assert.IsTrue(this.target.DoSomethingCalled);
        }
Пример #2
0
        public void OperatesAfterCollection()
        {
            var view = new DependencyObject();
            var cmd = new CommandAction(view, null, "DoSomething", ActionUnavailableBehaviour.Throw, ActionUnavailableBehaviour.Throw);

            GC.Collect();

            View.SetActionTarget(view, this.target);

            cmd.Execute(null);
            Assert.IsTrue(this.target.DoSomethingCalled);
        }
Пример #3
0
 public void ThrowsIfActionNonExistentBehaviourIsThrowAndActionIsNonExistent()
 {
     var cmd = new CommandAction(this.subject, null, "DoSomething", ActionUnavailableBehaviour.Throw, ActionUnavailableBehaviour.Throw);
     Assert.DoesNotThrow(() => View.SetActionTarget(this.subject, new Target2()));
     Assert.Throws<ActionNotFoundException>(() => cmd.Execute(null));
 }
Пример #4
0
 public void ExecuteThrowsIfTargetIsDefault()
 {
     View.SetActionTarget(this.subject, View.InitialActionTarget);
     var cmd = new CommandAction(this.subject, null, "DoSomething", ActionUnavailableBehaviour.Throw, ActionUnavailableBehaviour.Throw);
     Assert.Throws<ActionNotSetException>(() => cmd.Execute(null));
 }
Пример #5
0
 public void PropagatesActionException()
 {
     var cmd = new CommandAction(this.subject, null, "DoSomethingUnsuccessfully", ActionUnavailableBehaviour.Enable, ActionUnavailableBehaviour.Enable);
     var e = Assert.Throws<InvalidOperationException>(() => cmd.Execute(null));
     Assert.AreEqual("woo", e.Message);
 }
Пример #6
0
 public void ExecutePassesArgumentIfGiven()
 {
     var cmd = new CommandAction(this.subject, null, "DoSomethingWithArgument", ActionUnavailableBehaviour.Enable, ActionUnavailableBehaviour.Enable);
     var arg = "hello";
     cmd.Execute(arg);
     Assert.AreEqual("hello", this.target.DoSomethingArgument);
 }
Пример #7
0
 public void ExecuteCallsMethod()
 {
     var cmd = new CommandAction(this.subject, null, "DoSomething", ActionUnavailableBehaviour.Enable, ActionUnavailableBehaviour.Enable);
     cmd.Execute(null);
     Assert.True(this.target.DoSomethingCalled);
 }
Пример #8
0
 public void ExecuteDoesNothingIfActionIsNull()
 {
     var cmd = new CommandAction(this.subject, null, "DoesNotExist", ActionUnavailableBehaviour.Enable, ActionUnavailableBehaviour.Enable);
     View.SetActionTarget(this.subject, null);
     Assert.DoesNotThrow(() => cmd.Execute(null));
 }