From 6171c146edcd6a119291faee6f90de904e0fe8d1 Mon Sep 17 00:00:00 2001 From: Sung Yoon Whang Date: Tue, 10 Mar 2020 14:14:52 -0700 Subject: [PATCH] Add more tests --- ...soft.Extensions.Logging.EventSource.csproj | 4 ++ .../test/EventSourceLoggerTest.cs | 60 +++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/Logging/Logging.EventSource/src/Microsoft.Extensions.Logging.EventSource.csproj b/src/Logging/Logging.EventSource/src/Microsoft.Extensions.Logging.EventSource.csproj index 182fd068ec1..b339258efff 100644 --- a/src/Logging/Logging.EventSource/src/Microsoft.Extensions.Logging.EventSource.csproj +++ b/src/Logging/Logging.EventSource/src/Microsoft.Extensions.Logging.EventSource.csproj @@ -22,4 +22,8 @@ + + + + diff --git a/src/Logging/Logging.EventSource/test/EventSourceLoggerTest.cs b/src/Logging/Logging.EventSource/test/EventSourceLoggerTest.cs index 9511c6306bb..d78680cb7f0 100644 --- a/src/Logging/Logging.EventSource/test/EventSourceLoggerTest.cs +++ b/src/Logging/Logging.EventSource/test/EventSourceLoggerTest.cs @@ -456,6 +456,66 @@ public void Logs_AsExpected_FormattedMessage_WithNullString() } } + [Fact] + public void Logs_AsExpected_MessageJson_WithNullString() + { + using (var testListener = new TestEventListener()) + { + var listenerSettings = new TestEventListener.ListenerSettings(); + listenerSettings.Keywords = LoggingEventSource.Keywords.JsonMessage; + listenerSettings.FilterSpec = null; + listenerSettings.Level = EventLevel.Verbose; + testListener.EnableEvents(listenerSettings); + + // Write some MessageJson events with null string. + for (var i = 0; i < 100; i++) + { + LoggingEventSource.Instance.MessageJson(LogLevel.Trace, 1, "MyLogger", 5, null, null, "testJson"); + } + + bool containsNullEventName = false; + foreach (var eventJson in testListener.Events) + { + if (eventJson.Contains(@"""__EVENT_NAME"":""MessageJson""") && eventJson.Contains(@"""EventName"":"""",")) + { + containsNullEventName = true; + } + } + + Assert.True(containsNullEventName, "EventName and ExceptionJson is supposed to be null but it isn't."); + } + } + + [Fact] + public void Logs_AsExpected_ActivityJson_WithNullString() + { + using (var testListener = new TestEventListener()) + { + var listenerSettings = new TestEventListener.ListenerSettings(); + listenerSettings.Keywords = LoggingEventSource.Keywords.JsonMessage; + listenerSettings.FilterSpec = null; + listenerSettings.Level = EventLevel.Verbose; + testListener.EnableEvents(listenerSettings); + + // Write some MessageJson events with null string. + for (var i = 0; i < 100; i++) + { + LoggingEventSource.Instance.ActivityJsonStart(6, 1, null, "someJson"); + } + + bool containsNullLoggerName = false; + foreach (var eventJson in testListener.Events) + { + if (eventJson.Contains(@"""__EVENT_NAME"":""ActivityJsonStart""") && eventJson.Contains(@"""LoggerName"":"""",")) + { + containsNullLoggerName = true; + } + } + + Assert.True(containsNullLoggerName, "LoggerName is supposed to be null but it isn't."); + } + } + private void LogStuff(ILoggerFactory factory) { var logger1 = factory.CreateLogger("Logger1");