Author: rgrabowski
Date: Mon Dec 31 08:25:45 2007
New Revision: 607749
URL:
http://svn.apache.org/viewvc?rev=607749&view=rev
Log:
Added stub Ado.Net provider to allow testing of
AdoNetAppender.
Added:
logging/log4net/trunk/tests/src/Appender/AdoNet/ (with
props)
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetComma
nd.cs
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetConne
ction.cs
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetParam
eter.cs
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetParam
eterCollection.cs
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetTrans
action.cs
logging/log4net/trunk/tests/src/Appender/AdoNetAppenderTest.
cs
Modified:
logging/log4net/trunk/tests/src/log4net.Tests.vs2005.csproj
Propchange:
logging/log4net/trunk/tests/src/Appender/AdoNet/
------------------------------------------------------------
------------------
--- bugtraq:logregex (added)
+++ bugtraq:logregex Mon Dec 31 08:25:45 2007
 -0,0 +1

+(LOG4NET-d+)
Propchange:
logging/log4net/trunk/tests/src/Appender/AdoNet/
------------------------------------------------------------
------------------
bugtraq:url = http://i
ssues.apache.org/jira/browse/%BUGID%
Added:
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetComma
nd.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/te
sts/src/Appender/AdoNet/Log4NetCommand.cs?rev=607749&vie
w=auto
============================================================
==================
---
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetComma
nd.cs (added)
+++
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetComma
nd.cs Mon Dec 31 08:25:45 2007
 -0,0
+1,123 
+using System;
+using System.Data;
+
+namespace log4net.Tests.Appender.AdoNet
+{
+ public class Log4NetCommand : IDbCommand
+ {
+ #region AdoNetAppender
+
+ private static Log4NetCommand mostRecentInstance;
+
+ private IDbTransaction transaction;
+ private string commandText;
+ private readonly IDataParameterCollection
parameters;
+ private CommandType commandType;
+ private int executeNonQueryCount;
+
+ public Log4NetCommand()
+ {
+ mostRecentInstance = this;
+
+ parameters = new Log4NetParameterCollection();
+ }
+
+ public void Dispose()
+ {
+ // empty
+ }
+
+ public IDbTransaction Transaction
+ {
+ get { return transaction; }
+ set { transaction = value; }
+ }
+
+ public int ExecuteNonQuery()
+ {
+ executeNonQueryCount++;
+ return 0;
+ }
+
+ public int ExecuteNonQueryCount
+ {
+ get { return executeNonQueryCount; }
+ }
+
+ public IDbDataParameter CreateParameter()
+ {
+ return new Log4NetParameter();
+ }
+
+ public string CommandText
+ {
+ get { return commandText; }
+ set { commandText = value; }
+ }
+
+ public CommandType CommandType
+ {
+ get { return commandType; }
+ set { commandType = value; }
+ }
+
+ public void Prepare()
+ {
+ // empty
+ }
+
+ public IDataParameterCollection Parameters
+ {
+ get { return parameters; }
+ }
+
+ public static Log4NetCommand MostRecentInstance
+ {
+ get { return mostRecentInstance; }
+ }
+
+ #endregion
+
+ #region Not Implemented
+
+ public void Cancel()
+ {
+ throw new NotImplementedException();
+ }
+
+ public IDataReader ExecuteReader()
+ {
+ throw new NotImplementedException();
+ }
+
+ public IDataReader ExecuteReader(CommandBehavior
behavior)
+ {
+ throw new NotImplementedException();
+ }
+
+ public object ExecuteScalar()
+ {
+ throw new NotImplementedException();
+ }
+
+ public IDbConnection Connection
+ {
+ get { throw new NotImplementedException(); }
+ set { throw new NotImplementedException(); }
+ }
+
+ public int CommandTimeout
+ {
+ get { throw new NotImplementedException(); }
+ set { throw new NotImplementedException(); }
+ }
+
+ public UpdateRowSource UpdatedRowSource
+ {
+ get { throw new NotImplementedException(); }
+ set { throw new NotImplementedException(); }
+ }
+
+ #endregion
+ }
+}
Added:
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetConne
ction.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk
/tests/src/Appender/AdoNet/Log4NetConnection.cs?rev=607749&a
mp;view=auto
============================================================
==================
---
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetConne
ction.cs (added)
+++
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetConne
ction.cs Mon Dec 31 08:25:45 2007
 -0,0
+1,90 
+using System;
+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
+ }
+}
Added:
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetParam
eter.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/
tests/src/Appender/AdoNet/Log4NetParameter.cs?rev=607749&
;view=auto
============================================================
==================
---
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetParam
eter.cs (added)
+++
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetParam
eter.cs Mon Dec 31 08:25:45 2007
 -0,0
