Пример #1
0
        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");
        }
Пример #2
0
        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");
        }
Пример #3
0
        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);
 }