public void TestCSharpScript() { using (ScriptRunner runner = new ScriptRunner(ScriptEngine.Language.CSharp, "class Program { static void Main() { System.Console.WriteLine(\"From C#\"); } }")) { StringWriter sw = new StringWriter(); runner.OutputReceived += delegate(object o, ProcessOutputEventArgs e) { sw.WriteLine(e.Data); }; Assert.AreEqual(0, runner.Run()); Assert.AreEqual("From C#", sw.ToString().Trim()); } }
public void TestCmdScript() { using (ScriptRunner runner = new ScriptRunner(ScriptEngine.Language.Cmd, "@ECHO From CMD.exe")) { StringWriter sw = new StringWriter(); runner.OutputReceived += delegate(object o, ProcessOutputEventArgs e) { sw.WriteLine(e.Data); }; Assert.AreEqual(0, runner.Run()); Assert.AreEqual("From CMD.exe", sw.ToString().Trim()); } }
public void TestWorkingDir() { using (TempDirectory dir = new TempDirectory()) using (ScriptRunner runner = new ScriptRunner(ScriptEngine.Language.Cmd, "@ECHO %cd%")) { string output = String.Empty; runner.OutputReceived += delegate(object o, ProcessOutputEventArgs e) { output += e.Data; }; Assert.AreNotEqual(dir.TempPath, runner.WorkingDirectory); runner.WorkingDirectory = dir.TempPath; Assert.AreEqual(dir.TempPath, runner.WorkingDirectory); runner.Run(); Assert.AreEqual(dir.TempPath.TrimEnd('\\', '/'), output.TrimEnd('\\', '/')); } }
public void TestExeScript() { using (ScriptRunner runner = new ScriptRunner(ScriptEngine.Language.Exe, @"cmd.exe")) { StringWriter sw = new StringWriter(); runner.OutputReceived += delegate(object o, ProcessOutputEventArgs e) { sw.WriteLine(e.Data); }; Assert.AreEqual(0, runner.Run("/c", "@echo From EXE")); Assert.AreEqual("From EXE", sw.ToString().Trim()); } }
public void TestRemoveExitedEvent() { using (ScriptRunner runner = new ScriptRunner(ScriptEngine.Language.Cmd, "@ECHO From CMD.exe")) { ManualResetEvent mre = new ManualResetEvent(false); ProcessExitedEventHandler h = delegate(object o, ProcessExitedEventArgs e) { mre.Set(); }; runner.ProcessExited += h; runner.ProcessExited -= h; Assert.AreEqual(0, runner.Run()); Assert.IsFalse(mre.WaitOne(250, false)); } }
public void TestVbScriptScript() { using (ScriptRunner runner = new ScriptRunner(ScriptEngine.Language.JScript, "WScript.StdOut.WriteLine(\"From VBScript\")")) { StringWriter sw = new StringWriter(); runner.OutputReceived += delegate(object o, ProcessOutputEventArgs e) { sw.WriteLine(e.Data); }; Assert.AreEqual(0, runner.Run()); Assert.AreEqual("From VBScript", sw.ToString().Trim()); } }
public void TestVbNetScript() { using (ScriptRunner runner = new ScriptRunner(ScriptEngine.Language.VBNet, @"Module Module1 Sub Main() System.Console.WriteLine(""From VB.Net"") End Sub End Module ")) { StringWriter sw = new StringWriter(); runner.OutputReceived += delegate(object o, ProcessOutputEventArgs e) { sw.WriteLine(e.Data); }; Assert.AreEqual(0, runner.Run()); Assert.AreEqual("From VB.Net", sw.ToString().Trim()); } }