View Javadoc
1   package org.apache.maven.shared.io.logging;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
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      // MessageHolder newMessage();
32      // int size();
33      // String render();
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      // MessageHolder append( CharSequence messagePart );
50      // int size();
51      // String render();
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      // MessageHolder append( Throwable error );
68      // int size();
69      // String render();
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      // MessageHolder newMessage();
93      // MessageHolder append( CharSequence messagePart );
94      // int size();
95      // String render();
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     // MessageHolder newMessage();
116     // MessageHolder append( CharSequence messagePart );
117     // MessageHolder append( CharSequence messagePart );
118     // int size();
119     // String render();
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     // MessageHolder newMessage();
144     // MessageHolder append( CharSequence messagePart );
145     // MessageHolder append( Throwable error );
146     // int size();
147     // String render();
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     // MessageHolder addMessage( CharSequence messagePart );
179     // int size();
180     // String render();
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     // MessageHolder addMessage( CharSequence messagePart );
193     // int size();
194     // String render();
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     // MessageHolder addMessage( CharSequence messagePart, Throwable error );
211     // int size();
212     // String render();
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     // MessageHolder addMessage( CharSequence messagePart, Throwable error );
234     // MessageHolder addMessage( CharSequence messagePart );
235     // int size();
236     // String render();
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     // MessageHolder addMessage( Throwable error );
262     // int size();
263     // String render();
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     // boolean isEmpty();
285     public void testIsEmptyAfterConstruction()
286     {
287         assertTrue( new DefaultMessageHolder().isEmpty() );
288     }
289 
290     // boolean isEmpty();
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 }