Beispiel #1
0
        private static PreviousOutputHolder SetOutputCore(TextWriter output)
        {
            lock (_outputStack)
            {
                var holder = new PreviousOutputHolder(Console.Out);
                Console.SetOut(output);
                _outputStack.Push(holder);

                return(holder);
            }
        }
Beispiel #2
0
        private static void RestoreOutputCore(PreviousOutputHolder output)
        {
            lock (_outputStack)
            {
                var popCount = _outputStack.TakeWhile(t => t != output).Count();
                if (popCount < _outputStack.Count)
                {
                    for (var i = 0; i < popCount; i++)
                    {
                        _outputStack.Pop();
                    }

                    Code.AssertState(output == _outputStack.Peek(), "Bug");
                    Console.SetOut(_outputStack.Pop().Output);
                }
            }
        }
Beispiel #3
0
        private static void RestoreOutputCore(PreviousOutputHolder output)
        {
            lock (_outputStack)
            {
                var popCount = _outputStack.TakeWhile(t => t != output).Count();
                if (popCount < _outputStack.Count)
                {
                    for (var i = 0; i < popCount; i++)
                    {
                        _outputStack.Pop();
                    }

                    Code.BugIf(output != _outputStack.Peek(), "Capture output stack disbalanced.");
                    System.Console.SetOut(_outputStack.Pop().Output);
                }
            }
        }