Author: rgrabowski
Date: Tue Dec 19 20:39:51 2006
New Revision: 488917

URL: http://svn.apache.org/viewvc?view=rev&rev=488917
Log:
Added EvaluatorTest class for LOG4NET-107. Added test case for LevelEvaluator. 
Added commented out tests for ExceptionEvaluator.

Added:
    logging/log4net/trunk/tests/src/Core/EvaluatorTest.cs
Modified:
    logging/log4net/trunk/tests/src/log4net.Tests.csproj

Added: logging/log4net/trunk/tests/src/Core/EvaluatorTest.cs
URL: 
http://svn.apache.org/viewvc/logging/log4net/trunk/tests/src/Core/EvaluatorTest.cs?view=auto&rev=488917
==============================================================================
--- logging/log4net/trunk/tests/src/Core/EvaluatorTest.cs (added)
+++ logging/log4net/trunk/tests/src/Core/EvaluatorTest.cs Tue Dec 19 20:39:51 
2006
@@ -0,0 +1,123 @@
+using System;
+using log4net.Appender;
+using log4net.Core;
+using log4net.Tests.Appender;
+using NUnit.Framework;
+
+namespace log4net.Tests.Core
+{
+       [TestFixture]
+       public class EvaluatorTest
+       {
+               private BufferingForwardingAppender 
m_bufferingForwardingAppender;
+               private CountingAppender m_countingAppender;
+               private Repository.Hierarchy.Hierarchy m_hierarchy;
+
+               [SetUp]
+               public void SetupRepository()
+               {
+                       m_hierarchy = new Repository.Hierarchy.Hierarchy();
+
+                       m_countingAppender = new CountingAppender();
+                       m_countingAppender.ActivateOptions();
+
+                       m_bufferingForwardingAppender = new 
BufferingForwardingAppender();
+                       
m_bufferingForwardingAppender.AddAppender(m_countingAppender);
+
+                       m_bufferingForwardingAppender.BufferSize = 5;
+                       m_bufferingForwardingAppender.ClearFilters();
+                       m_bufferingForwardingAppender.Fix = FixFlags.Partial;
+                       m_bufferingForwardingAppender.Lossy = false;
+                       m_bufferingForwardingAppender.LossyEvaluator = null;
+                       m_bufferingForwardingAppender.Threshold = Level.All;
+               }
+
+               [Test]
+               public void TestLevelEvaluator()
+               {
+                       m_bufferingForwardingAppender.Evaluator = new 
LevelEvaluator(Level.Info);
+                       m_bufferingForwardingAppender.ActivateOptions();
+                       log4net.Config.BasicConfigurator.Configure(m_hierarchy, 
m_bufferingForwardingAppender);
+
+                       ILogger logger = 
m_hierarchy.GetLogger("TestLevelEvaluator");
+
+                       logger.Log(typeof(EvaluatorTest), Level.Debug, "Debug 
message logged", null);
+                       logger.Log(typeof(EvaluatorTest), Level.Debug, "Debug 
message logged", null);
+                       Assert.AreEqual(0, m_countingAppender.Counter, "Test 2 
events buffered");
+
+                       logger.Log(typeof(EvaluatorTest), Level.Info, "Info 
message logged", null);
+                       Assert.AreEqual(3, m_countingAppender.Counter, "Test 3 
events flushed on Info message.");
+               }
+
+               /*
+               [Test]
+               public void TestExceptionEvaluator()
+               {
+                       m_bufferingForwardingAppender.Evaluator = new 
ExceptionEvaluator(typeof(ApplicationException));
+                       m_bufferingForwardingAppender.ActivateOptions();
+                       log4net.Config.BasicConfigurator.Configure(m_hierarchy, 
m_bufferingForwardingAppender);
+
+                       ILogger logger = 
m_hierarchy.GetLogger("TestExceptionEvaluator");
+
+                       logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn 
message logged", null);
+                       logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn 
message logged", null);
+                       Assert.AreEqual(0, m_countingAppender.Counter, "Test 2 
events buffered");
+
+                       logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn 
message logged", new ApplicationException());
+                       Assert.AreEqual(3, m_countingAppender.Counter, "Test 3 
events flushed on ApplicationException message.");
+               }
+
+               [Test]
+               public void TestExceptionEvaluatorTriggerOnSubClass()
+               {
+                       m_bufferingForwardingAppender.Evaluator = new 
ExceptionEvaluator(typeof(Exception), true);
+                       m_bufferingForwardingAppender.ActivateOptions();
+                       log4net.Config.BasicConfigurator.Configure(m_hierarchy, 
m_bufferingForwardingAppender);
+
+                       ILogger logger = 
m_hierarchy.GetLogger("TestExceptionEvaluatorTriggerOnSubClass");
+
+                       logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn 
message logged", null);
+                       logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn 
message logged", null);
+                       Assert.AreEqual(0, m_countingAppender.Counter, "Test 2 
events buffered");
+
+                       logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn 
message logged", new ApplicationException());
+                       Assert.AreEqual(3, m_countingAppender.Counter, "Test 3 
events flushed on ApplicationException message.");
+               }
+
+               [Test]
+               public void TestExceptionEvaluatorNoTriggerOnSubClass()
+               {
+                       m_bufferingForwardingAppender.Evaluator = new 
ExceptionEvaluator(typeof(Exception), false);
+                       m_bufferingForwardingAppender.ActivateOptions();
+                       log4net.Config.BasicConfigurator.Configure(m_hierarchy, 
m_bufferingForwardingAppender);
+
+                       ILogger logger = 
m_hierarchy.GetLogger("TestExceptionEvaluatorNoTriggerOnSubClass");
+
+                       logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn 
message logged", null);
+                       logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn 
message logged", null);
+                       Assert.AreEqual(0, m_countingAppender.Counter, "Test 2 
events buffered");
+
+                       logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn 
message logged", new ApplicationException());
+                       Assert.AreEqual(0, m_countingAppender.Counter, "Test 3 
events buffered");
+               }
+
+               [Test]
+               public void TestInvalidExceptionEvaluator()
+               {
+                       // warning: String is not a subclass of Exception
+                       m_bufferingForwardingAppender.Evaluator = new 
ExceptionEvaluator(typeof(String));
+                       m_bufferingForwardingAppender.ActivateOptions();
+                       log4net.Config.BasicConfigurator.Configure(m_hierarchy, 
m_bufferingForwardingAppender);
+
+                       ILogger logger = 
m_hierarchy.GetLogger("TestExceptionEvaluatorNoTriggerOnSubClass");
+
+                       logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn 
message logged", null);
+                       logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn 
message logged", null);
+                       Assert.AreEqual(0, m_countingAppender.Counter, "Test 2 
events buffered");
+
+                       logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn 
message logged", new ApplicationException());
+                       Assert.AreEqual(0, m_countingAppender.Counter, "Test 3 
events buffered");
+               }
+               */
+       }
+}

Modified: logging/log4net/trunk/tests/src/log4net.Tests.csproj
URL: 
http://svn.apache.org/viewvc/logging/log4net/trunk/tests/src/log4net.Tests.csproj?view=diff&rev=488917&r1=488916&r2=488917
==============================================================================
--- logging/log4net/trunk/tests/src/log4net.Tests.csproj (original)
+++ logging/log4net/trunk/tests/src/log4net.Tests.csproj Tue Dec 19 20:39:51 
2006
@@ -143,6 +143,11 @@
                     BuildAction = "Compile"
                 />
                 <File
+                    RelPath = "Core\EvaluatorTest.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
                     RelPath = "Core\FixingTest.cs"
                     SubType = "Code"
                     BuildAction = "Compile"


Reply via email to