Author: bodewig
Date: Wed Apr 1 15:43:21 2015
New Revision: 1670685
URL: http://svn.apache.org/r1670685
Log:
LOG4NET-407 add a few unit tests for AsyncLogger
Added:
logging/log4net/trunk/src/log4net.Tests/Appender/AsyncAppenderTest.cs
(with props)
Modified:
logging/log4net/trunk/src/log4net.Tests/log4net.Tests.vs2008.csproj
logging/log4net/trunk/src/log4net.Tests/log4net.Tests.vs2010.csproj
logging/log4net/trunk/src/log4net.Tests/log4net.Tests.vs2012.csproj
Added: logging/log4net/trunk/src/log4net.Tests/Appender/AsyncAppenderTest.cs
URL:
http://svn.apache.org/viewvc/logging/log4net/trunk/src/log4net.Tests/Appender/AsyncAppenderTest.cs?rev=1670685&view=auto
==============================================================================
--- logging/log4net/trunk/src/log4net.Tests/Appender/AsyncAppenderTest.cs
(added)
+++ logging/log4net/trunk/src/log4net.Tests/Appender/AsyncAppenderTest.cs Wed
Apr 1 15:43:21 2015
@@ -0,0 +1,95 @@
+#region Apache License
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to you under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#endregion
+
+using System;
+using System.Threading;
+using log4net.Appender;
+using log4net.Config;
+using log4net.Core;
+using log4net.Layout;
+
+using NUnit.Framework;
+
+namespace log4net.Tests.Appender
+{
+
+ [TestFixture]
+ public class AsyncAppenderTest {
+ private AsyncAppender asyncAppender;
+ private StringAppender stringAppender;
+ private Repository.Hierarchy.Hierarchy hierarchy;
+
+ [SetUp]
+ public void SetupRepository() {
+ hierarchy = new Repository.Hierarchy.Hierarchy();
+
+ stringAppender = new StringAppender();
+ stringAppender.Layout = new SimpleLayout();
+ stringAppender.ActivateOptions();
+
+ asyncAppender = new AsyncAppender();
+ asyncAppender.AddAppender(stringAppender);
+ asyncAppender.ActivateOptions();
+
+ BasicConfigurator.Configure(hierarchy, asyncAppender);
+ }
+
+ [TearDown]
+ public void ResetRepository() {
+ hierarchy.ResetConfiguration();
+ }
+
+ [Test]
+ public void ShouldLogSingleEvent() {
+ ILogger logger = hierarchy.GetLogger("test");
+ logger.Log(GetType(), Level.Warn, "foo", null);
+ string log = WaitSomeTimeAndReturnLogWithLineFeedsStripped();
+ Assert.AreEqual("WARN - foo", log);
+ }
+
+ [Test]
+ public void ShouldMaintainOrderOfEvents() {
+ ILogger logger = hierarchy.GetLogger("test");
+ logger.Log(GetType(), Level.Warn, "foo", null);
+ logger.Log(GetType(), Level.Warn, "bar", null);
+ logger.Log(GetType(), Level.Warn, "baz", null);
+ logger.Log(GetType(), Level.Warn, "xyzzy", null);
+ string log = WaitSomeTimeAndReturnLogWithLineFeedsStripped();
+ Assert.AreEqual("WARN - fooWARN - barWARN - bazWARN - xyzzy", log);
+ }
+
+ [Test]
+ public void ShouldForwardBulkOfEvents() {
+ LoggingEvent[] events = new LoggingEvent[] {
+ new LoggingEvent(GetType(), hierarchy, "test", Level.Warn,
"foo", null),
+ new LoggingEvent(GetType(), hierarchy, "test", Level.Warn,
"bar", null),
+ new LoggingEvent(GetType(), hierarchy, "test", Level.Warn,
"baz", null),
+ new LoggingEvent(GetType(), hierarchy, "test", Level.Warn,
"xyzzy", null)
+ };
+ asyncAppender.DoAppend(events);
+ string log = WaitSomeTimeAndReturnLogWithLineFeedsStripped();
+ Assert.AreEqual("WARN - fooWARN - barWARN - bazWARN - xyzzy", log);
+ }
+
+ private string WaitSomeTimeAndReturnLogWithLineFeedsStripped() {
+ Thread.Sleep(200);
+ return stringAppender.GetString().Replace(Environment.NewLine,
string.Empty);
+ }
+ }
+}
\ No newline at end of file
Propchange:
logging/log4net/trunk/src/log4net.Tests/Appender/AsyncAppenderTest.cs
------------------------------------------------------------------------------
svn:eol-style = native
Modified: logging/log4net/trunk/src/log4net.Tests/log4net.Tests.vs2008.csproj
URL:
http://svn.apache.org/viewvc/logging/log4net/trunk/src/log4net.Tests/log4net.Tests.vs2008.csproj?rev=1670685&r1=1670684&r2=1670685&view=diff
==============================================================================
--- logging/log4net/trunk/src/log4net.Tests/log4net.Tests.vs2008.csproj
(original)
+++ logging/log4net/trunk/src/log4net.Tests/log4net.Tests.vs2008.csproj Wed Apr
1 15:43:21 2015
@@ -124,6 +124,7 @@
<Compile Include="Appender\AdoNet\Log4NetParameterCollection.cs" />
<Compile Include="Appender\AdoNet\Log4NetTransaction.cs" />
<Compile Include="Appender\AppenderCollectionTest.cs" />
+ <Compile Include="Appender\AsyncAppenderTest.cs" />
<Compile Include="Appender\BufferingAppenderTest.cs">
<SubType>Code</SubType>
</Compile>
Modified: logging/log4net/trunk/src/log4net.Tests/log4net.Tests.vs2010.csproj
URL:
http://svn.apache.org/viewvc/logging/log4net/trunk/src/log4net.Tests/log4net.Tests.vs2010.csproj?rev=1670685&r1=1670684&r2=1670685&view=diff
==============================================================================
--- logging/log4net/trunk/src/log4net.Tests/log4net.Tests.vs2010.csproj
(original)
+++ logging/log4net/trunk/src/log4net.Tests/log4net.Tests.vs2010.csproj Wed Apr
1 15:43:21 2015
@@ -141,6 +141,7 @@
<Compile Include="Appender\AdoNet\Log4NetParameterCollection.cs" />
<Compile Include="Appender\AdoNet\Log4NetTransaction.cs" />
<Compile Include="Appender\AppenderCollectionTest.cs" />
+ <Compile Include="Appender\AsyncAppenderTest.cs" />
<Compile Include="Appender\BufferingAppenderTest.cs">
<SubType>Code</SubType>
</Compile>
Modified: logging/log4net/trunk/src/log4net.Tests/log4net.Tests.vs2012.csproj
URL:
http://svn.apache.org/viewvc/logging/log4net/trunk/src/log4net.Tests/log4net.Tests.vs2012.csproj?rev=1670685&r1=1670684&r2=1670685&view=diff
==============================================================================
--- logging/log4net/trunk/src/log4net.Tests/log4net.Tests.vs2012.csproj
(original)
+++ logging/log4net/trunk/src/log4net.Tests/log4net.Tests.vs2012.csproj Wed Apr
1 15:43:21 2015
@@ -141,6 +141,7 @@
<Compile Include="Appender\AdoNet\Log4NetParameterCollection.cs" />
<Compile Include="Appender\AdoNet\Log4NetTransaction.cs" />
<Compile Include="Appender\AppenderCollectionTest.cs" />
+ <Compile Include="Appender\AsyncAppenderTest.cs" />
<Compile Include="Appender\BufferingAppenderTest.cs">
<SubType>Code</SubType>
</Compile>