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"); }
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"); } }