1 package org.codehaus.plexus.logging;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import org.codehaus.plexus.PlexusTestCase;
20
21
22
23
24
25
26
27
28
29 public abstract class AbstractLoggerManagerTest extends PlexusTestCase {
30 protected abstract LoggerManager createLoggerManager() throws Exception;
31
32 public void testSetThreshold() throws Exception {
33 LoggerManager manager;
34 Logger logger1, logger2;
35
36 manager = createLoggerManager();
37
38 manager.setThreshold(Logger.LEVEL_FATAL);
39 logger1 = manager.getLoggerForComponent("role1", "roleHint1");
40 assertEquals(Logger.LEVEL_FATAL, logger1.getThreshold());
41
42 manager.setThreshold(Logger.LEVEL_DEBUG);
43 logger2 = manager.getLoggerForComponent("role2", "roleHint2");
44 assertEquals(Logger.LEVEL_FATAL, logger1.getThreshold());
45 assertEquals(Logger.LEVEL_DEBUG, logger2.getThreshold());
46 }
47
48
49
50
51
52 public void testActiveLoggerCount() throws Exception {
53 LoggerManager manager;
54 Logger b, c1_1, c1_2, c2;
55
56 manager = getManager(Logger.LEVEL_FATAL);
57 assertEquals(0, manager.getActiveLoggerCount());
58
59 b = manager.getLoggerForComponent("b");
60 assertNotNull(b);
61 assertEquals(1, manager.getActiveLoggerCount());
62
63 c1_1 = manager.getLoggerForComponent("c", "1");
64 c1_2 = manager.getLoggerForComponent("c", "1");
65 assertNotNull(c1_1);
66 assertNotNull(c1_2);
67 assertSame(c1_1, c1_2);
68 assertEquals(2, manager.getActiveLoggerCount());
69
70 c2 = manager.getLoggerForComponent("c", "2");
71 assertNotNull(c2);
72 assertEquals(3, manager.getActiveLoggerCount());
73
74 manager.returnComponentLogger("c", "1");
75 assertEquals(2, manager.getActiveLoggerCount());
76
77 manager.returnComponentLogger("c", "2");
78 manager.returnComponentLogger("c", "2");
79 manager.returnComponentLogger("c", "1");
80 assertEquals(1, manager.getActiveLoggerCount());
81
82 manager.returnComponentLogger("b");
83 assertEquals(0, manager.getActiveLoggerCount());
84 }
85
86 public void testDebugLevelConfiguration() throws Exception {
87 LoggerManager manager = getManager(Logger.LEVEL_DEBUG);
88
89 Logger logger = extractLogger(manager);
90
91 checkDebugLevel(logger);
92
93 logger = extractLogger(manager);
94
95 checkDebugLevel(logger);
96 }
97
98 public void testInfoLevelConfiguration() throws Exception {
99 LoggerManager manager = getManager(Logger.LEVEL_INFO);
100
101 Logger logger = extractLogger(manager);
102
103 checkInfoLevel(logger);
104
105 logger = extractLogger(manager);
106
107 checkInfoLevel(logger);
108 }
109
110 public void testWarnLevelConfiguration() throws Exception {
111 LoggerManager manager = getManager(Logger.LEVEL_WARN);
112
113 Logger logger = extractLogger(manager);
114
115 checkWarnLevel(logger);
116
117 logger = extractLogger(manager);
118
119 checkWarnLevel(logger);
120 }
121
122 public void testErrorLevelConfiguration() throws Exception {
123 LoggerManager manager = getManager(Logger.LEVEL_ERROR);
124
125 Logger logger = extractLogger(manager);
126
127 checkErrorLevel(logger);
128
129 logger = extractLogger(manager);
130
131 checkErrorLevel(logger);
132 }
133
134 public void testFatalLevelConfiguration() throws Exception {
135 LoggerManager manager = getManager(Logger.LEVEL_FATAL);
136
137 Logger logger = extractLogger(manager);
138
139 checkFatalLevel(logger);
140
141 logger = extractLogger(manager);
142
143 checkFatalLevel(logger);
144 }
145
146 private LoggerManager getManager(int threshold) throws Exception {
147 LoggerManager manager = createLoggerManager();
148
149 manager.setThreshold(threshold);
150
151 assertNotNull(manager);
152
153 return manager;
154 }
155
156
157
158
159
160
161
162
163
164
165 private Logger extractLogger(LoggerManager manager) {
166 Logger logger = manager.getLoggerForComponent("foo");
167
168 assertNotNull(logger);
169 assertEquals("foo", logger.getName());
170
171 return logger;
172 }
173
174 private void checkDebugLevel(Logger logger) {
175 assertTrue("debug enabled", logger.isDebugEnabled());
176 assertTrue("info enabled", logger.isInfoEnabled());
177 assertTrue("warn enabled", logger.isWarnEnabled());
178 assertTrue("error enabled", logger.isErrorEnabled());
179 assertTrue("fatal enabled", logger.isFatalErrorEnabled());
180 }
181
182 private void checkInfoLevel(Logger logger) {
183 assertFalse("debug disabled", logger.isDebugEnabled());
184 assertTrue("info enabled", logger.isInfoEnabled());
185 assertTrue("warn enabled", logger.isWarnEnabled());
186 assertTrue("error enabled", logger.isErrorEnabled());
187 assertTrue("fatal enabled", logger.isFatalErrorEnabled());
188 }
189
190 private void checkWarnLevel(Logger logger) {
191 assertFalse("debug disabled", logger.isDebugEnabled());
192 assertFalse("info disabled", logger.isInfoEnabled());
193 assertTrue("warn enabled", logger.isWarnEnabled());
194 assertTrue("error enabled", logger.isErrorEnabled());
195 assertTrue("fatal enabled", logger.isFatalErrorEnabled());
196 }
197
198 private void checkErrorLevel(Logger logger) {
199 assertFalse("debug disabled", logger.isDebugEnabled());
200 assertFalse("info disabled", logger.isInfoEnabled());
201 assertFalse("warn disabled", logger.isWarnEnabled());
202 assertTrue("error enabled", logger.isErrorEnabled());
203 assertTrue("fatal enabled", logger.isFatalErrorEnabled());
204 }
205
206 private void checkFatalLevel(Logger logger) {
207 assertFalse("debug disabled", logger.isDebugEnabled());
208 assertFalse("info disabled", logger.isInfoEnabled());
209 assertFalse("warn disabled", logger.isWarnEnabled());
210 assertFalse("error disabled", logger.isErrorEnabled());
211 assertTrue("fatal enabled", logger.isFatalErrorEnabled());
212 }
213 }