public void Test(Serilog.Events.LogEventLevel serilogLevel, Enyim.LogLevel enyimLevel, string message, Exception exception) { var mock = new Moq.Mock <ILogEventSink>(); var root = new LoggerConfiguration() .MinimumLevel.Verbose() .WriteTo.Sink(mock.Object) .CreateLogger(); Enyim.LogManager.AssignFactory(new Enyim.Diagnostics.SerilogLoggerFactory(root)); LogManager.Create(typeof(SerilogLoggerAdapterTests)).Log(enyimLevel, exception, message); mock.Verify(sink => sink.Emit(It.Is <LogEvent>(e => e.Level == serilogLevel && e.MessageTemplate.Text == message && e.Exception == exception))); }
public void Test(MicrosoftLogLevel msLogLevel, Enyim.LogLevel enyimLevel, string message, Exception exception) { var mockLogger = new Moq.Mock <IMicrosoftLogger>(); var mockProvider = new Moq.Mock <IMicrosoftLoggerProvider>(); mockProvider.Setup(p => p.CreateLogger(It.IsAny <string>())).Returns(mockLogger.Object); LogManager.AssignFactory(new Enyim.Diagnostics.MicrosoftLoggerFactory(new LoggerFactory(new[] { mockProvider.Object }))); LogManager.Create(typeof(MicrosoftLoggingAdapterTests)).Log(enyimLevel, exception, message); // TODO capture state & formatter and validate the message mockLogger.Verify(sink => sink.Log( It.Is <MicrosoftLogLevel>(v => v == msLogLevel), It.IsAny <EventId>(), It.IsAny <object>(), It.Is <Exception>(v => v == exception), It.IsAny <Func <object, Exception, string> >())); }
public void Test(NLogLogLevel logLevel, Enyim.LogLevel enyimLevel, string message, Exception exception) { var mock = new Moq.Mock <NLog.Targets.TargetWithContext>(MockBehavior.Loose) { CallBase = true }; var config = new NLog.Config.LoggingConfiguration(); config.AddRuleForAllLevels(mock.Object); LogManager.AssignFactory(new Enyim.Diagnostics.NLogLoggerFactory(new NLog.LogFactory(config))); LogManager.Create(typeof(NLogAdapterTests)).Log(enyimLevel, exception, message); mock.Protected().Verify("Write", Times.Once(), ItExpr.Is <LogEventInfo>(info => info.Level == logLevel && info.Message == message && info.Exception == exception)); }