public void WrappingSinkRespectsLogEventLevelSetting()
        {
            DummyWrappingSink.Reset();
            var sink   = new CollectingSink();
            var logger = new LoggerConfiguration()
                         .WriteTo.DummyWrap(w => w.Sink(sink), LogEventLevel.Error, null)
                         .CreateLogger();

            logger.Write(Some.InformationEvent());

            Assert.Empty(DummyWrappingSink.Emitted);
            Assert.Empty(sink.Events);
        }
        public void WrappingSinkReceivesEventsWhenLevelIsAppropriate()
        {
            DummyWrappingSink.Reset();
            var sink   = new CollectingSink();
            var logger = new LoggerConfiguration()
                         .WriteTo.DummyWrap(
                w => w.Sink(sink), LogEventLevel.Error,
                new LoggingLevelSwitch(LogEventLevel.Verbose))
                         .CreateLogger();

            logger.Write(Some.InformationEvent());

            Assert.NotEmpty(DummyWrappingSink.Emitted);
            Assert.NotEmpty(sink.Events);
        }
        public void WrappingDecoratesTheConfiguredSink()
        {
            DummyWrappingSink.Reset();
            var sink   = new CollectingSink();
            var logger = new LoggerConfiguration()
                         .WriteTo.Dummy(w => w.Sink(sink))
                         .CreateLogger();

            var evt = Some.InformationEvent();

            logger.Write(evt);

            Assert.Same(evt, DummyWrappingSink.Emitted.Single());
            Assert.Same(evt, sink.SingleEvent);
        }
        public void WrappingIsAppliedWhenChaining()
        {
            DummyWrappingSink.Reset();
            var sink1  = new CollectingSink();
            var sink2  = new CollectingSink();
            var logger = new LoggerConfiguration()
                         .WriteTo.Dummy(w => w.Sink(sink1)
                                        .WriteTo.Sink(sink2))
                         .CreateLogger();

            var evt = Some.InformationEvent();

            logger.Write(evt);

            Assert.Same(evt, DummyWrappingSink.Emitted.Single());
            Assert.Same(evt, sink1.SingleEvent);
            Assert.Same(evt, sink2.SingleEvent);
        }