public void ToString_ReturnsJson(int?expectedProcessId)
        {
            const string      expectedPluginId = "a";
            const PluginState expectedState    = PluginState.Started;

            var now = DateTimeOffset.UtcNow;

            var logMessage = new PluginInstanceLogMessage(now, expectedPluginId, expectedState, expectedProcessId);

            var message = VerifyOuterMessageAndReturnInnerMessage(logMessage, now, "plugin instance");

            var expectedCount = 2 + (expectedProcessId.HasValue ? 1 : 0);

            Assert.Equal(expectedCount, message.Count);

            var actualPluginId = message.Value <string>("plugin ID");
            var actualState    = Enum.Parse(typeof(PluginState), message.Value <string>("state"));

            Assert.Equal(expectedPluginId, actualPluginId);
            Assert.Equal(expectedState, actualState);

            if (expectedProcessId.HasValue)
            {
                var actualProcessId = message.Value <int>("process ID");

                Assert.Equal(expectedProcessId, actualProcessId);
            }
            else
            {
                Assert.Null(message["process ID"]);
            }
        }
        public void ToString_ReturnsJson()
        {
            const int expectedProcessId = 7;

            var now = DateTimeOffset.UtcNow;

            var logMessage = new PluginInstanceLogMessage(now, expectedProcessId);

            var message = VerifyOuterMessageAndReturnInnerMessage(logMessage, now, "plugin instance");

            Assert.Equal(1, message.Count);

            var actualProcessId = message.Value <int>("process ID");

            Assert.Equal(expectedProcessId, actualProcessId);
        }