Skip to content

Commit 5bc3813

Browse files
committed
added test for TimeEvaluator #149
1 parent bbc057a commit 5bc3813

File tree

1 file changed

+47
-5
lines changed

1 file changed

+47
-5
lines changed

src/log4net.Tests/Core/EvaluatorTest.cs

Lines changed: 47 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
*/
2121

2222
using System;
23+
using System.Runtime.CompilerServices;
24+
using System.Threading;
2325
using log4net.Appender;
2426
using log4net.Core;
2527
using log4net.Tests.Appender;
@@ -53,14 +55,16 @@ public void SetupRepository()
5355
m_bufferingForwardingAppender.Threshold = Level.All;
5456
}
5557

58+
private ILogger GetLogger([CallerMemberName] string name = "") => m_hierarchy.GetLogger(name);
59+
5660
[Test]
5761
public void TestLevelEvaluator()
5862
{
5963
m_bufferingForwardingAppender.Evaluator = new LevelEvaluator(Level.Info);
6064
m_bufferingForwardingAppender.ActivateOptions();
6165
log4net.Config.BasicConfigurator.Configure(m_hierarchy, m_bufferingForwardingAppender);
6266

63-
ILogger logger = m_hierarchy.GetLogger("TestLevelEvaluator");
67+
ILogger logger = GetLogger();
6468

6569
logger.Log(typeof(EvaluatorTest), Level.Debug, "Debug message logged", null);
6670
logger.Log(typeof(EvaluatorTest), Level.Debug, "Debug message logged", null);
@@ -69,6 +73,44 @@ public void TestLevelEvaluator()
6973
logger.Log(typeof(EvaluatorTest), Level.Info, "Info message logged", null);
7074
Assert.AreEqual(3, m_countingAppender.Counter, "Test 3 events flushed on Info message.");
7175
}
76+
77+
[Test]
78+
public void TestTimeEvaluatorWhenElapsed()
79+
{
80+
m_bufferingForwardingAppender.Evaluator = new TimeEvaluator(1);
81+
m_bufferingForwardingAppender.ActivateOptions();
82+
log4net.Config.BasicConfigurator.Configure(m_hierarchy, m_bufferingForwardingAppender);
83+
84+
ILogger logger = GetLogger();
85+
86+
logger.Log(typeof(EvaluatorTest), Level.Debug, "Debug message logged", null);
87+
logger.Log(typeof(EvaluatorTest), Level.Debug, "Debug message logged", null);
88+
Assert.AreEqual(0, m_countingAppender.Counter, "Test 2 events buffered");
89+
90+
Thread.Sleep(1000);
91+
logger.Log(typeof(EvaluatorTest), Level.Debug, "Info message logged", null);
92+
Assert.AreEqual(3, m_countingAppender.Counter, "Test 3 events flushed on Info message.");
93+
}
94+
95+
[Test]
96+
public void TestTimeEvaluatorWhenBufferFull()
97+
{
98+
m_bufferingForwardingAppender.Evaluator = new TimeEvaluator(10);
99+
m_bufferingForwardingAppender.ActivateOptions();
100+
log4net.Config.BasicConfigurator.Configure(m_hierarchy, m_bufferingForwardingAppender);
101+
102+
ILogger logger = GetLogger();
103+
104+
logger.Log(typeof(EvaluatorTest), Level.Debug, "Debug message logged", null);
105+
logger.Log(typeof(EvaluatorTest), Level.Debug, "Debug message logged", null);
106+
logger.Log(typeof(EvaluatorTest), Level.Debug, "Debug message logged", null);
107+
logger.Log(typeof(EvaluatorTest), Level.Debug, "Debug message logged", null);
108+
logger.Log(typeof(EvaluatorTest), Level.Debug, "Info message logged", null);
109+
Assert.AreEqual(0, m_countingAppender.Counter, "Test 5 events buffered");
110+
111+
logger.Log(typeof(EvaluatorTest), Level.Debug, "Info message logged", null);
112+
Assert.AreEqual(6, m_countingAppender.Counter, "Test 6 events flushed on Info message.");
113+
}
72114

73115
[Test]
74116
public void TestExceptionEvaluator()
@@ -77,7 +119,7 @@ public void TestExceptionEvaluator()
77119
m_bufferingForwardingAppender.ActivateOptions();
78120
log4net.Config.BasicConfigurator.Configure(m_hierarchy, m_bufferingForwardingAppender);
79121

80-
ILogger logger = m_hierarchy.GetLogger("TestExceptionEvaluator");
122+
ILogger logger = GetLogger();
81123

82124
logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn message logged", null);
83125
logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn message logged", null);
@@ -94,7 +136,7 @@ public void TestExceptionEvaluatorTriggerOnSubClass()
94136
m_bufferingForwardingAppender.ActivateOptions();
95137
log4net.Config.BasicConfigurator.Configure(m_hierarchy, m_bufferingForwardingAppender);
96138

97-
ILogger logger = m_hierarchy.GetLogger("TestExceptionEvaluatorTriggerOnSubClass");
139+
ILogger logger = GetLogger();
98140

99141
logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn message logged", null);
100142
logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn message logged", null);
@@ -111,7 +153,7 @@ public void TestExceptionEvaluatorNoTriggerOnSubClass()
111153
m_bufferingForwardingAppender.ActivateOptions();
112154
log4net.Config.BasicConfigurator.Configure(m_hierarchy, m_bufferingForwardingAppender);
113155

114-
ILogger logger = m_hierarchy.GetLogger("TestExceptionEvaluatorNoTriggerOnSubClass");
156+
ILogger logger = GetLogger();
115157

116158
logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn message logged", null);
117159
logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn message logged", null);
@@ -129,7 +171,7 @@ public void TestInvalidExceptionEvaluator()
129171
m_bufferingForwardingAppender.ActivateOptions();
130172
log4net.Config.BasicConfigurator.Configure(m_hierarchy, m_bufferingForwardingAppender);
131173

132-
ILogger logger = m_hierarchy.GetLogger("TestExceptionEvaluatorNoTriggerOnSubClass");
174+
ILogger logger = GetLogger();
133175

134176
logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn message logged", null);
135177
logger.Log(typeof(EvaluatorTest), Level.Warn, "Warn message logged", null);

0 commit comments

Comments
 (0)