public void SingleCommandResponseError_Execute_NoError() { var waitableCommand = new TestWaitableCommand(); _macroCommand.AddCommand(waitableCommand); _macroCommand.Execute(new object()); Assert.IsTrue(waitableCommand.IsDoneWasRaised); }
public void Test() { var waitableCommand = new TestWaitableCommand(ResponseStatus.Success, true); _macroCommand.AddCommand(waitableCommand); var wasRaised = false; _macroCommand.CanExecuteChanged += (sender, args) => wasRaised = true; waitableCommand.RaiseCanExecuteChanged(); Assert.IsTrue(wasRaised, "The macro command did not raise CanExecuteChanged when the subcommand did!"); }
public void MultipleCommandButFirstCommandCancel_Execute_SecondCommandNotCalled() { var waitableCommand1 = new TestWaitableCommand(ResponseStatus.Cancel); var waitableCommand2 = new TestWaitableCommand(); _macroCommand.AddCommand(waitableCommand1); _macroCommand.AddCommand(waitableCommand2); _macroCommand.Execute(new object()); Assert.IsTrue(waitableCommand1.IsDoneWasRaised); Assert.IsFalse(waitableCommand2.IsDoneWasRaised); // test that the listener for IsDone was deregistered Assert.IsFalse(waitableCommand1.HasEventListenerRegistered); Assert.IsFalse(waitableCommand2.HasEventListenerRegistered); }
public void MultipleCommand_Execute_NoError() { var waitableCommand1 = new TestWaitableCommand(); var waitableCommand2 = new TestWaitableCommand(); _macroCommand.AddCommand(waitableCommand1); _macroCommand.AddCommand(waitableCommand2); _macroCommand.Execute(new object()); Assert.IsTrue(waitableCommand1.IsDoneWasRaised); Assert.IsTrue(waitableCommand2.IsDoneWasRaised); // test that the listener for IsDone was deregistered Assert.IsFalse(waitableCommand1.HasEventListenerRegistered); Assert.IsFalse(waitableCommand2.HasEventListenerRegistered); }
public void MultipleCommandButFirstCommandDelayed_Execute_BothSuccessful() { var waitableCommand1 = new TestWaitableCommand(ResponseStatus.Success, true); var waitableCommand2 = new TestWaitableCommand(); _macroCommand.AddCommand(waitableCommand1); _macroCommand.AddCommand(waitableCommand2); var isDoneResetEvent = new ManualResetEventSlim(false); _macroCommand.MacroIsDone += (sender, args) => { isDoneResetEvent.Set(); }; _macroCommand.Execute(new object()); Assert.IsFalse(waitableCommand1.IsDoneWasRaised); Assert.IsFalse(waitableCommand2.IsDoneWasRaised); waitableCommand1.DelayExecutionResetEvent.Set(); var macroIsDone = isDoneResetEvent.Wait(1000); Assert.IsTrue(macroIsDone, "MacroCommand was not marked as done!"); // To prevent timing issues, wait a bit if it was not updated yet if (!waitableCommand1.IsDoneWasRaised) { Thread.Sleep(10); } Assert.IsTrue(waitableCommand1.IsDoneWasRaised); Assert.IsTrue(waitableCommand2.IsDoneWasRaised); // test that the listener for IsDone was deregistered Assert.IsFalse(waitableCommand1.HasEventListenerRegistered); Assert.IsFalse(waitableCommand2.HasEventListenerRegistered); }
public void Setup() { _waitableCommand = new TestWaitableCommand(); _locator = Substitute.For <ICommandLocator>(); _macroCommand = new MacroCommand(_locator); }