コード例 #1
0
        public void when_subscribing_then_receives_related_activity_id()
        {
            var sink = new MockSink();

            listener.Subscribe(sink);
            listener.EnableEvents(Logger, EventLevel.LogAlways);

            var  activityId        = Guid.NewGuid();
            var  relatedActivityId = Guid.NewGuid();
            Guid previousActivityId;

            EventSource.SetCurrentThreadActivityId(activityId, out previousActivityId);

            try
            {
                Logger.EventWithPayloadAndMessageAndRelatedActivityId(relatedActivityId, "Test", 100);
            }
            finally
            {
                EventSource.SetCurrentThreadActivityId(previousActivityId);
            }

            Assert.AreEqual(activityId, sink.OnNextCalls.ElementAt(0).ActivityId);
            Assert.AreEqual(relatedActivityId, sink.OnNextCalls.ElementAt(0).RelatedActivityId);
        }
コード例 #2
0
        public void when_unsubscribing_then_does_not_send_OnCompleted_to_sink()
        {
            var sink         = new MockSink();
            var subscription = listener.Subscribe(sink);

            listener.EnableEvents(Logger, EventLevel.LogAlways);

            subscription.Dispose();

            Assert.AreEqual(0, sink.OnCompletedCalls);
        }
コード例 #3
0
        public void when_subscribing_then_receives_raw_payload()
        {
            var sink = new MockSink();

            listener.Subscribe(sink);
            listener.EnableEvents(Logger, EventLevel.LogAlways);

            Logger.Informational("Test");

            Assert.AreEqual(1, sink.OnNextCalls.ElementAt(0).Payload.Count);
            Assert.AreEqual("Test", sink.OnNextCalls.ElementAt(0).Payload[0]);
        }
コード例 #4
0
        public void when_disposing_listener_then_sends_OnCompleted()
        {
            var sink = new MockSink();

            listener.Subscribe(sink);
            listener.EnableEvents(Logger, EventLevel.LogAlways);
            Assert.AreEqual(0, sink.OnCompletedCalls);

            listener.Dispose();

            Assert.AreEqual(1, sink.OnCompletedCalls);
        }
コード例 #5
0
        public void when_disposing_listener_then_stops_publishing_events()
        {
            var sink = new MockSink();

            listener.Subscribe(sink);
            listener.EnableEvents(Logger, EventLevel.LogAlways);
            listener.Dispose();

            Logger.Informational("Test");

            Assert.AreEqual(0, sink.OnNextCalls.Count());
        }
コード例 #6
0
        public void when_subscribing_then_receives_parsed_schema()
        {
            var sink = new MockSink();

            listener.Subscribe(sink);
            listener.EnableEvents(Logger, EventLevel.LogAlways);

            Logger.Informational("Test");

            var expectedSchema = EventSourceSchemaCache.Instance.GetSchema(TestEventSource.InformationalEventId, Logger);

            Assert.AreEqual(expectedSchema, sink.OnNextCalls.ElementAt(0).Schema);
        }
コード例 #7
0
        public void when_subscribing_then_receives_events()
        {
            var sink = new MockSink();

            listener.Subscribe(sink);
            listener.EnableEvents(Logger, EventLevel.LogAlways);

            Logger.Informational("Test");

            Assert.AreEqual(1, sink.OnNextCalls.Count());
            Assert.AreEqual(TestEventSource.InformationalEventId, sink.OnNextCalls.ElementAt(0).EventId);
            Assert.AreEqual(EventLevel.Informational, sink.OnNextCalls.ElementAt(0).Schema.Level);
        }
コード例 #8
0
        public MetricsLoggerTests()
        {
            _fixture             = new Fixture().Customize(new AutoNSubstituteCustomization());
            _logger              = _fixture.Create <ILoggerFactory>();
            _environment         = _fixture.Create <IEnvironment>();
            _environmentProvider = _fixture.Create <IEnvironmentProvider>();

            _sink = new MockSink();
            _environment.Sink.Returns(_sink);
            _environmentProvider.ResolveEnvironment().Returns(_environment);

            _metricsLogger = new MetricsLogger(_environmentProvider, _logger);
        }
コード例 #9
0
        public void can_subscribe_multiple_sinks()
        {
            var sink1 = new MockSink();
            var sink2 = new MockSink();

            listener.Subscribe(sink1);
            listener.Subscribe(sink2);
            listener.EnableEvents(Logger, EventLevel.LogAlways);

            Logger.Informational("Test");

            Assert.AreEqual(1, sink1.OnNextCalls.Count());
            Assert.AreEqual(1, sink2.OnNextCalls.Count());
        }
コード例 #10
0
        public void when_disposing_listener_then_does_not_dispose_sinks()
        {
            var sink1 = new MockSink();
            var sink2 = new MockSink();

            listener.Subscribe(sink1);
            listener.Subscribe(sink2);

            listener.EnableEvents(Logger, EventLevel.LogAlways);

            Assert.IsFalse(sink1.DisposeCalled);
            Assert.IsFalse(sink2.DisposeCalled);

            listener.Dispose();

            Assert.IsFalse(sink1.DisposeCalled);
            Assert.IsFalse(sink2.DisposeCalled);
        }
コード例 #11
0
        public void when_disposing_listener_then_calls_OnCompleted_on_sinks()
        {
            var sink1 = new MockSink();
            var sink2 = new MockSink();

            listener.Subscribe(sink1);
            listener.Subscribe(sink2);

            listener.EnableEvents(Logger, EventLevel.LogAlways);

            Assert.AreEqual(0, sink1.OnCompletedCalls);
            Assert.AreEqual(0, sink2.OnCompletedCalls);

            listener.Dispose();

            Assert.AreEqual(1, sink1.OnCompletedCalls);
            Assert.AreEqual(1, sink2.OnCompletedCalls);
        }
コード例 #12
0
        public void when_subscribing_then_receives_events()
        {
            var processId = System.Diagnostics.Process.GetCurrentProcess().Id;
            var threadId  = Utility.NativeMethods.GetCurrentThreadId();

            var sink = new MockSink();

            listener.Subscribe(sink);
            listener.EnableEvents(Logger, EventLevel.LogAlways);

            Logger.Informational("Test");

            Assert.AreEqual(1, sink.OnNextCalls.Count());
            Assert.AreEqual(TestEventSource.InformationalEventId, sink.OnNextCalls.ElementAt(0).EventId);
            Assert.AreEqual(EventLevel.Informational, sink.OnNextCalls.ElementAt(0).Schema.Level);
            Assert.AreEqual(processId, sink.OnNextCalls.ElementAt(0).ProcessId);
            Assert.AreEqual(threadId, sink.OnNextCalls.ElementAt(0).ThreadId);
        }