public void LogWithSeverityAndMessage()
        {
            LogMessage storedMessage = null;
            var        logger        = new Mock <ILogger>();
            {
                logger.Setup(l => l.Log(It.IsAny <LogMessage>()))
                .Callback <LogMessage>(m => storedMessage = m);
            }

            var diagnostics = new SystemDiagnostics(logger.Object, null);

            var providedLevel   = LevelToLog.Error;
            var providedMessage = "This is a message";

            diagnostics.Log(providedLevel, providedMessage);

            Assert.AreEqual(providedLevel, storedMessage.Level);
            Assert.AreEqual(providedMessage, storedMessage.Text);
        }
        public void LogWithSeverityMessageProviderAndFormatParameters()
        {
            LogMessage storedMessage = null;
            var        logger        = new Mock <ILogger>();
            {
                logger.Setup(l => l.Log(It.IsAny <LogMessage>()))
                .Callback <LogMessage>(m => storedMessage = m);
            }

            var diagnostics = new SystemDiagnostics(logger.Object, null);

            var providedLevel   = LevelToLog.Error;
            var providedMessage = "This is a message";
            var provider        = CultureInfo.CurrentCulture;
            var parameter       = 10;

            diagnostics.Log(providedLevel, provider, providedMessage, parameter);

            Assert.AreEqual(providedLevel, storedMessage.Level);
            Assert.AreEqual(providedMessage, storedMessage.Text);
            Assert.AreEqual(provider, storedMessage.FormatProvider);
            Assert.AreEqual(parameter, storedMessage.FormatParameters[0]);
        }