public void WriteLine2_WhenNotEnabled_DoesNotLog() { bool wasCalled = false; var pane = IVsOutputWindowPaneFactory.ImplementOutputStringThreadSafe((text) => { wasCalled = true; }); var logger = CreateDisabledLogger(pane); logger.WriteLine("Text", new object()); Assert.False(wasCalled); }
public void WriteLine2_WhenEnabledWithNullFormat_ThrowsArgumentNull() { string?result = null; var pane = IVsOutputWindowPaneFactory.ImplementOutputStringThreadSafe((text) => { result = text; }); var logger = CreateEnabledLogger(pane); Assert.Throws <ArgumentNullException>("format", () => { logger.WriteLine(format: null !, (object?)null !); });
public void WriteLine5_WhenEnabled_LogsToOutputPane(string format, object?[] arguments, string expected) { // Not looking for exhaustive tests, just enough to indicate we're calling string.Format string?result = null; var pane = IVsOutputWindowPaneFactory.ImplementOutputStringThreadSafe((text) => { result = text; }); var logger = CreateEnabledLogger(pane); logger.WriteLine(format, arguments); Assert.Equal(expected + Environment.NewLine, result); }
[InlineData("Text with a placeholder {0}")] // Make we don't call String.Format public void WriteLine1_WhenEnabled_LogsToOutputPane(string text) { string result = null; var pane = IVsOutputWindowPaneFactory.ImplementOutputStringThreadSafe((t) => { result = t; }); var logger = CreateEnabledLogger(pane); logger.WriteLine(text); Assert.Equal(text + Environment.NewLine, result); }
public void WriteLine5_WhenEnabledWithInvalidFormat_ThrowsFormat() { string result = null; var pane = IVsOutputWindowPaneFactory.ImplementOutputStringThreadSafe((text) => { result = text; }); var logger = CreateEnabledLogger(pane); Assert.Throws <FormatException>(() => { logger.WriteLine("{0}{1}{2}{4}{5}", new object(), new object(), new object(), new object()); }); }
public async Task GetOutputWindowPaneAsync_ReactivatesPreviouslyActiveWindow() { int callCount = 0; var pane = IVsOutputWindowPaneFactory.ImplementActivate(() => { callCount++; return(0); }); var outputWindow = IVsOutputWindow2Factory.CreateWithActivePane(pane); var provider = CreateInstance(outputWindow: outputWindow); await provider.GetOutputWindowPaneAsync(); Assert.Equal(1, callCount); }