1 package org.apache.maven.shared.io.logging;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.PrintWriter;
23 import java.io.StringWriter;
24
25 import junit.framework.TestCase;
26
27 public class DefaultMessageHolderTest
28 extends TestCase
29 {
30
31
32
33
34 public void testNewMessageIncrementsSizeWhenEmpty()
35 {
36 MessageHolder mh = new DefaultMessageHolder();
37
38 assertEquals( 0, mh.size() );
39
40 MessageHolder test = mh.newMessage();
41
42 assertSame( mh, test );
43
44 assertEquals( 1, mh.size() );
45
46 assertEquals( "", mh.render() );
47 }
48
49
50
51
52 public void testAppendCreatesNewMessageIfNoneCurrent()
53 {
54 MessageHolder mh = new DefaultMessageHolder();
55
56 assertEquals( 0, mh.size() );
57
58 MessageHolder test = mh.append( "test" );
59
60 assertSame( mh, test );
61
62 assertEquals( 1, mh.size() );
63
64 assertEquals( "[1] [INFO] test", mh.render() );
65 }
66
67
68
69
70 public void testAppendErrorCreatesNewMessageIfNoneCurrent()
71 {
72 MessageHolder mh = new DefaultMessageHolder();
73
74 assertEquals( 0, mh.size() );
75
76 NullPointerException npe = new NullPointerException();
77
78 MessageHolder test = mh.append( npe );
79
80 assertSame( mh, test );
81
82 assertEquals( 1, mh.size() );
83
84 StringWriter sw = new StringWriter();
85 PrintWriter pw = new PrintWriter( sw );
86
87 npe.printStackTrace( pw );
88
89 assertEquals( "[1] [INFO] Error:\n" + sw.toString(), mh.render() );
90 }
91
92
93
94
95
96 public void testNewMessageThenAppendOnlyIncrementsSizeByOne()
97 {
98 MessageHolder mh = new DefaultMessageHolder();
99
100 assertEquals( 0, mh.size() );
101
102 MessageHolder test = mh.newMessage();
103
104 assertSame( mh, test );
105
106 test = mh.append( "test" );
107
108 assertSame( mh, test );
109
110 assertEquals( 1, mh.size() );
111
112 assertEquals( "[1] [INFO] test", mh.render() );
113 }
114
115
116
117
118
119
120 public void testNewMessageThenAppendTwiceOnlyIncrementsSizeByOne()
121 {
122 MessageHolder mh = new DefaultMessageHolder();
123
124 assertEquals( 0, mh.size() );
125
126 MessageHolder test = mh.newMessage();
127
128 assertSame( mh, test );
129
130 test = mh.append( "test" );
131
132 assertSame( mh, test );
133
134 test = mh.append( " again" );
135
136 assertSame( mh, test );
137
138 assertEquals( 1, mh.size() );
139
140 assertEquals( "[1] [INFO] test again", mh.render() );
141 }
142
143
144
145
146
147
148 public void testNewMessageThenAppendBothMessageAndErrorOnlyIncrementsSizeByOne()
149 {
150 MessageHolder mh = new DefaultMessageHolder();
151
152 assertEquals( 0, mh.size() );
153
154 MessageHolder test = mh.newMessage();
155
156 assertSame( mh, test );
157
158 test = mh.append( "test" );
159
160 assertSame( mh, test );
161
162 NullPointerException npe = new NullPointerException();
163
164 test = mh.append( npe );
165
166 assertSame( mh, test );
167
168 assertEquals( 1, mh.size() );
169
170 StringWriter sw = new StringWriter();
171 PrintWriter pw = new PrintWriter( sw );
172
173 npe.printStackTrace( pw );
174
175 assertEquals( "[1] [INFO] test\nError:\n" + sw.toString(), mh.render() );
176 }
177
178
179
180
181 public void testAddMessageIncrementsSizeByOne()
182 {
183 MessageHolder mh = new DefaultMessageHolder();
184 MessageHolder check = mh.addMessage( "test" );
185
186 assertSame( mh, check );
187
188 assertEquals( 1, mh.size() );
189 assertEquals( "[1] [INFO] test", mh.render() );
190 }
191
192
193
194
195 public void testAddMessageTwiceIncrementsSizeByTwo()
196 {
197 MessageHolder mh = new DefaultMessageHolder();
198 MessageHolder check = mh.addMessage( "test" );
199
200 assertSame( mh, check );
201
202 check = mh.addMessage( "test2" );
203
204 assertSame( mh, check );
205
206 assertEquals( 2, mh.size() );
207 assertEquals( "[1] [INFO] test\n\n[2] [INFO] test2", mh.render() );
208 }
209
210
211
212
213 public void testAddMessageWithErrorIncrementsSizeByOne()
214 {
215 MessageHolder mh = new DefaultMessageHolder();
216
217 NullPointerException npe = new NullPointerException();
218
219 MessageHolder check = mh.addMessage( "test", npe );
220
221 assertSame( mh, check );
222
223 assertEquals( 1, mh.size() );
224
225 StringWriter sw = new StringWriter();
226 PrintWriter pw = new PrintWriter( sw );
227
228 npe.printStackTrace( pw );
229
230 assertEquals( "[1] [INFO] test\nError:\n" + sw.toString(), mh.render() );
231 }
232
233
234
235
236
237 public void testAddMessageWithErrorThenWithJustMessageIncrementsSizeByTwo()
238 {
239 MessageHolder mh = new DefaultMessageHolder();
240
241 NullPointerException npe = new NullPointerException();
242
243 MessageHolder check = mh.addMessage( "test", npe );
244
245 assertSame( mh, check );
246
247 check = mh.addMessage( "test2" );
248
249 assertSame( mh, check );
250
251 assertEquals( 2, mh.size() );
252
253 StringWriter sw = new StringWriter();
254 PrintWriter pw = new PrintWriter( sw );
255
256 npe.printStackTrace( pw );
257
258 assertEquals( "[1] [INFO] test\nError:\n" + sw.toString() + "\n\n[2] [INFO] test2", mh.render() );
259 }
260
261
262
263
264 public void testAddMessageWithJustErrorIncrementsSizeByOne()
265 {
266 MessageHolder mh = new DefaultMessageHolder();
267
268 NullPointerException npe = new NullPointerException();
269
270 MessageHolder check = mh.addMessage( npe );
271
272 assertSame( mh, check );
273
274 assertEquals( 1, mh.size() );
275
276 StringWriter sw = new StringWriter();
277 PrintWriter pw = new PrintWriter( sw );
278
279 npe.printStackTrace( pw );
280
281 assertEquals( "[1] [INFO] Error:\n" + sw.toString(), mh.render() );
282 }
283
284
285 public void testIsEmptyAfterConstruction()
286 {
287 assertTrue( new DefaultMessageHolder().isEmpty() );
288 }
289
290
291 public void testIsNotEmptyAfterConstructionAndNewMessageCall()
292 {
293 assertFalse( new DefaultMessageHolder().newMessage().isEmpty() );
294 }
295
296 public void testAppendCharSequence()
297 {
298 MessageHolder mh = new DefaultMessageHolder();
299 mh.newMessage().append( new StringBuffer( "This is a test" ) );
300
301 assertTrue( mh.render().indexOf( "This is a test" ) > -1 );
302 }
303
304 }