You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by rg...@apache.org on 2008/01/31 23:32:40 UTC
svn commit: r617264 -
/logging/log4net/trunk/tests/src/Appender/AdoNetAppenderTest.cs
Author: rgrabowski
Date: Thu Jan 31 14:32:38 2008
New Revision: 617264
URL: http://svn.apache.org/viewvc?rev=617264&view=rev
Log:
Test for LOG4NET-28 demonstrating how to insert NULL values using both an xml configuration and progmatic configuration.
Modified:
logging/log4net/trunk/tests/src/Appender/AdoNetAppenderTest.cs
Modified: logging/log4net/trunk/tests/src/Appender/AdoNetAppenderTest.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/tests/src/Appender/AdoNetAppenderTest.cs?rev=617264&r1=617263&r2=617264&view=diff
==============================================================================
--- logging/log4net/trunk/tests/src/Appender/AdoNetAppenderTest.cs (original)
+++ logging/log4net/trunk/tests/src/Appender/AdoNetAppenderTest.cs Thu Jan 31 14:32:38 2008
@@ -4,8 +4,10 @@
using log4net.Appender;
using log4net.Config;
using log4net.Core;
+using log4net.Layout;
using log4net.Repository;
using log4net.Tests.Appender.AdoNet;
+using log4net.Util;
using NUnit.Framework;
namespace log4net.Tests.Appender
@@ -117,6 +119,74 @@
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);
}
}
}