public void PlusTwoNumber() { ProcessResult result = null; Assert.DoesNotThrow(() => { using (var process = new ProcessSpawnerWithCombinedErrAndOut(TestApplications.PlusTwoNumberInfo)) { process.OnInputRequested += (buf, writer) => { if (string.IsNullOrEmpty(buf)) { return(ProcessInputHandleResult.Ignored); } if (buf == "878") { return(ProcessInputHandleResult.Ignored); } if (buf != "Please enter a number...") { Assert.Fail(); return(ProcessInputHandleResult.Ignored); } writer.WriteLine("876"); return(ProcessInputHandleResult.Handled); }; result = process.Run(); } }); Assert.NotNull(result); Assert.NotNull(result.FullBuffer); Assert.Equal(result.FullBuffer, @"Please enter a number... 878"); Assert.DoesNotThrow(() => { using (var process = new ProcessSpawnerWithCombinedErrAndOut(TestApplications.PlusTwoNumberInfo)) { process.OnInputRequested += (buf, writer) => { if (string.IsNullOrEmpty(buf)) { return(ProcessInputHandleResult.Ignored); } if (buf == "Bad number") { return(ProcessInputHandleResult.Ignored); } if (buf != "Please enter a number...") { Assert.Fail(); return(ProcessInputHandleResult.Ignored); } writer.WriteLine("abc"); return(ProcessInputHandleResult.Handled); }; result = process.Run(); } }); Assert.NotNull(result); Assert.NotNull(result.FullBuffer); Assert.Equal(result.FullBuffer, @"Please enter a number... Bad number"); }
public void SimpleInterspersed() { ProcessResult result = null; Assert.DoesNotThrow(() => { using (var process = new ProcessSpawnerWithCombinedErrAndOut(TestApplications.SimpleInterspersedInfo)) { result = process.Run(); } }); Assert.NotNull(result); Assert.Equal(result.ExitCode, 3); Assert.GreaterThan(result.PeakPagedMemorySize, 0); Assert.GreaterThan(result.PeakVirtualMemorySize, 0); Assert.GreaterThan(result.PeakWorkingSet, 0); Assert.NotEqual(result.StartTime, DateTime.MinValue); Assert.NotEqual(result.ExitTime, DateTime.MinValue); Assert.GreaterThan(result.ExitTime - result.StartTime, TimeSpan.Zero); Assert.NotNull(result.FullBuffer); Assert.Null(result.FullOutput); Assert.Null(result.FullError); Assert.Equal(result.FullBuffer, @"abc def abc def abc def def abc aabbccddeeff"); }
public void NakedInput() { ProcessResult result = null; Assert.DoesNotThrow(() => { using (var process = new ProcessSpawnerWithCombinedErrAndOut(TestApplications.NakedInput)) { process.OnInputRequested += (buf, writer) => { if (!string.IsNullOrEmpty(buf) && buf != "acb876") { Assert.Fail(); } writer.WriteLine("acb876"); return(ProcessInputHandleResult.Handled); }; result = process.Run(); } }); Assert.NotNull(result); Assert.NotNull(result.FullBuffer); Assert.Null(result.FullOutput); Assert.Null(result.FullError); Assert.Equal(result.FullBuffer, @"acb876"); }
/// <summary> /// Initializes a new instance of the <see cref="Test.ProcessSpawnerWithCombinedAndSplitErrAndOut" /> class with a specified file, command line escaper, and command line arguments. /// </summary> /// <param name="pFile">The <see cref="FileInfo" /> carrying information about the file to execute.</param> /// <param name="pEscaper">The command line escaper to produce a command line argument string from the command line arguments.</param> /// <param name="pArguments">The command line arguments to pass to the execution of the file.</param> public ProcessSpawnerWithCombinedAndSplitErrAndOut(FileInfo pFile, ICommandLineArgumentEscaper pEscaper, params object[] pArguments) { m_split = new ProcessSpawnerWithSplitErrAndOut(pFile, pEscaper, pArguments); m_combined = new ProcessSpawnerWithCombinedErrAndOut(pFile, pEscaper, pArguments); }
/// <summary> /// Initializes a new instance of the <see cref="Test.ProcessSpawnerWithCombinedAndSplitErrAndOut" /> class with a specified file. /// </summary> /// <param name="pFile">The <see cref="FileInfo" /> carrying information about the file to execute.</param> public ProcessSpawnerWithCombinedAndSplitErrAndOut(FileInfo pFile) { m_split = new ProcessSpawnerWithSplitErrAndOut(pFile); m_combined = new ProcessSpawnerWithCombinedErrAndOut(pFile); }
/// <summary> /// Initializes a new instance of the <see cref="Test.ProcessSpawnerWithCombinedAndSplitErrAndOut" /> class with a specified file and command line arguments. /// </summary> /// <param name="pFileName">The name of the file to execute.</param> /// <param name="pArguments">The command line arguments to pass to the execution of the file.</param> public ProcessSpawnerWithCombinedAndSplitErrAndOut(string pFileName, params object[] pArguments) { m_split = new ProcessSpawnerWithSplitErrAndOut(pFileName, pArguments); m_combined = new ProcessSpawnerWithCombinedErrAndOut(pFileName, pArguments); }
/// <summary> /// Initializes a new instance of the <see cref="Test.ProcessSpawnerWithCombinedAndSplitErrAndOut" /> class with a specified file. /// </summary> /// <param name="pFileName">The name of the file to execute.</param> public ProcessSpawnerWithCombinedAndSplitErrAndOut(string pFileName) { m_split = new ProcessSpawnerWithSplitErrAndOut(pFileName); m_combined = new ProcessSpawnerWithCombinedErrAndOut(pFileName); }