public void TestWriteAuditLogEntryToSyslog()
        {
            AuditLogSyslogSettings sysLogSettings = ConfigurationSettings.GetAuditLogConfigurationSection().SyslogSettings;
            bool isEnabled = sysLogSettings.IsEnabled;

            try
            {
                var mockSyslogMessageWriter = new Mock <ISyslogMessageWriter>(MockBehavior.Strict);

                // Ensure event log is enabled
                sysLogSettings.IsEnabled = true;
                var syslogWriter = new AuditLogSyslogWriter(mockSyslogMessageWriter.Object);

                IAuditLogEntryData auditLogEventData = new AuditLogEntryData(false, "logonAuditLogEntryMetadata", new Dictionary <string, object>
                {
                    { "p1", "p1Value" },
                    { "p2", "p2Value" }
                });

                mockSyslogMessageWriter.Setup(w => w.Write(It.Is <SyslogMessage>(m => ValidateMessage(m, auditLogEventData))));

                syslogWriter.Write(auditLogEventData);

                mockSyslogMessageWriter.VerifyAll();
            }
            finally
            {
                sysLogSettings.IsEnabled = isEnabled;
            }
        }
        public void TestWriteNullAuditLogEntryToSyslog()
        {
            var mockSyslogMessageWriter = new Mock <ISyslogMessageWriter>(MockBehavior.Loose);

            var syslogWriter = new AuditLogSyslogWriter(mockSyslogMessageWriter.Object);

            Assert.Throws <ArgumentNullException>(() => syslogWriter.Write(null));
        }