http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/82c3e389/tests/src/Appender/AdoNet/Log4NetConnection.cs ---------------------------------------------------------------------- diff --git a/tests/src/Appender/AdoNet/Log4NetConnection.cs b/tests/src/Appender/AdoNet/Log4NetConnection.cs index 4fd4507..f734036 100644 --- a/tests/src/Appender/AdoNet/Log4NetConnection.cs +++ b/tests/src/Appender/AdoNet/Log4NetConnection.cs @@ -24,88 +24,88 @@ using System.Data; namespace log4net.Tests.Appender.AdoNet { - public class Log4NetConnection : IDbConnection - { - #region AdoNetAppender - - private static Log4NetConnection mostRecentInstance; - - private bool open; - private string connectionString; - - public Log4NetConnection() - { - mostRecentInstance = this; - } - - public void Close() - { - open = false; - } - - public ConnectionState State - { - get - { - return open ? ConnectionState.Open : ConnectionState.Closed; - } - } - - public string ConnectionString - { - get { return connectionString; } - set { connectionString = value; } - } - - public IDbTransaction BeginTransaction() - { - return new Log4NetTransaction(); - } - - public IDbCommand CreateCommand() - { - return new Log4NetCommand(); - } - - public void Open() - { - open = true; - } - - public static Log4NetConnection MostRecentInstance - { - get { return mostRecentInstance; } - } - - #endregion - - #region Not Implemented - - public IDbTransaction BeginTransaction(IsolationLevel il) - { - throw new NotImplementedException(); - } - - public void ChangeDatabase(string databaseName) - { - throw new NotImplementedException(); - } - - public int ConnectionTimeout - { - get { throw new NotImplementedException(); } - } - - public string Database - { - get { throw new NotImplementedException(); } - } - - public void Dispose() - { - throw new NotImplementedException(); - } - - #endregion - } + public class Log4NetConnection : IDbConnection + { + #region AdoNetAppender + + private static Log4NetConnection mostRecentInstance; + + private bool open; + private string connectionString; + + public Log4NetConnection() + { + mostRecentInstance = this; + } + + public void Close() + { + open = false; + } + + public ConnectionState State + { + get + { + return open ? ConnectionState.Open : ConnectionState.Closed; + } + } + + public string ConnectionString + { + get { return connectionString; } + set { connectionString = value; } + } + + public IDbTransaction BeginTransaction() + { + return new Log4NetTransaction(); + } + + public IDbCommand CreateCommand() + { + return new Log4NetCommand(); + } + + public void Open() + { + open = true; + } + + public static Log4NetConnection MostRecentInstance + { + get { return mostRecentInstance; } + } + + #endregion + + #region Not Implemented + + public IDbTransaction BeginTransaction(IsolationLevel il) + { + throw new NotImplementedException(); + } + + public void ChangeDatabase(string databaseName) + { + throw new NotImplementedException(); + } + + public int ConnectionTimeout + { + get { throw new NotImplementedException(); } + } + + public string Database + { + get { throw new NotImplementedException(); } + } + + public void Dispose() + { + throw new NotImplementedException(); + } + + #endregion + } }
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/82c3e389/tests/src/Appender/AdoNet/Log4NetParameter.cs ---------------------------------------------------------------------- diff --git a/tests/src/Appender/AdoNet/Log4NetParameter.cs b/tests/src/Appender/AdoNet/Log4NetParameter.cs index 4eb038d..eb11b43 100644 --- a/tests/src/Appender/AdoNet/Log4NetParameter.cs +++ b/tests/src/Appender/AdoNet/Log4NetParameter.cs @@ -24,80 +24,80 @@ using System.Data; namespace log4net.Tests.Appender.AdoNet { - public class Log4NetParameter : IDbDataParameter - { - #region AdoNetAppender - - private string parameterName; - private byte precision; - private byte scale; - private int size; - private DbType dbType; - private object value; - - public string ParameterName - { - get { return parameterName; } - set { parameterName = value; } - } - - public byte Precision - { - get { return precision; } - set { precision = value; } - } - - public byte Scale - { - get { return scale; } - set { scale = value; } - } - - public int Size - { - get { return size; } - set { size = value; } - } - - public DbType DbType - { - get { return dbType; } - set { dbType = value; } - } - - public object Value - { - get { return value; } - set { this.value = value; } - } - - #endregion - - #region Not Implemented - - public ParameterDirection Direction - { - get { throw new NotImplementedException(); } - set { throw new NotImplementedException(); } - } - - public bool IsNullable - { - get { throw new NotImplementedException(); } - } - - public string SourceColumn - { - get { throw new NotImplementedException(); } - set { throw new NotImplementedException(); } - } - - public DataRowVersion SourceVersion - { - get { throw new NotImplementedException(); } - set { throw new NotImplementedException(); } - } - - #endregion - } + public class Log4NetParameter : IDbDataParameter + { + #region AdoNetAppender + + private string parameterName; + private byte precision; + private byte scale; + private int size; + private DbType dbType; + private object value; + + public string ParameterName + { + get { return parameterName; } + set { parameterName = value; } + } + + public byte Precision + { + get { return precision; } + set { precision = value; } + } + + public byte Scale + { + get { return scale; } + set { scale = value; } + } + + public int Size + { + get { return size; } + set { size = value; } + } + + public DbType DbType + { + get { return dbType; } + set { dbType = value; } + } + + public object Value + { + get { return value; } + set { this.value = value; } + } + + #endregion + + #region Not Implemented + + public ParameterDirection Direction + { + get { throw new NotImplementedException(); } + set { throw new NotImplementedException(); } + } + + public bool IsNullable + { + get { throw new NotImplementedException(); } + } + + public string SourceColumn + { + get { throw new NotImplementedException(); } + set { throw new NotImplementedException(); } + } + + public DataRowVersion SourceVersion + { + get { throw new NotImplementedException(); } + set { throw new NotImplementedException(); } + } + + #endregion + } } http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/82c3e389/tests/src/Appender/AdoNet/Log4NetParameterCollection.cs ---------------------------------------------------------------------- diff --git a/tests/src/Appender/AdoNet/Log4NetParameterCollection.cs b/tests/src/Appender/AdoNet/Log4NetParameterCollection.cs index 8b0d041..4ca1a7d 100644 --- a/tests/src/Appender/AdoNet/Log4NetParameterCollection.cs +++ b/tests/src/Appender/AdoNet/Log4NetParameterCollection.cs @@ -25,45 +25,45 @@ using System.Data; namespace log4net.Tests.Appender.AdoNet { - public class Log4NetParameterCollection : CollectionBase, IDataParameterCollection - { - #region AdoNetAppender + public class Log4NetParameterCollection : CollectionBase, IDataParameterCollection + { + #region AdoNetAppender - private readonly Hashtable parameterNameToIndex = new Hashtable(); + private readonly Hashtable parameterNameToIndex = new Hashtable(); - protected override void OnInsertComplete(int index, object value) - { - base.OnInsertComplete(index, value); + protected override void OnInsertComplete(int index, object value) + { + base.OnInsertComplete(index, value); - IDataParameter param = (IDataParameter)value; - parameterNameToIndex[param.ParameterName] = index; - } + IDataParameter param = (IDataParameter)value; + parameterNameToIndex[param.ParameterName] = index; + } - public int IndexOf(string parameterName) - { - return (int)parameterNameToIndex[parameterName]; - } + public int IndexOf(string parameterName) + { + return (int)parameterNameToIndex[parameterName]; + } - public object this[string parameterName] - { - get { return InnerList[IndexOf(parameterName)]; } - set { InnerList[IndexOf(parameterName)] = value; } - } + public object this[string parameterName] + { + get { return InnerList[IndexOf(parameterName)]; } + set { InnerList[IndexOf(parameterName)] = value; } + } - #endregion + #endregion - #region Not Implemented + #region Not Implemented - public void RemoveAt(string parameterName) - { - throw new NotImplementedException(); - } + public void RemoveAt(string parameterName) + { + throw new NotImplementedException(); + } - public bool Contains(string parameterName) - { - throw new NotImplementedException(); - } + public bool Contains(string parameterName) + { + throw new NotImplementedException(); + } - #endregion - } + #endregion + } } http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/82c3e389/tests/src/Appender/AdoNet/Log4NetTransaction.cs ---------------------------------------------------------------------- diff --git a/tests/src/Appender/AdoNet/Log4NetTransaction.cs b/tests/src/Appender/AdoNet/Log4NetTransaction.cs index d52e364..1b985f6 100644 --- a/tests/src/Appender/AdoNet/Log4NetTransaction.cs +++ b/tests/src/Appender/AdoNet/Log4NetTransaction.cs @@ -24,39 +24,39 @@ using System.Data; namespace log4net.Tests.Appender.AdoNet { - public class Log4NetTransaction : IDbTransaction - { - #region AdoNetAppender + public class Log4NetTransaction : IDbTransaction + { + #region AdoNetAppender - public void Commit() - { - // empty - } + public void Commit() + { + // empty + } - public void Rollback() - { - // empty - } + public void Rollback() + { + // empty + } - #endregion + #endregion - #region Not Implemented + #region Not Implemented - public IDbConnection Connection - { - get { throw new NotImplementedException(); } - } + public IDbConnection Connection + { + get { throw new NotImplementedException(); } + } - public IsolationLevel IsolationLevel - { - get { throw new NotImplementedException(); } - } + public IsolationLevel IsolationLevel + { + get { throw new NotImplementedException(); } + } - public void Dispose() - { - throw new NotImplementedException(); - } + public void Dispose() + { + throw new NotImplementedException(); + } - #endregion - } + #endregion + } } http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/82c3e389/tests/src/Appender/AdoNetAppenderTest.cs ---------------------------------------------------------------------- diff --git a/tests/src/Appender/AdoNetAppenderTest.cs b/tests/src/Appender/AdoNetAppenderTest.cs index a536514..63b112e 100644 --- a/tests/src/Appender/AdoNetAppenderTest.cs +++ b/tests/src/Appender/AdoNetAppenderTest.cs @@ -33,298 +33,298 @@ using NUnit.Framework; namespace log4net.Tests.Appender { - [TestFixture] - public class AdoNetAppenderTest - { - [Test] - public void NoBufferingTest() - { - ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); - - AdoNetAppender adoNetAppender = new AdoNetAppender(); - adoNetAppender.BufferSize = -1; - adoNetAppender.ConnectionType = "log4net.Tests.Appender.AdoNet.Log4NetConnection"; - adoNetAppender.ActivateOptions(); - - BasicConfigurator.Configure(rep, adoNetAppender); - - ILog log = LogManager.GetLogger(rep.Name, "NoBufferingTest"); - log.Debug("Message"); - Assert.AreEqual(1, Log4NetCommand.MostRecentInstance.ExecuteNonQueryCount); - } - - [Test] - public void BufferingTest() - { - ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); - - int bufferSize = 5; - - AdoNetAppender adoNetAppender = new AdoNetAppender(); - adoNetAppender.BufferSize = bufferSize; - adoNetAppender.ConnectionType = "log4net.Tests.Appender.AdoNet.Log4NetConnection"; - adoNetAppender.ActivateOptions(); - - BasicConfigurator.Configure(rep, adoNetAppender); - - ILog log = LogManager.GetLogger(rep.Name, "BufferingTest"); - for (int i = 0; i < bufferSize; i++) - { - log.Debug("Message"); - Assert.IsNull(Log4NetCommand.MostRecentInstance); - } - log.Debug("Message"); - Assert.AreEqual(bufferSize+1, Log4NetCommand.MostRecentInstance.ExecuteNonQueryCount); - } - - [Test] - public void WebsiteExample() - { - XmlDocument log4netConfig = new XmlDocument(); - #region Load log4netConfig - log4netConfig.LoadXml(@" - <log4net> - <appender name=""AdoNetAppender"" type=""log4net.Appender.AdoNetAppender""> - <bufferSize value=""-1"" /> - <connectionType value=""log4net.Tests.Appender.AdoNet.Log4NetConnection"" /> - <connectionString value=""data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]"" /> - <commandText value=""INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"" /> - <parameter> - <parameterName value=""@log_date"" /> - <dbType value=""DateTime"" /> - <layout type=""log4net.Layout.RawTimeStampLayout"" /> - </parameter> - <parameter> - <parameterName value=""@thread"" /> - <dbType value=""String"" /> - <size value=""255"" /> - <layout type=""log4net.Layout.PatternLayout""> - <conversionPattern value=""%thread"" /> - </layout> - </parameter> - <parameter> - <parameterName value=""@log_level"" /> - <dbType value=""String"" /> - <size value=""50"" /> - <layout type=""log4net.Layout.PatternLayout""> - <conversionPattern value=""%level"" /> - </layout> - </parameter> - <parameter> - <parameterName value=""@logger"" /> - <dbType value=""String"" /> - <size value=""255"" /> - <layout type=""log4net.Layout.PatternLayout""> - <conversionPattern value=""%logger"" /> - </layout> - </parameter> - <parameter> - <parameterName value=""@message"" /> - <dbType value=""String"" /> - <size value=""4000"" /> - <layout type=""log4net.Layout.PatternLayout""> - <conversionPattern value=""%message"" /> - </layout> - </parameter> - <parameter> - <parameterName value=""@exception"" /> - <dbType value=""String"" /> - <size value=""2000"" /> - <layout type=""log4net.Layout.ExceptionLayout"" /> - </parameter> - </appender> - <root> - <level value=""ALL"" /> - <appender-ref ref=""AdoNetAppender"" /> - </root> - </log4net>"); - #endregion - - ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); - XmlConfigurator.Configure(rep, log4netConfig["log4net"]); - ILog log = LogManager.GetLogger(rep.Name, "WebsiteExample"); - log.Debug("Message"); - - IDbCommand command = Log4NetCommand.MostRecentInstance; - - Assert.AreEqual( - "INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)", - command.CommandText); - - Assert.AreEqual(6, command.Parameters.Count); - - IDbDataParameter param = (IDbDataParameter)command.Parameters["@message"]; - Assert.AreEqual("Message", param.Value); - - param = (IDbDataParameter)command.Parameters["@log_level"]; - Assert.AreEqual(Level.Debug.ToString(), param.Value); - - param = (IDbDataParameter)command.Parameters["@logger"]; - Assert.AreEqual("WebsiteExample", param.Value); - - param = (IDbDataParameter)command.Parameters["@exception"]; - Assert.IsEmpty((string)param.Value); - } - - [Test] - public void BufferingWebsiteExample() - { - XmlDocument log4netConfig = new XmlDocument(); - #region Load log4netConfig - log4netConfig.LoadXml(@" - <log4net> - <appender name=""AdoNetAppender"" type=""log4net.Appender.AdoNetAppender""> - <bufferSize value=""2"" /> - <connectionType value=""log4net.Tests.Appender.AdoNet.Log4NetConnection"" /> - <connectionString value=""data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]"" /> - <commandText value=""INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"" /> - <parameter> - <parameterName value=""@log_date"" /> - <dbType value=""DateTime"" /> - <layout type=""log4net.Layout.RawTimeStampLayout"" /> - </parameter> - <parameter> - <parameterName value=""@thread"" /> - <dbType value=""String"" /> - <size value=""255"" /> - <layout type=""log4net.Layout.PatternLayout""> - <conversionPattern value=""%thread"" /> - </layout> - </parameter> - <parameter> - <parameterName value=""@log_level"" /> - <dbType value=""String"" /> - <size value=""50"" /> - <layout type=""log4net.Layout.PatternLayout""> - <conversionPattern value=""%level"" /> - </layout> - </parameter> - <parameter> - <parameterName value=""@logger"" /> - <dbType value=""String"" /> - <size value=""255"" /> - <layout type=""log4net.Layout.PatternLayout""> - <conversionPattern value=""%logger"" /> - </layout> - </parameter> - <parameter> - <parameterName value=""@message"" /> - <dbType value=""String"" /> - <size value=""4000"" /> - <layout type=""log4net.Layout.PatternLayout""> - <conversionPattern value=""%message"" /> - </layout> - </parameter> - <parameter> - <parameterName value=""@exception"" /> - <dbType value=""String"" /> - <size value=""2000"" /> - <layout type=""log4net.Layout.ExceptionLayout"" /> - </parameter> - </appender> - <root> - <level value=""ALL"" /> - <appender-ref ref=""AdoNetAppender"" /> - </root> - </log4net>"); - #endregion - - ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); - XmlConfigurator.Configure(rep, log4netConfig["log4net"]); - ILog log = LogManager.GetLogger(rep.Name, "WebsiteExample"); - - for (int i = 0; i < 3; i++) - { - log.Debug("Message"); - } - - IDbCommand command = Log4NetCommand.MostRecentInstance; - - Assert.AreEqual( - "INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)", - command.CommandText); - - Assert.AreEqual(6, command.Parameters.Count); - - IDbDataParameter param = (IDbDataParameter)command.Parameters["@message"]; - Assert.AreEqual("Message", param.Value); - - param = (IDbDataParameter)command.Parameters["@log_level"]; - Assert.AreEqual(Level.Debug.ToString(), param.Value); - - param = (IDbDataParameter)command.Parameters["@logger"]; - Assert.AreEqual("WebsiteExample", param.Value); - - param = (IDbDataParameter)command.Parameters["@exception"]; - Assert.IsEmpty((string)param.Value); - } - - [Test] - public void NullPropertyXmlConfig() - { - XmlDocument log4netConfig = new XmlDocument(); - #region Load log4netConfig - log4netConfig.LoadXml(@" - <log4net> - <appender name=""AdoNetAppender"" type=""log4net.Appender.AdoNetAppender""> - <bufferSize value=""-1"" /> - <connectionType value=""log4net.Tests.Appender.AdoNet.Log4NetConnection"" /> - <connectionString value=""data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]"" /> - <commandText value=""INSERT INTO Log ([ProductId]) VALUES (@productId)"" /> - <parameter> - <parameterName value=""@productId"" /> - <dbType value=""String"" /> - <size value=""50"" /> - <layout type="" log4net.Layout.RawPropertyLayout""> - <key value=""ProductId"" /> - </layout> - </parameter> - </appender> - <root> - <level value=""ALL"" /> - <appender-ref ref=""AdoNetAppender"" /> - </root> - </log4net>"); - #endregion - - ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); - XmlConfigurator.Configure(rep, log4netConfig["log4net"]); - ILog log = LogManager.GetLogger(rep.Name, "NullPropertyXmlConfig"); - - log.Debug("Message"); - IDbCommand command = Log4NetCommand.MostRecentInstance; - IDbDataParameter param = (IDbDataParameter)command.Parameters["@productId"]; - Assert.AreNotEqual(SystemInfo.NullText, param.Value); - Assert.AreEqual(DBNull.Value, param.Value); - } - - [Test] - public void NullPropertyProgmaticConfig() - { - AdoNetAppenderParameter productIdParam = new AdoNetAppenderParameter(); - productIdParam.ParameterName = "@productId"; - productIdParam.DbType = DbType.String; - productIdParam.Size = 50; - RawPropertyLayout rawPropertyLayout = new RawPropertyLayout(); - rawPropertyLayout.Key = "ProductId"; - productIdParam.Layout = rawPropertyLayout; - - AdoNetAppender appender = new AdoNetAppender(); - appender.ConnectionType = typeof(Log4NetConnection).FullName; - appender.BufferSize = -1; - appender.CommandText = "INSERT INTO Log ([productId]) VALUES (@productId)"; - appender.AddParameter(productIdParam); - appender.ActivateOptions(); - - ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); - BasicConfigurator.Configure(rep, appender); - ILog log = LogManager.GetLogger(rep.Name, "NullPropertyProgmaticConfig"); - - log.Debug("Message"); - IDbCommand command = Log4NetCommand.MostRecentInstance; - IDbDataParameter param = (IDbDataParameter)command.Parameters["@productId"]; - Assert.AreNotEqual(SystemInfo.NullText, param.Value); - Assert.AreEqual(DBNull.Value, param.Value); - } - } + [TestFixture] + public class AdoNetAppenderTest + { + [Test] + public void NoBufferingTest() + { + ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); + + AdoNetAppender adoNetAppender = new AdoNetAppender(); + adoNetAppender.BufferSize = -1; + adoNetAppender.ConnectionType = "log4net.Tests.Appender.AdoNet.Log4NetConnection"; + adoNetAppender.ActivateOptions(); + + BasicConfigurator.Configure(rep, adoNetAppender); + + ILog log = LogManager.GetLogger(rep.Name, "NoBufferingTest"); + log.Debug("Message"); + Assert.AreEqual(1, Log4NetCommand.MostRecentInstance.ExecuteNonQueryCount); + } + + [Test] + public void BufferingTest() + { + ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); + + int bufferSize = 5; + + AdoNetAppender adoNetAppender = new AdoNetAppender(); + adoNetAppender.BufferSize = bufferSize; + adoNetAppender.ConnectionType = "log4net.Tests.Appender.AdoNet.Log4NetConnection"; + adoNetAppender.ActivateOptions(); + + BasicConfigurator.Configure(rep, adoNetAppender); + + ILog log = LogManager.GetLogger(rep.Name, "BufferingTest"); + for (int i = 0; i < bufferSize; i++) + { + log.Debug("Message"); + Assert.IsNull(Log4NetCommand.MostRecentInstance); + } + log.Debug("Message"); + Assert.AreEqual(bufferSize+1, Log4NetCommand.MostRecentInstance.ExecuteNonQueryCount); + } + + [Test] + public void WebsiteExample() + { + XmlDocument log4netConfig = new XmlDocument(); + #region Load log4netConfig + log4netConfig.LoadXml(@" + <log4net> + <appender name=""AdoNetAppender"" type=""log4net.Appender.AdoNetAppender""> + <bufferSize value=""-1"" /> + <connectionType value=""log4net.Tests.Appender.AdoNet.Log4NetConnection"" /> + <connectionString value=""data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]"" /> + <commandText value=""INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"" /> + <parameter> + <parameterName value=""@log_date"" /> + <dbType value=""DateTime"" /> + <layout type=""log4net.Layout.RawTimeStampLayout"" /> + </parameter> + <parameter> + <parameterName value=""@thread"" /> + <dbType value=""String"" /> + <size value=""255"" /> + <layout type=""log4net.Layout.PatternLayout""> + <conversionPattern value=""%thread"" /> + </layout> + </parameter> + <parameter> + <parameterName value=""@log_level"" /> + <dbType value=""String"" /> + <size value=""50"" /> + <layout type=""log4net.Layout.PatternLayout""> + <conversionPattern value=""%level"" /> + </layout> + </parameter> + <parameter> + <parameterName value=""@logger"" /> + <dbType value=""String"" /> + <size value=""255"" /> + <layout type=""log4net.Layout.PatternLayout""> + <conversionPattern value=""%logger"" /> + </layout> + </parameter> + <parameter> + <parameterName value=""@message"" /> + <dbType value=""String"" /> + <size value=""4000"" /> + <layout type=""log4net.Layout.PatternLayout""> + <conversionPattern value=""%message"" /> + </layout> + </parameter> + <parameter> + <parameterName value=""@exception"" /> + <dbType value=""String"" /> + <size value=""2000"" /> + <layout type=""log4net.Layout.ExceptionLayout"" /> + </parameter> + </appender> + <root> + <level value=""ALL"" /> + <appender-ref ref=""AdoNetAppender"" /> + </root> + </log4net>"); + #endregion + + ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); + XmlConfigurator.Configure(rep, log4netConfig["log4net"]); + ILog log = LogManager.GetLogger(rep.Name, "WebsiteExample"); + log.Debug("Message"); + + IDbCommand command = Log4NetCommand.MostRecentInstance; + + Assert.AreEqual( + "INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)", + command.CommandText); + + Assert.AreEqual(6, command.Parameters.Count); + + IDbDataParameter param = (IDbDataParameter)command.Parameters["@message"]; + Assert.AreEqual("Message", param.Value); + + param = (IDbDataParameter)command.Parameters["@log_level"]; + Assert.AreEqual(Level.Debug.ToString(), param.Value); + + param = (IDbDataParameter)command.Parameters["@logger"]; + Assert.AreEqual("WebsiteExample", param.Value); + + param = (IDbDataParameter)command.Parameters["@exception"]; + Assert.IsEmpty((string)param.Value); + } + + [Test] + public void BufferingWebsiteExample() + { + XmlDocument log4netConfig = new XmlDocument(); + #region Load log4netConfig + log4netConfig.LoadXml(@" + <log4net> + <appender name=""AdoNetAppender"" type=""log4net.Appender.AdoNetAppender""> + <bufferSize value=""2"" /> + <connectionType value=""log4net.Tests.Appender.AdoNet.Log4NetConnection"" /> + <connectionString value=""data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]"" /> + <commandText value=""INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"" /> + <parameter> + <parameterName value=""@log_date"" /> + <dbType value=""DateTime"" /> + <layout type=""log4net.Layout.RawTimeStampLayout"" /> + </parameter> + <parameter> + <parameterName value=""@thread"" /> + <dbType value=""String"" /> + <size value=""255"" /> + <layout type=""log4net.Layout.PatternLayout""> + <conversionPattern value=""%thread"" /> + </layout> + </parameter> + <parameter> + <parameterName value=""@log_level"" /> + <dbType value=""String"" /> + <size value=""50"" /> + <layout type=""log4net.Layout.PatternLayout""> + <conversionPattern value=""%level"" /> + </layout> + </parameter> + <parameter> + <parameterName value=""@logger"" /> + <dbType value=""String"" /> + <size value=""255"" /> + <layout type=""log4net.Layout.PatternLayout""> + <conversionPattern value=""%logger"" /> + </layout> + </parameter> + <parameter> + <parameterName value=""@message"" /> + <dbType value=""String"" /> + <size value=""4000"" /> + <layout type=""log4net.Layout.PatternLayout""> + <conversionPattern value=""%message"" /> + </layout> + </parameter> + <parameter> + <parameterName value=""@exception"" /> + <dbType value=""String"" /> + <size value=""2000"" /> + <layout type=""log4net.Layout.ExceptionLayout"" /> + </parameter> + </appender> + <root> + <level value=""ALL"" /> + <appender-ref ref=""AdoNetAppender"" /> + </root> + </log4net>"); + #endregion + + ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); + XmlConfigurator.Configure(rep, log4netConfig["log4net"]); + ILog log = LogManager.GetLogger(rep.Name, "WebsiteExample"); + + for (int i = 0; i < 3; i++) + { + log.Debug("Message"); + } + + IDbCommand command = Log4NetCommand.MostRecentInstance; + + Assert.AreEqual( + "INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)", + command.CommandText); + + Assert.AreEqual(6, command.Parameters.Count); + + IDbDataParameter param = (IDbDataParameter)command.Parameters["@message"]; + Assert.AreEqual("Message", param.Value); + + param = (IDbDataParameter)command.Parameters["@log_level"]; + Assert.AreEqual(Level.Debug.ToString(), param.Value); + + param = (IDbDataParameter)command.Parameters["@logger"]; + Assert.AreEqual("WebsiteExample", param.Value); + + param = (IDbDataParameter)command.Parameters["@exception"]; + Assert.IsEmpty((string)param.Value); + } + + [Test] + public void NullPropertyXmlConfig() + { + XmlDocument log4netConfig = new XmlDocument(); + #region Load log4netConfig + log4netConfig.LoadXml(@" + <log4net> + <appender name=""AdoNetAppender"" type=""log4net.Appender.AdoNetAppender""> + <bufferSize value=""-1"" /> + <connectionType value=""log4net.Tests.Appender.AdoNet.Log4NetConnection"" /> + <connectionString value=""data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]"" /> + <commandText value=""INSERT INTO Log ([ProductId]) VALUES (@productId)"" /> + <parameter> + <parameterName value=""@productId"" /> + <dbType value=""String"" /> + <size value=""50"" /> + <layout type="" log4net.Layout.RawPropertyLayout""> + <key value=""ProductId"" /> + </layout> + </parameter> + </appender> + <root> + <level value=""ALL"" /> + <appender-ref ref=""AdoNetAppender"" /> + </root> + </log4net>"); + #endregion + + ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); + XmlConfigurator.Configure(rep, log4netConfig["log4net"]); + ILog log = LogManager.GetLogger(rep.Name, "NullPropertyXmlConfig"); + + log.Debug("Message"); + IDbCommand command = Log4NetCommand.MostRecentInstance; + IDbDataParameter param = (IDbDataParameter)command.Parameters["@productId"]; + Assert.AreNotEqual(SystemInfo.NullText, param.Value); + Assert.AreEqual(DBNull.Value, param.Value); + } + + [Test] + public void NullPropertyProgmaticConfig() + { + AdoNetAppenderParameter productIdParam = new AdoNetAppenderParameter(); + productIdParam.ParameterName = "@productId"; + productIdParam.DbType = DbType.String; + productIdParam.Size = 50; + RawPropertyLayout rawPropertyLayout = new RawPropertyLayout(); + rawPropertyLayout.Key = "ProductId"; + productIdParam.Layout = rawPropertyLayout; + + AdoNetAppender appender = new AdoNetAppender(); + appender.ConnectionType = typeof(Log4NetConnection).FullName; + appender.BufferSize = -1; + appender.CommandText = "INSERT INTO Log ([productId]) VALUES (@productId)"; + appender.AddParameter(productIdParam); + appender.ActivateOptions(); + + ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); + BasicConfigurator.Configure(rep, appender); + ILog log = LogManager.GetLogger(rep.Name, "NullPropertyProgmaticConfig"); + + log.Debug("Message"); + IDbCommand command = Log4NetCommand.MostRecentInstance; + IDbDataParameter param = (IDbDataParameter)command.Parameters["@productId"]; + Assert.AreNotEqual(SystemInfo.NullText, param.Value); + Assert.AreEqual(DBNull.Value, param.Value); + } + } } http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/82c3e389/tests/src/Appender/DebugAppenderTest.cs ---------------------------------------------------------------------- diff --git a/tests/src/Appender/DebugAppenderTest.cs b/tests/src/Appender/DebugAppenderTest.cs index c964e3f..121c604 100644 --- a/tests/src/Appender/DebugAppenderTest.cs +++ b/tests/src/Appender/DebugAppenderTest.cs @@ -29,145 +29,145 @@ using NUnit.Framework; namespace log4net.Tests.Appender { - [TestFixture] - public class DebugAppenderTest - { - [Test] - public void NullCategoryTest() - { - CategoryTraceListener categoryTraceListener = new CategoryTraceListener(); - Debug.Listeners.Add(categoryTraceListener); + [TestFixture] + public class DebugAppenderTest + { + [Test] + public void NullCategoryTest() + { + CategoryTraceListener categoryTraceListener = new CategoryTraceListener(); + Debug.Listeners.Add(categoryTraceListener); - ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); + ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); - DebugAppender debugAppender = new DebugAppender(); - debugAppender.Layout = new SimpleLayout(); - debugAppender.ActivateOptions(); + DebugAppender debugAppender = new DebugAppender(); + debugAppender.Layout = new SimpleLayout(); + debugAppender.ActivateOptions(); - debugAppender.Category = null; + debugAppender.Category = null; - TestErrorHandler testErrHandler = new TestErrorHandler(); - debugAppender.ErrorHandler = testErrHandler; + TestErrorHandler testErrHandler = new TestErrorHandler(); + debugAppender.ErrorHandler = testErrHandler; - BasicConfigurator.Configure(rep, debugAppender); + BasicConfigurator.Configure(rep, debugAppender); - ILog log = LogManager.GetLogger(rep.Name, GetType()); - log.Debug("Message"); + ILog log = LogManager.GetLogger(rep.Name, GetType()); + log.Debug("Message"); - Assert.AreEqual( - null, - categoryTraceListener.Category); + Assert.AreEqual( + null, + categoryTraceListener.Category); - Assert.IsFalse(testErrHandler.ErrorOccured); + Assert.IsFalse(testErrHandler.ErrorOccured); - Debug.Listeners.Remove(categoryTraceListener); - } + Debug.Listeners.Remove(categoryTraceListener); + } - [Test] - public void EmptyStringCategoryTest() - { - CategoryTraceListener categoryTraceListener = new CategoryTraceListener(); - Debug.Listeners.Add(categoryTraceListener); + [Test] + public void EmptyStringCategoryTest() + { + CategoryTraceListener categoryTraceListener = new CategoryTraceListener(); + Debug.Listeners.Add(categoryTraceListener); - ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); + ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); - DebugAppender debugAppender = new DebugAppender(); - debugAppender.Layout = new SimpleLayout(); - debugAppender.ActivateOptions(); + DebugAppender debugAppender = new DebugAppender(); + debugAppender.Layout = new SimpleLayout(); + debugAppender.ActivateOptions(); - debugAppender.Category = new PatternLayout(""); + debugAppender.Category = new PatternLayout(""); - BasicConfigurator.Configure(rep, debugAppender); + BasicConfigurator.Configure(rep, debugAppender); - ILog log = LogManager.GetLogger(rep.Name, GetType()); - log.Debug("Message"); + ILog log = LogManager.GetLogger(rep.Name, GetType()); + log.Debug("Message"); - Assert.AreEqual( - null, - categoryTraceListener.Category); + Assert.AreEqual( + null, + categoryTraceListener.Category); - Debug.Listeners.Remove(categoryTraceListener); - } + Debug.Listeners.Remove(categoryTraceListener); + } - [Test] - public void DefaultCategoryTest() - { - CategoryTraceListener categoryTraceListener = new CategoryTraceListener(); - Debug.Listeners.Add(categoryTraceListener); + [Test] + public void DefaultCategoryTest() + { + CategoryTraceListener categoryTraceListener = new CategoryTraceListener(); + Debug.Listeners.Add(categoryTraceListener); - ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); + ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); - DebugAppender debugAppender = new DebugAppender(); - debugAppender.Layout = new SimpleLayout(); - debugAppender.ActivateOptions(); + DebugAppender debugAppender = new DebugAppender(); + debugAppender.Layout = new SimpleLayout(); + debugAppender.ActivateOptions(); - BasicConfigurator.Configure(rep, debugAppender); + BasicConfigurator.Configure(rep, debugAppender); - ILog log = LogManager.GetLogger(rep.Name, GetType()); - log.Debug("Message"); + ILog log = LogManager.GetLogger(rep.Name, GetType()); + log.Debug("Message"); - Assert.AreEqual( - GetType().ToString(), - categoryTraceListener.Category); + Assert.AreEqual( + GetType().ToString(), + categoryTraceListener.Category); - Debug.Listeners.Remove(categoryTraceListener); - } + Debug.Listeners.Remove(categoryTraceListener); + } #if !NETSTANDARD1_3 // "LocationInfo can't get method names on NETSTANDARD1_3 due to unavailable stack frame APIs" - [Test] - public void MethodNameCategoryTest() - { - CategoryTraceListener categoryTraceListener = new CategoryTraceListener(); - Debug.Listeners.Add(categoryTraceListener); + [Test] + public void MethodNameCategoryTest() + { + CategoryTraceListener categoryTraceListener = new CategoryTraceListener(); + Debug.Listeners.Add(categoryTraceListener); - ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); + ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); - DebugAppender debugAppender = new DebugAppender(); - PatternLayout methodLayout = new PatternLayout("%method"); - methodLayout.ActivateOptions(); - debugAppender.Category = methodLayout; - debugAppender.Layout = new SimpleLayout(); - debugAppender.ActivateOptions(); + DebugAppender debugAppender = new DebugAppender(); + PatternLayout methodLayout = new PatternLayout("%method"); + methodLayout.ActivateOptions(); + debugAppender.Category = methodLayout; + debugAppender.Layout = new SimpleLayout(); + debugAppender.ActivateOptions(); - BasicConfigurator.Configure(rep, debugAppender); + BasicConfigurator.Configure(rep, debugAppender); - ILog log = LogManager.GetLogger(rep.Name, GetType()); - log.Debug("Message"); + ILog log = LogManager.GetLogger(rep.Name, GetType()); + log.Debug("Message"); - Assert.AreEqual( - System.Reflection.MethodInfo.GetCurrentMethod().Name, - categoryTraceListener.Category); + Assert.AreEqual( + System.Reflection.MethodInfo.GetCurrentMethod().Name, + categoryTraceListener.Category); - Debug.Listeners.Remove(categoryTraceListener); - } + Debug.Listeners.Remove(categoryTraceListener); + } #endif - private class TestErrorHandler : IErrorHandler - { - private bool m_errorOccured = false; - - public bool ErrorOccured - { - get { return m_errorOccured; } - } - #region IErrorHandler Members - - public void Error(string message, Exception e, ErrorCode errorCode) - { - m_errorOccured = true; - } - - public void Error(string message, Exception e) - { - Error(message, e, ErrorCode.GenericFailure); - } - - public void Error(string message) - { - Error(message, null, ErrorCode.GenericFailure); - } - - #endregion - } - } + private class TestErrorHandler : IErrorHandler + { + private bool m_errorOccured = false; + + public bool ErrorOccured + { + get { return m_errorOccured; } + } + #region IErrorHandler Members + + public void Error(string message, Exception e, ErrorCode errorCode) + { + m_errorOccured = true; + } + + public void Error(string message, Exception e) + { + Error(message, e, ErrorCode.GenericFailure); + } + + public void Error(string message) + { + Error(message, null, ErrorCode.GenericFailure); + } + + #endregion + } + } } http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/82c3e389/tests/src/Appender/EventLogAppenderTest.cs ---------------------------------------------------------------------- diff --git a/tests/src/Appender/EventLogAppenderTest.cs b/tests/src/Appender/EventLogAppenderTest.cs index c3a3376..e5d8d70 100644 --- a/tests/src/Appender/EventLogAppenderTest.cs +++ b/tests/src/Appender/EventLogAppenderTest.cs @@ -43,7 +43,7 @@ namespace log4net.Tests.Appender public void TestGetEntryTypeForExistingApplicationName() { EventLogAppender eventAppender = new EventLogAppender(); - eventAppender.ApplicationName = "Winlogon"; + eventAppender.ApplicationName = "Winlogon"; eventAppender.ActivateOptions(); Assert.AreEqual( @@ -75,17 +75,17 @@ namespace log4net.Tests.Appender GetEntryType(eventAppender, Level.Off)); } - /// <summary> - /// ActivateOption tries to create an event source if it doesn't exist but this is going to fail on more modern Windows versions unless the code is run with local administrator privileges. - /// </summary> - [Test] + /// <summary> + /// ActivateOption tries to create an event source if it doesn't exist but this is going to fail on more modern Windows versions unless the code is run with local administrator privileges. + /// </summary> + [Test] [Ignore("seems to require administrator privileges or a specific environent when run")] - public void ActivateOptionsDisablesAppenderIfSourceDoesntExist() - { - EventLogAppender eventAppender = new EventLogAppender(); - eventAppender.ActivateOptions(); - Assert.AreEqual(Level.Off, eventAppender.Threshold); - } + public void ActivateOptionsDisablesAppenderIfSourceDoesntExist() + { + EventLogAppender eventAppender = new EventLogAppender(); + eventAppender.ActivateOptions(); + Assert.AreEqual(Level.Off, eventAppender.Threshold); + } // // Helper functions to dig into the appender http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/82c3e389/tests/src/Appender/EventRaisingAppender.cs ---------------------------------------------------------------------- diff --git a/tests/src/Appender/EventRaisingAppender.cs b/tests/src/Appender/EventRaisingAppender.cs index 6716889..2fc16ab 100644 --- a/tests/src/Appender/EventRaisingAppender.cs +++ b/tests/src/Appender/EventRaisingAppender.cs @@ -28,54 +28,54 @@ using System.Threading.Tasks; namespace log4net.Tests.Appender { - /// <summary> - /// Provides data for the <see cref="EventRaisingAppender.LoggingEventAppended"/> event. - /// </summary> - /// <seealso cref="System.EventArgs" /> - public class LoggingEventEventArgs : EventArgs - { - public log4net.Core.LoggingEvent LoggingEvent { get; private set; } + /// <summary> + /// Provides data for the <see cref="EventRaisingAppender.LoggingEventAppended"/> event. + /// </summary> + /// <seealso cref="System.EventArgs" /> + public class LoggingEventEventArgs : EventArgs + { + public log4net.Core.LoggingEvent LoggingEvent { get; private set; } - public LoggingEventEventArgs(log4net.Core.LoggingEvent loggingEvent) - { - if (loggingEvent == null) throw new ArgumentNullException("loggingEvent"); - LoggingEvent = loggingEvent; - } - } + public LoggingEventEventArgs(log4net.Core.LoggingEvent loggingEvent) + { + if (loggingEvent == null) throw new ArgumentNullException("loggingEvent"); + LoggingEvent = loggingEvent; + } + } - /// <summary> - /// A log4net appender that raises an event each time a logging event is appended - /// </summary> - /// <remarks> - /// This class is intended to provide a way for test code to inspect logging - /// events as they are generated. - /// </remarks> - public class EventRaisingAppender : log4net.Appender.IAppender - { - public event EventHandler<LoggingEventEventArgs> LoggingEventAppended; + /// <summary> + /// A log4net appender that raises an event each time a logging event is appended + /// </summary> + /// <remarks> + /// This class is intended to provide a way for test code to inspect logging + /// events as they are generated. + /// </remarks> + public class EventRaisingAppender : log4net.Appender.IAppender + { + public event EventHandler<LoggingEventEventArgs> LoggingEventAppended; - protected void OnLoggingEventAppended(LoggingEventEventArgs e) - { - var loggingEventAppended = LoggingEventAppended; - if (loggingEventAppended != null) - { - loggingEventAppended(this, e); - } - } + protected void OnLoggingEventAppended(LoggingEventEventArgs e) + { + var loggingEventAppended = LoggingEventAppended; + if (loggingEventAppended != null) + { + loggingEventAppended(this, e); + } + } - public void Close() - { - } + public void Close() + { + } - public void DoAppend(log4net.Core.LoggingEvent loggingEvent) - { - OnLoggingEventAppended(new LoggingEventEventArgs(loggingEvent)); - } + public void DoAppend(log4net.Core.LoggingEvent loggingEvent) + { + OnLoggingEventAppended(new LoggingEventEventArgs(loggingEvent)); + } - public string Name - { - get; set; - } - } + public string Name + { + get; set; + } + } } #endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/82c3e389/tests/src/Appender/MemoryAppenderTest.cs ---------------------------------------------------------------------- diff --git a/tests/src/Appender/MemoryAppenderTest.cs b/tests/src/Appender/MemoryAppenderTest.cs index 4fe4a6e..b97bd62 100644 --- a/tests/src/Appender/MemoryAppenderTest.cs +++ b/tests/src/Appender/MemoryAppenderTest.cs @@ -34,59 +34,59 @@ using log4net.Repository; namespace log4net.Tests.Appender { - [TestFixture] - public class MemoryAppenderTest - { - private static int cThreadsRunning; - private const int cThreadsMax = 10; - private const int cLogEntriesPerThread = 100; - private const long cEventsExpected = cLogEntriesPerThread * cThreadsMax; + [TestFixture] + public class MemoryAppenderTest + { + private static int cThreadsRunning; + private const int cThreadsMax = 10; + private const int cLogEntriesPerThread = 100; + private const long cEventsExpected = cLogEntriesPerThread * cThreadsMax; - [Test] - public void TestThreadSafety() - { - ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); - var memoryAppender = new MemoryAppender(); - var patternLayout = new PatternLayout(); - memoryAppender.Layout = patternLayout; - memoryAppender.ActivateOptions(); - BasicConfigurator.Configure(rep, memoryAppender); + [Test] + public void TestThreadSafety() + { + ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); + var memoryAppender = new MemoryAppender(); + var patternLayout = new PatternLayout(); + memoryAppender.Layout = patternLayout; + memoryAppender.ActivateOptions(); + BasicConfigurator.Configure(rep, memoryAppender); - cThreadsRunning = cThreadsMax; - var threads = Enumerable.Range(0, cThreadsMax) - .Select(i => new Thread(LogMessages(rep.Name))) - .ToList(); + cThreadsRunning = cThreadsMax; + var threads = Enumerable.Range(0, cThreadsMax) + .Select(i => new Thread(LogMessages(rep.Name))) + .ToList(); - foreach (var thread in threads) - { - thread.Start(); - } + foreach (var thread in threads) + { + thread.Start(); + } - long cEventsRead = 0; - while (cThreadsRunning > 0) - { - var events = memoryAppender.PopAllEvents(); - cEventsRead += events.Length; - } - foreach (var thread in threads) - { - thread.Join(); - } - cEventsRead += memoryAppender.PopAllEvents().Length; - Assert.AreEqual(cEventsExpected, cEventsRead, "Log events were lost."); - } + long cEventsRead = 0; + while (cThreadsRunning > 0) + { + var events = memoryAppender.PopAllEvents(); + cEventsRead += events.Length; + } + foreach (var thread in threads) + { + thread.Join(); + } + cEventsRead += memoryAppender.PopAllEvents().Length; + Assert.AreEqual(cEventsExpected, cEventsRead, "Log events were lost."); + } - private static ThreadStart LogMessages(string repository) - { - return () => { + private static ThreadStart LogMessages(string repository) + { + return () => { var logger = LogManager.GetLogger(repository, "LoggerThread"); for (var i = 0; i < cLogEntriesPerThread; i++) { - logger.InfoFormat("Logging message {0}", i); + logger.InfoFormat("Logging message {0}", i); } Interlocked.Decrement(ref cThreadsRunning); - }; + }; + } } - } } #endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/82c3e389/tests/src/Appender/RecursiveLoggingTest.cs ---------------------------------------------------------------------- diff --git a/tests/src/Appender/RecursiveLoggingTest.cs b/tests/src/Appender/RecursiveLoggingTest.cs index 191ddf6..8aa077e 100644 --- a/tests/src/Appender/RecursiveLoggingTest.cs +++ b/tests/src/Appender/RecursiveLoggingTest.cs @@ -34,53 +34,53 @@ using System.Globalization; namespace log4net.Tests.Appender { - [TestFixture] - public class RecursiveLoggingTest - { - private EventRaisingAppender m_eventRaisingAppender; - private Repository.Hierarchy.Hierarchy m_hierarchy; - private int m_eventCount; - private ILogger m_logger; - private const int MaxRecursion = 3; + [TestFixture] + public class RecursiveLoggingTest + { + private EventRaisingAppender m_eventRaisingAppender; + private Repository.Hierarchy.Hierarchy m_hierarchy; + private int m_eventCount; + private ILogger m_logger; + private const int MaxRecursion = 3; - private void SetupRepository() - { - m_hierarchy = new Repository.Hierarchy.Hierarchy(); + private void SetupRepository() + { + m_hierarchy = new Repository.Hierarchy.Hierarchy(); - m_eventRaisingAppender = new EventRaisingAppender(); - m_eventRaisingAppender.LoggingEventAppended += eventRaisingAppender_LoggingEventAppended; + m_eventRaisingAppender = new EventRaisingAppender(); + m_eventRaisingAppender.LoggingEventAppended += eventRaisingAppender_LoggingEventAppended; - m_hierarchy.Root.Level = Level.All; - m_hierarchy.Root.AddAppender(m_eventRaisingAppender); + m_hierarchy.Root.Level = Level.All; + m_hierarchy.Root.AddAppender(m_eventRaisingAppender); - BasicConfigurator.Configure(m_hierarchy, m_eventRaisingAppender); + BasicConfigurator.Configure(m_hierarchy, m_eventRaisingAppender); - m_logger = m_hierarchy.GetLogger("test"); + m_logger = m_hierarchy.GetLogger("test"); - } + } - void eventRaisingAppender_LoggingEventAppended(object sender, LoggingEventEventArgs e) - { - if (m_eventCount < MaxRecursion && m_logger != null) - { - m_eventCount++; - string message = String.Format(CultureInfo.CurrentCulture, "Log event {0} from EventRaisingAppender", m_eventCount); - Console.WriteLine("Logging message: " + message); - m_logger.Log(typeof(RecursiveLoggingTest), Level.Warn, message, null); - } - } + void eventRaisingAppender_LoggingEventAppended(object sender, LoggingEventEventArgs e) + { + if (m_eventCount < MaxRecursion && m_logger != null) + { + m_eventCount++; + string message = String.Format(CultureInfo.CurrentCulture, "Log event {0} from EventRaisingAppender", m_eventCount); + Console.WriteLine("Logging message: " + message); + m_logger.Log(typeof(RecursiveLoggingTest), Level.Warn, message, null); + } + } - [Test] - public void TestAllowRecursiveLoggingFromAppender() - { - SetupRepository(); + [Test] + public void TestAllowRecursiveLoggingFromAppender() + { + SetupRepository(); - m_eventCount = 0; - m_logger.Log(typeof(RecursiveLoggingTest), Level.Warn, "Message logged", null); + m_eventCount = 0; + m_logger.Log(typeof(RecursiveLoggingTest), Level.Warn, "Message logged", null); - Assert.AreEqual(MaxRecursion, m_eventCount, "Expected MaxRecursion recursive calls"); - } + Assert.AreEqual(MaxRecursion, m_eventCount, "Expected MaxRecursion recursive calls"); + } - } + } } #endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/82c3e389/tests/src/Appender/RemotingAppenderTest.cs ---------------------------------------------------------------------- diff --git a/tests/src/Appender/RemotingAppenderTest.cs b/tests/src/Appender/RemotingAppenderTest.cs index ded5e4b..904df41 100644 --- a/tests/src/Appender/RemotingAppenderTest.cs +++ b/tests/src/Appender/RemotingAppenderTest.cs @@ -230,7 +230,7 @@ namespace log4net.Tests.Appender } } - /// <summary> + /// <summary> /// Shuts down any loggers in the hierarchy, along /// with all appenders. /// </summary> @@ -262,21 +262,21 @@ namespace log4net.Tests.Appender ResetRepository(); } - /// <summary> - /// Close down remoting infrastructure - /// </summary> - [TestFixtureTearDown] - public void UnregisterRemotingServerChannel() { - if (m_remotingChannel != null) { - ((TcpChannel) m_remotingChannel).StopListening(null); - try { - ChannelServices.UnregisterChannel(m_remotingChannel); - } - catch (Exception) { - } - m_remotingChannel = null; - } - } + /// <summary> + /// Close down remoting infrastructure + /// </summary> + [TestFixtureTearDown] + public void UnregisterRemotingServerChannel() { + if (m_remotingChannel != null) { + ((TcpChannel) m_remotingChannel).StopListening(null); + try { + ChannelServices.UnregisterChannel(m_remotingChannel); + } + catch (Exception) { + } + m_remotingChannel = null; + } + } /// <summary> /// Configures the root appender for counting and rolling http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/82c3e389/tests/src/Appender/TraceAppenderTest.cs ---------------------------------------------------------------------- diff --git a/tests/src/Appender/TraceAppenderTest.cs b/tests/src/Appender/TraceAppenderTest.cs index 21e8fbd..ec5227a 100644 --- a/tests/src/Appender/TraceAppenderTest.cs +++ b/tests/src/Appender/TraceAppenderTest.cs @@ -29,84 +29,84 @@ using NUnit.Framework; namespace log4net.Tests.Appender { - [TestFixture] - public class TraceAppenderTest - { - [Test] - public void DefaultCategoryTest() - { - CategoryTraceListener categoryTraceListener = new CategoryTraceListener(); - Trace.Listeners.Clear(); - Trace.Listeners.Add(categoryTraceListener); + [TestFixture] + public class TraceAppenderTest + { + [Test] + public void DefaultCategoryTest() + { + CategoryTraceListener categoryTraceListener = new CategoryTraceListener(); + Trace.Listeners.Clear(); + Trace.Listeners.Add(categoryTraceListener); - ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); + ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); - TraceAppender traceAppender = new TraceAppender(); - traceAppender.Layout = new SimpleLayout(); - traceAppender.ActivateOptions(); + TraceAppender traceAppender = new TraceAppender(); + traceAppender.Layout = new SimpleLayout(); + traceAppender.ActivateOptions(); - BasicConfigurator.Configure(rep, traceAppender); + BasicConfigurator.Configure(rep, traceAppender); - ILog log = LogManager.GetLogger(rep.Name, GetType()); - log.Debug("Message"); + ILog log = LogManager.GetLogger(rep.Name, GetType()); + log.Debug("Message"); - Assert.AreEqual( - GetType().ToString(), - categoryTraceListener.Category); - } + Assert.AreEqual( + GetType().ToString(), + categoryTraceListener.Category); + } #if !NETSTANDARD1_3 // "LocationInfo can't get method names on NETSTANDARD1_3 due to unavailable stack frame APIs" - [Test] - public void MethodNameCategoryTest() - { - CategoryTraceListener categoryTraceListener = new CategoryTraceListener(); - Trace.Listeners.Clear(); - Trace.Listeners.Add(categoryTraceListener); - - ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); - - TraceAppender traceAppender = new TraceAppender(); - PatternLayout methodLayout = new PatternLayout("%method"); - methodLayout.ActivateOptions(); - traceAppender.Category = methodLayout; - traceAppender.Layout = new SimpleLayout(); - traceAppender.ActivateOptions(); - - BasicConfigurator.Configure(rep, traceAppender); - - ILog log = LogManager.GetLogger(rep.Name, GetType()); - log.Debug("Message"); - - Assert.AreEqual( - System.Reflection.MethodInfo.GetCurrentMethod().Name, - categoryTraceListener.Category); - } + [Test] + public void MethodNameCategoryTest() + { + CategoryTraceListener categoryTraceListener = new CategoryTraceListener(); + Trace.Listeners.Clear(); + Trace.Listeners.Add(categoryTraceListener); + + ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); + + TraceAppender traceAppender = new TraceAppender(); + PatternLayout methodLayout = new PatternLayout("%method"); + methodLayout.ActivateOptions(); + traceAppender.Category = methodLayout; + traceAppender.Layout = new SimpleLayout(); + traceAppender.ActivateOptions(); + + BasicConfigurator.Configure(rep, traceAppender); + + ILog log = LogManager.GetLogger(rep.Name, GetType()); + log.Debug("Message"); + + Assert.AreEqual( + System.Reflection.MethodInfo.GetCurrentMethod().Name, + categoryTraceListener.Category); + } #endif - } - - public class CategoryTraceListener : TraceListener - { - private string lastCategory; - - public override void Write(string message) - { - // empty - } - - public override void WriteLine(string message) - { - Write(message); - } - - public override void Write(string message, string category) - { - lastCategory = category; - base.Write(message, category); - } - - public string Category - { - get { return lastCategory; } - } - } + } + + public class CategoryTraceListener : TraceListener + { + private string lastCategory; + + public override void Write(string message) + { + // empty + } + + public override void WriteLine(string message) + { + Write(message); + } + + public override void Write(string message, string category) + { + lastCategory = category; + base.Write(message, category); + } + + public string Category + { + get { return lastCategory; } + } + } } http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/82c3e389/tests/src/Context/ThreadContextTest.cs ---------------------------------------------------------------------- diff --git a/tests/src/Context/ThreadContextTest.cs b/tests/src/Context/ThreadContextTest.cs index e7c8938..c82fd63 100644 --- a/tests/src/Context/ThreadContextTest.cs +++ b/tests/src/Context/ThreadContextTest.cs @@ -39,12 +39,12 @@ namespace log4net.Tests.Context [TestFixture] public class ThreadContextTest { - [TearDown] - public void TearDown() { - Utils.RemovePropertyFromAllContexts(); - } + [TearDown] + public void TearDown() { + Utils.RemovePropertyFromAllContexts(); + } - [Test] + [Test] public void TestThreadPropertiesPattern() { StringAppender stringAppender = new StringAppender(); @@ -76,7 +76,7 @@ namespace log4net.Tests.Context public void TestThreadStackPattern() { StringAppender stringAppender = new StringAppender(); - stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}"); + stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}"); ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); BasicConfigurator.Configure(rep, stringAppender); @@ -103,7 +103,7 @@ namespace log4net.Tests.Context public void TestThreadStackPattern2() { StringAppender stringAppender = new StringAppender(); - stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}"); + stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}"); ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); BasicConfigurator.Configure(rep, stringAppender); @@ -137,7 +137,7 @@ namespace log4net.Tests.Context public void TestThreadStackPatternNullVal() { StringAppender stringAppender = new StringAppender(); - stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}"); + stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}"); ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); BasicConfigurator.Configure(rep, stringAppender); @@ -164,7 +164,7 @@ namespace log4net.Tests.Context public void TestThreadStackPatternNullVal2() { StringAppender stringAppender = new StringAppender(); - stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}"); + stringAppender.Layout = new PatternLayout("%property{" + Utils.PROPERTY_KEY + "}"); ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); BasicConfigurator.Configure(rep, stringAppender); @@ -194,7 +194,7 @@ namespace log4net.Tests.Context stringAppender.Reset(); } - private static string TestBackgroundThreadContextPropertyRepository; + private static string TestBackgroundThreadContextPropertyRepository; [Test] public void TestBackgroundThreadContextProperty() @@ -202,7 +202,7 @@ namespace log4net.Tests.Context StringAppender stringAppender = new StringAppender(); stringAppender.Layout = new PatternLayout("%property{DateTimeTodayToString}"); - ILoggerRepository rep = LogManager.CreateRepository(TestBackgroundThreadContextPropertyRepository = "TestBackgroundThreadContextPropertyRepository" + Guid.NewGuid().ToString()); + ILoggerRepository rep = LogManager.CreateRepository(TestBackgroundThreadContextPropertyRepository = "TestBackgroundThreadContextPropertyRepository" + Guid.NewGuid().ToString()); BasicConfigurator.Configure(rep, stringAppender); Thread thread = new Thread(new ThreadStart(ExecuteBackgroundThread)); @@ -213,7 +213,7 @@ namespace log4net.Tests.Context private static void ExecuteBackgroundThread() { - ILog log = LogManager.GetLogger(TestBackgroundThreadContextPropertyRepository, "ExecuteBackGroundThread"); + ILog log = LogManager.GetLogger(TestBackgroundThreadContextPropertyRepository, "ExecuteBackGroundThread"); ThreadContext.Properties["DateTimeTodayToString"] = DateTime.Today.ToString(); log.Info("TestMessage"); http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/82c3e389/tests/src/Core/FixingTest.cs ---------------------------------------------------------------------- diff --git a/tests/src/Core/FixingTest.cs b/tests/src/Core/FixingTest.cs index 50bbb89..34af05d 100644 --- a/tests/src/Core/FixingTest.cs +++ b/tests/src/Core/FixingTest.cs @@ -31,28 +31,28 @@ namespace log4net.Tests.Core [TestFixture] public class FixingTest { - const string TEST_REPOSITORY = "Test Repository"; + const string TEST_REPOSITORY = "Test Repository"; #if NETSTANDARD1_3 - [OneTimeSetUp] + [OneTimeSetUp] #else - [TestFixtureSetUp] + [TestFixtureSetUp] #endif public void CreateRepository() { - bool exists = false; - Repository.ILoggerRepository[] repositories = LogManager.GetAllRepositories(); - if (repositories != null) { - foreach (Repository.ILoggerRepository r in repositories) { - if (r.Name == TEST_REPOSITORY) { - exists = true; - break; - } - } - } - if (!exists) { - LogManager.CreateRepository(TEST_REPOSITORY); - } + bool exists = false; + Repository.ILoggerRepository[] repositories = LogManager.GetAllRepositories(); + if (repositories != null) { + foreach (Repository.ILoggerRepository r in repositories) { + if (r.Name == TEST_REPOSITORY) { + exists = true; + break; + } + } + } + if (!exists) { + LogManager.CreateRepository(TEST_REPOSITORY); + } // write-once if (Thread.CurrentThread.Name == null) @@ -149,8 +149,8 @@ namespace log4net.Tests.Core Assert.AreEqual("log4net.Tests.Core.FixingTest", loggingEventData.LoggerName, "LoggerName is incorrect"); Assert.AreEqual(LogManager.GetRepository(TEST_REPOSITORY), loggingEvent.Repository, "Repository is incorrect"); Assert.AreEqual(Thread.CurrentThread.Name, loggingEventData.ThreadName, "ThreadName is incorrect"); - // This test is redundant as loggingEventData.TimeStamp is a value type and cannot be null - // Assert.IsNotNull(loggingEventData.TimeStampUtc, "TimeStamp is incorrect"); + // This test is redundant as loggingEventData.TimeStamp is a value type and cannot be null + // Assert.IsNotNull(loggingEventData.TimeStampUtc, "TimeStamp is incorrect"); Assert.AreEqual("TestUser", loggingEventData.UserName, "UserName is incorrect"); Assert.AreEqual("Logging event works", loggingEvent.RenderedMessage, "Message is incorrect"); } http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/82c3e389/tests/src/DateFormatter/AbsoluteTimeDateFormatterTest.cs ---------------------------------------------------------------------- diff --git a/tests/src/DateFormatter/AbsoluteTimeDateFormatterTest.cs b/tests/src/DateFormatter/AbsoluteTimeDateFormatterTest.cs index 5fe1bb1..4588f0d 100644 --- a/tests/src/DateFormatter/AbsoluteTimeDateFormatterTest.cs +++ b/tests/src/DateFormatter/AbsoluteTimeDateFormatterTest.cs @@ -26,80 +26,80 @@ using NUnit.Framework; namespace log4net.Tests.DateFormatter { - [TestFixture] - public class AbsoluteTimeDateFormatterTest - { + [TestFixture] + public class AbsoluteTimeDateFormatterTest + { - [TearDown] - public void resetCounts() - { - FormatterOne.invocations = 0; - } + [TearDown] + public void resetCounts() + { + FormatterOne.invocations = 0; + } - [Test] - public void CacheWorksForSameTicks() - { - StringWriter sw = new StringWriter(); - FormatterOne f1 = new FormatterOne(); - FormatterOne f2 = new FormatterOne(); - DateTime dt = DateTime.Now; - f1.FormatDate(dt, sw); - f2.FormatDate(dt, sw); - Assert.AreEqual(1, FormatterOne.invocations); - } + [Test] + public void CacheWorksForSameTicks() + { + StringWriter sw = new StringWriter(); + FormatterOne f1 = new FormatterOne(); + FormatterOne f2 = new FormatterOne(); + DateTime dt = DateTime.Now; + f1.FormatDate(dt, sw); + f2.FormatDate(dt, sw); + Assert.AreEqual(1, FormatterOne.invocations); + } - [Test] - public void CacheWorksForSameSecond() - { - StringWriter sw = new StringWriter(); - FormatterOne f1 = new FormatterOne(); - FormatterOne f2 = new FormatterOne(); - DateTime dt1 = DateTime.Today; - DateTime dt2 = dt1.AddMilliseconds(600); - f1.FormatDate(dt1, sw); - f2.FormatDate(dt2, sw); - Assert.AreEqual(1, FormatterOne.invocations); - } + [Test] + public void CacheWorksForSameSecond() + { + StringWriter sw = new StringWriter(); + FormatterOne f1 = new FormatterOne(); + FormatterOne f2 = new FormatterOne(); + DateTime dt1 = DateTime.Today; + DateTime dt2 = dt1.AddMilliseconds(600); + f1.FormatDate(dt1, sw); + f2.FormatDate(dt2, sw); + Assert.AreEqual(1, FormatterOne.invocations); + } - [Test] - public void CacheExpiresWhenCrossingSecond() - { - StringWriter sw = new StringWriter(); - FormatterOne f1 = new FormatterOne(); - FormatterOne f2 = new FormatterOne(); - DateTime dt1 = DateTime.Today.AddMinutes(1); - DateTime dt2 = dt1.AddMilliseconds(1100); - f1.FormatDate(dt1, sw); - f2.FormatDate(dt2, sw); - Assert.AreEqual(2, FormatterOne.invocations); - } + [Test] + public void CacheExpiresWhenCrossingSecond() + { + StringWriter sw = new StringWriter(); + FormatterOne f1 = new FormatterOne(); + FormatterOne f2 = new FormatterOne(); + DateTime dt1 = DateTime.Today.AddMinutes(1); + DateTime dt2 = dt1.AddMilliseconds(1100); + f1.FormatDate(dt1, sw); + f2.FormatDate(dt2, sw); + Assert.AreEqual(2, FormatterOne.invocations); + } - [Test] - public void CacheIsLocalToSubclass() - { - StringWriter sw = new StringWriter(); - FormatterOne f1 = new FormatterOne(); - FormatterTwo f2 = new FormatterTwo(); - DateTime dt1 = DateTime.Today.AddMinutes(10); - f1.FormatDate(dt1, sw); - f2.FormatDate(dt1, sw); - Assert.AreEqual(2, FormatterOne.invocations); - } - } + [Test] + public void CacheIsLocalToSubclass() + { + StringWriter sw = new StringWriter(); + FormatterOne f1 = new FormatterOne(); + FormatterTwo f2 = new FormatterTwo(); + DateTime dt1 = DateTime.Today.AddMinutes(10); + f1.FormatDate(dt1, sw); + f2.FormatDate(dt1, sw); + Assert.AreEqual(2, FormatterOne.invocations); + } + } - internal class FormatterOne : AbsoluteTimeDateFormatter - { - internal static int invocations = 0; + internal class FormatterOne : AbsoluteTimeDateFormatter + { + internal static int invocations = 0; - override protected void FormatDateWithoutMillis(DateTime dateToFormat, - StringBuilder buffer) - { - invocations++; - } + override protected void FormatDateWithoutMillis(DateTime dateToFormat, + StringBuilder buffer) + { + invocations++; + } - } + } - internal class FormatterTwo : FormatterOne - { - } + internal class FormatterTwo : FormatterOne + { + } } http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/82c3e389/tests/src/Filter/FilterTest.cs ---------------------------------------------------------------------- diff --git a/tests/src/Filter/FilterTest.cs b/tests/src/Filter/FilterTest.cs index f88e867..c0ff4ff 100644 --- a/tests/src/Filter/FilterTest.cs +++ b/tests/src/Filter/FilterTest.cs @@ -32,89 +32,89 @@ using NUnit.Framework; namespace log4net.Tests.Filter { - [TestFixture] - public class FilterTest - { - [Test] - public void FilterConfigurationTest() - { - XmlDocument log4netConfig = new XmlDocument(); - #region Load log4netConfig - log4netConfig.LoadXml(@" - <log4net> - <appender name=""MemoryAppender"" type=""log4net.Appender.MemoryAppender, log4net""> - <filter type=""log4net.Tests.Filter.MultiplePropertyFilter, log4net.Tests""> - <condition> - <key value=""ABC"" /> - <stringToMatch value=""123"" /> - </condition> - <condition> - <key value=""DEF"" /> - <stringToMatch value=""456"" /> - </condition> - </filter> - </appender> - <root> - <level value=""ALL"" /> - <appender-ref ref=""MemoryAppender"" /> - </root> - </log4net>"); - #endregion + [TestFixture] + public class FilterTest + { + [Test] + public void FilterConfigurationTest() + { + XmlDocument log4netConfig = new XmlDocument(); + #region Load log4netConfig + log4netConfig.LoadXml(@" + <log4net> + <appender name=""MemoryAppender"" type=""log4net.Appender.MemoryAppender, log4net""> + <filter type=""log4net.Tests.Filter.MultiplePropertyFilter, log4net.Tests""> + <condition> + <key value=""ABC"" /> + <stringToMatch value=""123"" /> + </condition> + <condition> + <key value=""DEF"" /> + <stringToMatch value=""456"" /> + </condition> + </filter> + </appender> + <root> + <level value=""ALL"" /> + <appender-ref ref=""MemoryAppender"" /> + </root> + </log4net>"); + #endregion - ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); - XmlConfigurator.Configure(rep, log4netConfig["log4net"]); + ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); + XmlConfigurator.Configure(rep, log4netConfig["log4net"]); - IAppender[] appenders = LogManager.GetRepository(rep.Name).GetAppenders(); - Assert.IsTrue(appenders.Length == 1); + IAppender[] appenders = LogManager.GetRepository(rep.Name).GetAppenders(); + Assert.IsTrue(appenders.Length == 1); - IAppender appender = Array.Find(appenders, delegate(IAppender a) { - return a.Name == "MemoryAppender"; - }); - Assert.IsNotNull(appender); + IAppender appender = Array.Find(appenders, delegate(IAppender a) { + return a.Name == "MemoryAppender"; + }); + Assert.IsNotNull(appender); - MultiplePropertyFilter multiplePropertyFilter = - ((AppenderSkeleton)appender).FilterHead as MultiplePropertyFilter; + MultiplePropertyFilter multiplePropertyFilter = + ((AppenderSkeleton)appender).FilterHead as MultiplePropertyFilter; - MultiplePropertyFilter.Condition[] conditions = multiplePropertyFilter.GetConditions(); - Assert.AreEqual(2, conditions.Length); - Assert.AreEqual("ABC", conditions[0].Key); - Assert.AreEqual("123", conditions[0].StringToMatch); - Assert.AreEqual("DEF", conditions[1].Key); - Assert.AreEqual("456", conditions[1].StringToMatch); - } - } + MultiplePropertyFilter.Condition[] conditions = multiplePropertyFilter.GetConditions(); + Assert.AreEqual(2, conditions.Length); + Assert.AreEqual("ABC", conditions[0].Key); + Assert.AreEqual("123", conditions[0].StringToMatch); + Assert.AreEqual("DEF", conditions[1].Key); + Assert.AreEqual("456", conditions[1].StringToMatch); + } + } - public class MultiplePropertyFilter : FilterSkeleton - { - private readonly List<Condition> _conditions = new List<Condition>(); + public class MultiplePropertyFilter : FilterSkeleton + { + private readonly List<Condition> _conditions = new List<Condition>(); - public override FilterDecision Decide(LoggingEvent loggingEvent) - { - return FilterDecision.Accept; - } + public override FilterDecision Decide(LoggingEvent loggingEvent) + { + return FilterDecision.Accept; + } - public Condition[] GetConditions() - { - return _conditions.ToArray(); - } + public Condition[] GetConditions() + { + return _conditions.ToArray(); + } - public void AddCondition(Condition condition) - { - _conditions.Add(condition); - } + public void AddCondition(Condition condition) + { + _conditions.Add(condition); + } - public class Condition - { - private string key, stringToMatch; - public string Key { - get { return key; } - set { key = value; } - } - public string StringToMatch { - get { return stringToMatch; } - set { stringToMatch = value; } - } - } - } + public class Condition + { + private string key, stringToMatch; + public string Key { + get { return key; } + set { key = value; } + } + public string StringToMatch { + get { return stringToMatch; } + set { stringToMatch = value; } + } + } + } } #endif