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"