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>


Reply via email to