public void Encoding_ReturnsUnicode()
        {
            var logger = MockRepository.GenerateStub<ILogger>();
            var writer = new BufferedLogWriter(logger, LogSeverity.Important);

            Assert.AreEqual(Encoding.Unicode, writer.Encoding);
        }
        public void NewLine_ReturnsLinefeed()
        {
            var logger = MockRepository.GenerateStub<ILogger>();
            var writer = new BufferedLogWriter(logger, LogSeverity.Important);

            Assert.AreEqual("\n", writer.NewLine);
        }
        public void Write_BuffersLogMessagesUpToNewLineAndTrimsBlankLinesAtEnds()
        {
            var logger = MockRepository.GenerateMock<ILogger>();
            logger.Expect(x => x.Log(LogSeverity.Important, "First message"));
            logger.Expect(x => x.Log(LogSeverity.Important, "Second message"));
            logger.Expect(x => x.Log(LogSeverity.Important, "Third message\nWith extra line"));
            logger.Expect(x => x.Log(LogSeverity.Important, "Fourth message"));

            var writer = new BufferedLogWriter(logger, LogSeverity.Important);

            writer.Write("First");
            writer.WriteLine(" message");
            writer.WriteLine("\n\nSecond message\n\n");
            writer.WriteLine("Third message\nWith extra line");
            writer.WriteLine();
            writer.Write("Fourth message".ToCharArray());
            writer.Dispose();

            logger.VerifyAllExpectations();
        }
Ejemplo n.º 4
0
            private static void ExploreOrRun(TestPackage testPackage, ScriptRuntimeSetup scriptRuntimeSetup, string testDriverScriptPath,
                TestExplorationOptions testExplorationOptions, TestExecutionOptions testExecutionOptions,
                IMessageSink messageSink, IProgressMonitor progressMonitor, ILogger logger)
            {
                using (BufferedLogWriter outputWriter = new BufferedLogWriter(logger, LogSeverity.Info, Encoding.Default),
                    errorWriter = new BufferedLogWriter(logger, LogSeverity.Error, Encoding.Default))
                {
                    using (var queuedMessageSink = new QueuedMessageSink(messageSink))
                    {
                        using (new ConsoleRedirection(outputWriter, errorWriter))
                        {
                            var scriptRuntime = new ScriptRuntime(scriptRuntimeSetup);

                            scriptRuntime.IO.SetInput(Stream.Null, TextReader.Null, Encoding.Default);
                            scriptRuntime.IO.SetOutput(new TextWriterStream(outputWriter), outputWriter);
                            scriptRuntime.IO.SetErrorOutput(new TextWriterStream(errorWriter), errorWriter);

                            try
                            {
                                var scriptParameters = new Dictionary<string, object>();
                                scriptParameters.Add("Verb", testExecutionOptions != null ? "Run" : "Explore");
                                scriptParameters.Add("TestPackage", testPackage);
                                scriptParameters.Add("TestExplorationOptions", testExplorationOptions);
                                scriptParameters.Add("TestExecutionOptions", testExecutionOptions);
                                scriptParameters.Add("MessageSink", queuedMessageSink);
                                scriptParameters.Add("ProgressMonitor", progressMonitor);
                                scriptParameters.Add("Logger", logger);

                                scriptRuntime.Globals.SetVariable(ScriptParametersVariableName, scriptParameters);

                                RunScript(scriptRuntime, testDriverScriptPath);
                            }
                            finally
                            {
                                scriptRuntime.Shutdown();
                            }
                        }
                    }
                }
            }