예제 #1
0
        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)));
        }
예제 #2
0
        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> >()));
        }
예제 #3
0
        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));
        }