From ba5808a368fdd77ae8f6f262459477cb30dbb32c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kurzyniec?= Date: Tue, 12 Nov 2019 14:58:41 +0100 Subject: [PATCH] Fix for issue #31 added unit test for reusing the same correlationId for multiple log entries for second enricher --- .../Enrichers/CorrelationIdEnricherTests.cs | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/Serilog.Enrichers.CorrelationId.Tests/Enrichers/CorrelationIdEnricherTests.cs b/src/Serilog.Enrichers.CorrelationId.Tests/Enrichers/CorrelationIdEnricherTests.cs index 91c4837..8d8e5a2 100644 --- a/src/Serilog.Enrichers.CorrelationId.Tests/Enrichers/CorrelationIdEnricherTests.cs +++ b/src/Serilog.Enrichers.CorrelationId.Tests/Enrichers/CorrelationIdEnricherTests.cs @@ -57,5 +57,28 @@ public void When_CurrentHttpContextIsNotNull_ShouldNot_CreateCorrelationIdProper Assert.NotNull(evt); Assert.IsFalse(evt.Properties.ContainsKey("CorrelationId")); } + + [Test] + public void When_MultipleLoggingCallsMade_Should_KeepUsingCreatedCorrelationIdProperty() + { + var httpContext = new DefaultHttpContext(); + + A.CallTo(() => _httpContextAccessor.HttpContext) + .Returns(httpContext); + + LogEvent evt = null; + var log = new LoggerConfiguration() + .Enrich.With(_enricher) + .WriteTo.Sink(new DelegateSink.DelegatingSink(e => evt = e)) + .CreateLogger(); + + log.Information(@"Has a CorrelationId property"); + + var correlationId = evt.Properties["CorrelationId"].LiteralValue(); + + log.Information(@"Here is another event"); + + Assert.AreEqual(correlationId, evt.Properties["CorrelationId"].LiteralValue()); + } } }