Пример #1
0
        public void WaitForExitExitsImmediatelyWhenNothingToWaitFor()
        {
            var stdout = new StringReader("");
            var stdin  = new StringWriter();

            var handler = new AsyncStreamsHandler(stdout, new StringReader(""), stdin);

            handler.WaitForExit();
            Assert.Pass("Successfully skipped waiting since there was nothing to do");
        }
Пример #2
0
        public void WaitForExitBlockstdinhenStillReading()
        {
            var blockingStream = new BlockingStream();
            var stdout         = new StreamReader(blockingStream);
            var stdin          = new StringWriter();
            var handler        = new AsyncStreamsHandler(stdout, new StringReader(""), stdin);
            var stopWatch      = new Stopwatch();

            stopWatch.Start();
            new Task(() => { Thread.Sleep(100); blockingStream.Unblock(); }).Start();
            handler.WaitForExit();
            stopWatch.Stop();

            if (stopWatch.ElapsedMilliseconds < 100)
            {
                Assert.Fail("WaitForExit returned before the timer finished");
            }
            else
            {
                Assert.Pass("Successfully waited for the stream to end");
            }
        }