示例#1
0
        public async Task ObservedOutputWithNullStorage()
        {
            var    content        = new string('S', 100);
            string observedOutput = string.Empty;
            var    outputBuilder  =
                new SandboxedProcessOutputBuilder(
                    Encoding.UTF8,
                    0,
                    null,
                    SandboxedProcessFile.StandardOutput,
                    writtenOutput => observedOutput += writtenOutput);

            outputBuilder.AppendLine(content);
            SandboxedProcessOutput output = outputBuilder.Freeze();

            XAssert.IsFalse(output.IsSaved);
            XAssert.AreEqual(string.Empty, await output.ReadValueAsync());
            XAssert.AreEqual(content, observedOutput);
        }
        public void OutputPassThroughToParentConsole()
        {
            // Verify we can construct a builder with pass-through arguments.
            var outputBuilder =
                new SandboxedProcessOutputBuilder(
                    Encoding.UTF8,
                    maxMemoryLength: 0,
                    fileStorage: null,
                    file: SandboxedProcessFile.StandardOutput,
                    observer: null);

            XAssert.IsFalse(outputBuilder.HookOutputStream);
            SandboxedProcessOutput output = outputBuilder.Freeze();

            XAssert.IsNotNull(output);
            XAssert.IsTrue(output.HasLength);
            XAssert.IsFalse(output.HasException);
            XAssert.AreEqual(0, output.Length);
        }