public static void XUnitLogger_BeginScope_Throws_If_State_Is_Null() { // Arrange string name = "MyName"; var outputHelper = Mock.Of <ITestOutputHelper>(); var options = new XUnitLoggerOptions(); var logger = new XUnitLogger(name, outputHelper, options); // Act Assert.Throws <ArgumentNullException>("state", () => logger.BeginScope(null as string)); }
public static void XUnitLogger_Log_Logs_Message_If_Scopes_Included_And_There_Are_Scopes() { // Arrange var mock = new Mock <ITestOutputHelper>(); string name = "MyName"; var outputHelper = mock.Object; var options = new XUnitLoggerOptions() { Filter = FilterTrue, IncludeScopes = true, }; var logger = new XUnitLogger(name, outputHelper, options) { Clock = StaticClock, }; string expected = string.Join( Environment.NewLine, new[] { "[2018-08-19 16:12:16Z] info: MyName[0]", " => _ => __ => ___ => [null]", " Message|False|False" }); // Act using (logger.BeginScope("_")) { using (logger.BeginScope("__")) { using (logger.BeginScope("___")) { using (logger.BeginScope(null)) { logger.Log <string>(LogLevel.Information, 0, null, null, Formatter); } } } } // Assert mock.Verify((p) => p.WriteLine(expected), Times.Once()); }
public static void XUnitLogger_BeginScope_Returns_Value() { // Arrange string name = "MyName"; var outputHelper = Mock.Of <ITestOutputHelper>(); var options = new XUnitLoggerOptions(); var logger = new XUnitLogger(name, outputHelper, options); // Act using IDisposable actual = logger.BeginScope(true); // Assert actual.ShouldNotBeNull(); }