public void CompositeWriterCanWriteToMultipleWriters() { var writer1 = new MockWriter(); var writer2 = new MockWriter(); var compositeWriter = new PrintLineDebuggerWriters.CompositeWriter( new [] { writer1.Writer(), writer2.Writer() }); using (var logger = PrintLineDebugger.Create(compositeWriter.Writer)) { logger.Log("Hello World"); } writer1.Logs.ShouldNotBeEmpty(); writer1.Logs.First().ShouldEndWith("Hello World"); writer1.Logs.ShouldHaveSingleItem(); AssertContextInfo(writer1.Logs); writer1.Logs.ShouldBe(writer2.Logs, Case.Sensitive); }
// This is one way to use the debugger without a TestEnvironment public void DefaultDebuggerShouldUseOuterDebuggerWriter() { var writer = new MockWriter(); PrintLineDebugger.Default.Value.Log("outOfContext1"); using (var logger = PrintLineDebugger.Create(writer.Writer())) { logger.Log("outer1"); // this is what you'd litter throughout the codebase to gather random logs PrintLineDebugger.Default.Value.Log("inner"); logger.Log("outer2"); } PrintLineDebugger.Default.Value.Log("outOfContext2"); writer.Logs.ShouldNotBeEmpty(); writer.Logs[0].ShouldEndWith("outer1"); writer.Logs[1].ShouldEndWith("inner"); writer.Logs[2].ShouldEndWith("outer2"); writer.Logs.Count.ShouldBe(3); AssertContextInfo(writer.Logs); }
public void DebuggerCanPrependAnId() { var writer = new MockWriter(); using (var logger = PrintLineDebugger.Create(writer.Writer(), "foo")) { logger.Log("Hello World"); } writer.Logs.ShouldNotBeEmpty(); writer.Logs.First().ShouldEndWith("Hello World"); writer.Logs.ShouldHaveSingleItem(); AssertContextInfo(writer.Logs, "foo"); }
public TransientPrintLineDebugger(TestEnvironment environment, CommonWriterType writer) { _printLineDebugger = PrintLineDebugger.Create(writer); }