Add more tests
authorSung Yoon Whang <suwhang@microsoft.com>
Tue, 10 Mar 2020 21:14:52 +0000 (14:14 -0700)
committerMaryam Ariyan <maryam.ariyan@microsoft.com>
Fri, 27 Mar 2020 19:46:37 +0000 (12:46 -0700)
Commit migrated from https://github.com/dotnet/Extensions/commit/6171c146edcd6a119291faee6f90de904e0fe8d1

src/libraries/Microsoft.Extensions.Logging.EventSource/src/Microsoft.Extensions.Logging.EventSource.csproj
src/libraries/Microsoft.Extensions.Logging.EventSource/tests/EventSourceLoggerTest.cs

index 23981f4..a74d7f1 100644 (file)
@@ -428,6 +428,95 @@ namespace Microsoft.Extensions.Logging.Test
             }
         }
 
+        [Fact]
+        public void Logs_AsExpected_FormattedMessage_WithNullString()
+        {
+            using (var testListener = new TestEventListener())
+            {
+                var factory = CreateLoggerFactory();
+
+                var listenerSettings = new TestEventListener.ListenerSettings();
+                listenerSettings.Keywords = LoggingEventSource.Keywords.FormattedMessage;
+                listenerSettings.FilterSpec = null;
+                listenerSettings.Level = EventLevel.Verbose;
+                testListener.EnableEvents(listenerSettings);
+
+                LogStuff(factory);
+
+                var containsNullEventName = false;
+
+                foreach (var eventJson in testListener.Events)
+                {
+                    if (eventJson.Contains(@"""__EVENT_NAME"":""FormattedMessage""") && eventJson.Contains(@"""EventName"":"""","))
+                    {
+                        containsNullEventName = true;
+                    }
+                }
+
+                Assert.True(containsNullEventName, "EventName is supposed to be null but it isn't.");
+            }
+        }
+
+        [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");