1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.logging.simple;
19
20 import java.util.ArrayList;
21 import java.util.Iterator;
22 import java.util.List;
23
24 import org.apache.commons.logging.DummyException;
25 import org.apache.commons.logging.LogFactory;
26 import org.apache.commons.logging.PathableClassLoader;
27 import org.apache.commons.logging.PathableTestSuite;
28 import org.apache.commons.logging.impl.SimpleLog;
29
30 import junit.framework.Test;
31
32
33
34
35
36 public class CustomConfigTestCase extends DefaultConfigTestCase {
37
38
39
40
41
42
43
44
45
46
47
48
49
50 public static Test suite() throws Exception {
51 final Class thisClass = CustomConfigTestCase.class;
52
53 final PathableClassLoader loader = new PathableClassLoader(null);
54 loader.useExplicitLoader("junit.", Test.class.getClassLoader());
55 loader.addLogicalLib("testclasses");
56 loader.addLogicalLib("commons-logging");
57
58 final Class testClass = loader.loadClass(thisClass.getName());
59 return new PathableTestSuite(testClass, loader);
60 }
61
62
63
64
65
66
67
68
69
70
71
72
73 protected List expected;
74
75
76
77
78 protected String[] testMessages =
79 { "debug", "info", "warn", "error", "fatal" };
80
81
82 @Override
83 protected void checkDecorated() {
84
85 assertNotNull("Log exists", log);
86 assertEquals("Log class",
87 "org.apache.commons.logging.simple.DecoratedSimpleLog",
88 log.getClass().getName());
89
90
91 assertTrue(log.isDebugEnabled());
92 assertTrue(log.isErrorEnabled());
93 assertTrue(log.isFatalEnabled());
94 assertTrue(log.isInfoEnabled());
95 assertFalse(log.isTraceEnabled());
96 assertTrue(log.isWarnEnabled());
97
98
99 assertEquals(SimpleLog.LOG_LEVEL_DEBUG, ((SimpleLog) log).getLevel());
100
101
102 checkDecoratedDateTime();
103 assertEquals("DecoratedLogger",
104 ((DecoratedSimpleLog) log).getLogName());
105 checkShowDateTime();
106 assertTrue(((DecoratedSimpleLog) log).getShowShortName());
107
108 }
109
110
111 protected void checkDecoratedDateTime() {
112 assertEquals("yyyy/MM/dd HH:mm:ss:SSS zzz",
113 ((DecoratedSimpleLog) log).getDateTimeFormat());
114 }
115
116
117 protected void checkExpected() {
118 final List acts = ((DecoratedSimpleLog) log).getCache();
119 final Iterator exps = expected.iterator();
120 int n = 0;
121 while (exps.hasNext()) {
122 final LogRecord exp = (LogRecord) exps.next();
123 final LogRecord act = (LogRecord) acts.get(n++);
124 assertEquals("Row " + n + " type", exp.type, act.type);
125 assertEquals("Row " + n + " message", exp.message, act.message);
126 assertEquals("Row " + n + " throwable", exp.t, act.t);
127 }
128 }
129
130
131 protected void checkShowDateTime() {
132 assertFalse(((DecoratedSimpleLog) log).getShowDateTime());
133 }
134
135
136 @Override
137 protected void checkStandard() {
138 checkDecorated();
139 }
140
141
142 protected void logExceptionMessages() {
143
144 final Throwable t = new DummyException();
145 log.trace("trace", t);
146 log.debug("debug", t);
147 log.info("info", t);
148 log.warn("warn", t);
149 log.error("error", t);
150 log.fatal("fatal", t);
151
152
153 expected.add(new LogRecord(SimpleLog.LOG_LEVEL_DEBUG, "debug", t));
154 expected.add(new LogRecord(SimpleLog.LOG_LEVEL_INFO, "info", t));
155 expected.add(new LogRecord(SimpleLog.LOG_LEVEL_WARN, "warn", t));
156 expected.add(new LogRecord(SimpleLog.LOG_LEVEL_ERROR, "error", t));
157 expected.add(new LogRecord(SimpleLog.LOG_LEVEL_FATAL, "fatal", t));
158 }
159
160
161 protected void logPlainMessages() {
162
163 log.trace("trace");
164 log.debug("debug");
165 log.info("info");
166 log.warn("warn");
167 log.error("error");
168 log.fatal("fatal");
169
170
171 expected.add(new LogRecord(SimpleLog.LOG_LEVEL_DEBUG, "debug", null));
172 expected.add(new LogRecord(SimpleLog.LOG_LEVEL_INFO, "info", null));
173 expected.add(new LogRecord(SimpleLog.LOG_LEVEL_WARN, "warn", null));
174 expected.add(new LogRecord(SimpleLog.LOG_LEVEL_ERROR, "error", null));
175 expected.add(new LogRecord(SimpleLog.LOG_LEVEL_FATAL, "fatal", null));
176 }
177
178
179
180
181
182
183 @Override
184 public void setProperties() {
185 System.setProperty(
186 "org.apache.commons.logging.Log",
187 "org.apache.commons.logging.simple.DecoratedSimpleLog");
188 System.setProperty(
189 "org.apache.commons.logging.simplelog.defaultlog",
190 "debug");
191 }
192
193
194
195
196 @Override
197 public void setUp() throws Exception {
198 LogFactory.releaseAll();
199 setProperties();
200 expected = new ArrayList();
201 setUpFactory();
202 setUpLog("DecoratedLogger");
203 }
204
205
206
207
208 @Override
209 public void tearDown() {
210 super.tearDown();
211 expected = null;
212 }
213
214
215 public void testExceptionMessages() throws Exception {
216 ((DecoratedSimpleLog) log).clearCache();
217 logExceptionMessages();
218 checkExpected();
219 }
220
221
222 public void testPlainMessages() throws Exception {
223 ((DecoratedSimpleLog) log).clearCache();
224 logPlainMessages();
225 checkExpected();
226 }
227
228
229 @Override
230 public void testSerializable() throws Exception {
231 ((DecoratedSimpleLog) log).clearCache();
232 logPlainMessages();
233 super.testSerializable();
234 logExceptionMessages();
235 checkExpected();
236 }
237 }