public void CancelScriptRun() { using (var source = new CancellationTokenSource()) { using (var task = Task.Factory.StartNew( () => { }, source.Token, TaskCreationOptions.None, new CurrentThreadTaskScheduler())) { var tuple = new Tuple <Task, CancellationTokenSource>(task, source); var scriptHost = new Mock <IHostScripts>(); { scriptHost.Setup(s => s.Execute(It.IsAny <ScriptLanguage>(), It.IsAny <string>(), It.IsAny <TextWriter>())) .Returns(tuple); } var command = new RunScriptCommand(scriptHost.Object); Assert.IsTrue(command.CanExecute(null)); var info = new ScriptRunInformation { Language = ScriptLanguage.IronPython, Script = "a", ScriptOutput = new ScriptOutputPipe(), }; command.Execute(info); Assert.AreSame(tuple.Item1, info.ScriptRunningTask); Assert.AreSame(tuple.Item2, info.CancellationToken); } } }
public void CanCancelScriptRunWithNonExecutingHost() { var scriptHost = new Mock <IHostScripts>(); { scriptHost.Setup(s => s.IsExecutingScript) .Returns(true); } var command = new RunScriptCommand(scriptHost.Object); Assert.IsFalse(command.CanExecute(null)); }
public void CanCancelScriptRunWithNullHost() { var command = new RunScriptCommand(null); Assert.IsFalse(command.CanExecute(null)); }