+1,82 
+using System;
+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
+ }
+}
Added:
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetParam
eterCollection.cs
URL: http://svn.apache.org/viewvc/logging/log4
net/trunk/tests/src/Appender/AdoNet/Log4NetParameterCollecti
on.cs?rev=607749&view=auto
============================================================
==================
---
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetParam
eterCollection.cs (added)
+++
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetParam
eterCollection.cs Mon Dec 31 08:25:45 2007
 -0,0
+1,48 
+using System;
+using System.Collections;
+using System.Data;
+
+namespace log4net.Tests.Appender.AdoNet
+{
+ public class Log4NetParameterCollection :
CollectionBase, IDataParameterCollection
+ {
+ #region AdoNetAppender
+
+ private readonly Hashtable parameterNameToIndex =
new Hashtable();
+
+ protected override void OnInsertComplete(int index,
object value)
+ {
+ base.OnInsertComplete(index, value);
+
+ IDataParameter param = (IDataParameter)value;
+ parameterNameToIndex[param.ParameterName] =
index;
+ }
+
+ public int IndexOf(string parameterName)
+ {
+ return
(int)parameterNameToIndex[parameterName];
+ }
+
+ public object this[string parameterName]
+ {
+ get { return InnerList[IndexOf(parameterName)];
}
+ set {
InnerList[InnerList.IndexOf(parameterName)] = value; }
+ }
+
+ #endregion
+
+ #region Not Implemented
+
+ public void RemoveAt(string parameterName)
+ {
+ throw new NotImplementedException();
+ }
+
+ public bool Contains(string parameterName)
+ {
+ throw new NotImplementedException();
+ }
+
+ #endregion
+ }
+}
Added:
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetTrans
action.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trun
k/tests/src/Appender/AdoNet/Log4NetTransaction.cs?rev=607749
&view=auto
============================================================
==================
---
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetTrans
action.cs (added)
+++
logging/log4net/trunk/tests/src/Appender/AdoNet/Log4NetTrans
action.cs Mon Dec 31 08:25:45 2007
 -0,0
+1,41 
+using System;
+using System.Data;
+
+namespace log4net.Tests.Appender.AdoNet
+{
+ public class Log4NetTransaction : IDbTransaction
+ {
+ #region AdoNetAppender
+
+ public void Commit()
+ {
+ // empty
+ }
+
+ public void Rollback()
+ {
+ // empty
+ }
+
+ #endregion
+
+ #region Not Implemented
+
+ public IDbConnection Connection
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public IsolationLevel IsolationLevel
+ {
+ get { throw new NotImplementedException(); }
+ }
+
+ public void Dispose()
+ {
+ throw new NotImplementedException();
+ }
+
+ #endregion
+ }
+}
Added:
logging/log4net/trunk/tests/src/Appender/AdoNetAppenderTest.
cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/tests
/src/Appender/AdoNetAppenderTest.cs?rev=607749&view=auto
============================================================
==================
---
logging/log4net/trunk/tests/src/Appender/AdoNetAppenderTest.
cs (added)
+++
logging/log4net/trunk/tests/src/Appender/AdoNetAppenderTest.
cs Mon Dec 31 08:25:45 2007
 -0,0
+1,122 
+using System;
+using System.Data;
+using System.Xml;
+using log4net.Appender;
+using log4net.Config;
+using log4net.Core;
+using log4net.Repository;
+using log4net.Tests.Appender.AdoNet;
+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 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.Log4NetConne
ction"" />
+ <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"&quo
t; />
+ </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);
+ }
+ }
+}
Modified:
logging/log4net/trunk/tests/src/log4net.Tests.vs2005.csproj
URL: http://svn.apache.org/viewvc/lo
gging/log4net/trunk/tests/src/log4net.Tests.vs2005.csproj?re
v=607749&r1=607748&r2=607749&view=diff
============================================================
==================
---
logging/log4net/trunk/tests/src/log4net.Tests.vs2005.csproj
(original)
+++
logging/log4net/trunk/tests/src/log4net.Tests.vs2005.csproj
Mon Dec 31 08:25:45 2007
 -74,6
+74,7 
<Reference Include="System">
<Name>System</Name>
</Reference>
+ <Reference Include="System.configuration"
/>
<Reference Include="System.Data">
<Name>System.Data</Name>
</Reference>
 -89,6
+90,12 
<Link>AssemblyVersionInfo.cs</Link>
<SubType>Code</SubType>
</Compile>
+ <Compile
Include="AppenderAdoNetAppenderTest.cs" />
+ <Compile
Include="AppenderAdoNetLog4NetCommand.cs" />
+ <Compile
Include="AppenderAdoNetLog4NetConnection.cs"
/>
+ <Compile
Include="AppenderAdoNetLog4NetParameter.cs"
/>
+ <Compile
Include="AppenderAdoNetLog4NetParameterCollection.cs&
quot; />
+ <Compile
Include="AppenderAdoNetLog4NetTransaction.cs"
/>
<Compile
Include="AppenderBufferingAppenderTest.cs">
<SubType>Code</SubType>
</Compile>
|