1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.log4j;
19
20 import org.apache.log4j.spi.LoggingEvent;
21
22
23 /***
24 * Test for EnhancedPatternLayout.
25 *
26 */
27 public class EnhancedPatternLayoutTest extends LayoutTest {
28 /***
29 * Construct new instance of PatternLayoutTest.
30 *
31 * @param testName test name.
32 */
33 public EnhancedPatternLayoutTest(final String testName) {
34 super(testName, "text/plain", true, null, null);
35 }
36
37 /***
38 * @{inheritDoc}
39 */
40 protected Layout createLayout() {
41 return new EnhancedPatternLayout("[%t] %p %c - %m%n");
42 }
43
44 /***
45 * Tests format.
46 */
47 public void testFormat() {
48 Logger logger = Logger.getLogger("org.apache.log4j.LayoutTest");
49 LoggingEvent event =
50 new LoggingEvent(
51 "org.apache.log4j.Logger", logger, Level.INFO, "Hello, World", null);
52 EnhancedPatternLayout layout = (EnhancedPatternLayout) createLayout();
53 String result = layout.format(event);
54 StringBuffer buf = new StringBuffer(100);
55 buf.append('[');
56 buf.append(event.getThreadName());
57 buf.append("] ");
58 buf.append(event.getLevel().toString());
59 buf.append(' ');
60 buf.append(event.getLoggerName());
61 buf.append(" - ");
62 buf.append(event.getMessage());
63 buf.append(System.getProperty("line.separator"));
64 assertEquals(buf.toString(), result);
65 }
66
67 /***
68 * Tests getPatternFormat().
69 */
70 public void testGetPatternFormat() {
71 EnhancedPatternLayout layout = (EnhancedPatternLayout) createLayout();
72 assertEquals("[%t] %p %c - %m%n", layout.getConversionPattern());
73 }
74
75 /***
76 * Tests DEFAULT_CONVERSION_PATTERN constant.
77 */
78 public void testDefaultConversionPattern() {
79 assertEquals("%m%n", EnhancedPatternLayout.DEFAULT_CONVERSION_PATTERN);
80 }
81
82 /***
83 * Tests DEFAULT_CONVERSION_PATTERN constant.
84 */
85 public void testTTCCConversionPattern() {
86 assertEquals(
87 "%r [%t] %p %c %x - %m%n", EnhancedPatternLayout.TTCC_CONVERSION_PATTERN);
88 }
89
90 /***
91 * Tests buffer downsizing code path.
92 */
93 public void testFormatResize() {
94 Logger logger = Logger.getLogger("org.apache.log4j.xml.PatternLayoutTest");
95 NDC.clear();
96
97 char[] msg = new char[2000];
98
99 for (int i = 0; i < msg.length; i++) {
100 msg[i] = 'A';
101 }
102
103 LoggingEvent event1 =
104 new LoggingEvent(
105 "org.apache.log4j.Logger", logger, Level.DEBUG, new String(msg), null);
106 EnhancedPatternLayout layout = (EnhancedPatternLayout) createLayout();
107 String result = layout.format(event1);
108 LoggingEvent event2 =
109 new LoggingEvent(
110 "org.apache.log4j.Logger", logger, Level.WARN, "Hello, World", null);
111 result = layout.format(event2);
112 assertEquals("[", result.substring(0, 1));
113 }
114
115 /***
116 * Class to ensure that protected members are still available.
117 */
118 public static final class DerivedPatternLayout extends EnhancedPatternLayout {
119 /***
120 * Constructs a new instance of DerivedPatternLayout.
121 */
122 public DerivedPatternLayout() {
123 }
124
125 /***
126 * Get BUF_SIZE.
127 * @return return initial buffer size in characters.
128 * @deprecated
129 */
130 public int getBufSize() {
131 return BUF_SIZE;
132 }
133
134 /***
135 * Get MAX_CAPACITY.
136 * @return maximum capacity in characters.
137 * @deprecated
138 */
139 public int getMaxCapacity() {
140 return MAX_CAPACITY;
141 }
142 }
143 }