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); }
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); }
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)); }
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)); }
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); }
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); }
public void ExecuteCallsMethod() { var cmd = new CommandAction(this.subject, null, "DoSomething", ActionUnavailableBehaviour.Enable, ActionUnavailableBehaviour.Enable); cmd.Execute(null); Assert.True(this.target.DoSomethingCalled); }
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)); }