List Info

Thread: svn commit: r607749 - in /logging/log4net/trunk/tests/src: ./ Appender/ Appender/AdoNet/




svn commit: r607749 - in /logging/log4net/trunk/tests/src: ./ Appender/ Appender/AdoNet/
country flaguser name
United States
2007-12-31 10:25:47
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>



[1]

about | contact  Other archives ( Real Estate discussion Medical topics )