1   package xjavadoc;
2   
3   import junit.framework.*;
4   import xjavadoc.*;
5   import xjavadoc.filesystem.*;
6   import java.io.File;
7   import java.util.Collection;
8   import java.util.Collections;
9   import java.util.List;
10  import java.util.ArrayList;
11  import java.util.Iterator;
12  import java.util.StringTokenizer;
13  
14  /***
15   * Automatically generated JUnit test for xjavadoc
16   *
17   * @author xjavadoc/xdoclet
18   * @created 8. januar 2002
19   * @todo-javadoc Write javadocs
20   */
21  public class DefaultXTag__GENERATED__Test extends TestCase {
22  
23  	private XClass _testedClass;
24  	private final XJavaDoc _xJavaDoc = new XJavaDoc();
25  
26  	private static final String tokenizeAndTrim( final String s ) {
27  		StringBuffer sb = new StringBuffer();
28  		StringTokenizer st = new StringTokenizer(s);
29  		while( st.hasMoreTokens() ) {
30  			sb.append( st.nextToken() ).append(" ");
31  		}
32  		return sb.toString().trim();
33  	}
34  
35  	public DefaultXTag__GENERATED__Test( String name ) {
36  		super( name );
37  	}
38  
39  	public void setUp() throws Exception {
40  		// hardcoded to xjavadoc's own sources
41  		File dir = new File(System.getProperty("basedir"),"src");
42  		_xJavaDoc.reset(true);
43  		_xJavaDoc.addSourceSet(new FileSourceSet(dir, null));
44  		_testedClass = _xJavaDoc.getXClass( "xjavadoc.DefaultXTag" );
45  	}
46  
47  	public void tearDown() {
48  	}
49  
50  	public void testPackage() {
51  		assertEquals( "xjavadoc", _testedClass.getContainingPackage().getName() );
52  	}
53  
54  	public void testSuperclass() {
55  		XClass superclass = _testedClass.getSuperclass();
56  		String superclassName;
57  		if( superclass == null ) {
58  			superclassName = "java.lang.Object";
59  		} else {
60  			superclassName = superclass.getQualifiedName();
61  		}
62  
63  		assertEquals( "java.lang.Object", superclassName );
64  	}
65  
66  	public void testInterfaces() {
67  		// not implemented in xdoclet yet
68  	}
69  
70  	public void testFields() {
71  
72  		// Sort the fields
73  		Collection fields = _testedClass.getFields();
74  		ArrayList sortedFields = new ArrayList();
75  		sortedFields.addAll(fields);
76  		Collections.sort(sortedFields);
77  		Iterator fieldIterator = sortedFields.iterator();
78  
79  		XField field = null;
80  		// test if field type is the same
81  		field = (XField) fieldIterator.next();
82  		assertEquals( "java.util.List", field.getType().getQualifiedName() + field.getDimensionAsString());
83  		// test if field name is the same
84  		assertEquals( "_attributeNames", field.getName() );
85  		// test if field type is the same
86  		field = (XField) fieldIterator.next();
87  		assertEquals( "java.util.Map", field.getType().getQualifiedName() + field.getDimensionAsString());
88  		// test if field name is the same
89  		assertEquals( "_attributes", field.getName() );
90  		// test if field type is the same
91  		field = (XField) fieldIterator.next();
92  		assertEquals( "xjavadoc.XDoc", field.getType().getQualifiedName() + field.getDimensionAsString());
93  		// test if field name is the same
94  		assertEquals( "_doc", field.getName() );
95  		// test if field type is the same
96  		field = (XField) fieldIterator.next();
97  		assertEquals( "int", field.getType().getQualifiedName() + field.getDimensionAsString());
98  		// test if field name is the same
99  		assertEquals( "_hash", field.getName() );
100 		// test if field type is the same
101 		field = (XField) fieldIterator.next();
102 		assertEquals( "boolean", field.getType().getQualifiedName() + field.getDimensionAsString());
103 		// test if field name is the same
104 		assertEquals( "_isDirty", field.getName() );
105 		// test if field type is the same
106 		field = (XField) fieldIterator.next();
107 		assertEquals( "boolean", field.getType().getQualifiedName() + field.getDimensionAsString());
108 		// test if field name is the same
109 		assertEquals( "_isParsed", field.getName() );
110 		// test if field type is the same
111 		field = (XField) fieldIterator.next();
112 		assertEquals( "int", field.getType().getQualifiedName() + field.getDimensionAsString());
113 		// test if field name is the same
114 		assertEquals( "_lineNumber", field.getName() );
115 		// test if field type is the same
116 		field = (XField) fieldIterator.next();
117 		assertEquals( "java.lang.String", field.getType().getQualifiedName() + field.getDimensionAsString());
118 		// test if field name is the same
119 		assertEquals( "_name", field.getName() );
120 		// test if field type is the same
121 		field = (XField) fieldIterator.next();
122 		assertEquals( "java.util.Set", field.getType().getQualifiedName() + field.getDimensionAsString());
123 		// test if field name is the same
124 		assertEquals( "_tagListeners", field.getName() );
125 		// test if field type is the same
126 		field = (XField) fieldIterator.next();
127 		assertEquals( "java.lang.String", field.getType().getQualifiedName() + field.getDimensionAsString());
128 		// test if field name is the same
129 		assertEquals( "_value", field.getName() );
130 		// test if field type is the same
131 		field = (XField) fieldIterator.next();
132 		assertEquals( "xjavadoc.XJavaDoc", field.getType().getQualifiedName() + field.getDimensionAsString());
133 		// test if field name is the same
134 		assertEquals( "_xJavaDoc", field.getName() );
135 		// test if field type is the same
136 		field = (XField) fieldIterator.next();
137 		assertEquals( "int", field.getType().getQualifiedName() + field.getDimensionAsString());
138 		// test if field name is the same
139 		assertEquals( "instanceCount", field.getName() );
140 	}
141 
142 	public void testMethods() {
143 
144 		// Sort the methods
145 		Collection methods = _testedClass.getMethods();
146 		ArrayList sortedMethods = new ArrayList();
147 		sortedMethods.addAll(methods);
148 		Collections.sort(sortedMethods);
149 		Iterator methodIterator = sortedMethods.iterator();
150 		XMethod method = null;
151 
152 		Iterator parameters = null;
153 		XParameter parameter = null;
154 
155 		Iterator paramTags = null;
156 		XTag paramTag = null;
157 
158 	    	method = (XMethod) methodIterator.next();
159 		// test if return type is the same
160 		assertEquals( "void", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
161 
162 		// test if method name is the same
163 		assertEquals( "addTagListener", method.getName() );
164 
165 		// test if parameters are the same
166 		parameters = method.getParameters().iterator();
167 	        parameter = (XParameter) parameters.next();
168 		assertEquals( "tagListener", parameter.getName() );
169 		assertEquals( "xjavadoc.event.XTagListener", parameter.getType().getQualifiedName() + parameter.getDimensionAsString());
170 
171 		// test if doc is the same
172 		paramTags = method.getDoc().getTags("param",true).iterator();
173 	        paramTag = (XTag) paramTags.next();
174 		assertEquals( tokenizeAndTrim("tagListener  The feature to be added to the TagListener attribute"), paramTag.getValue() );
175 
176 	    	method = (XMethod) methodIterator.next();
177 		// test if return type is the same
178 		assertEquals( "void", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
179 
180 		// test if method name is the same
181 		assertEquals( "ensureTagListenersInitialised", method.getName() );
182 
183 		// test if parameters are the same
184 		parameters = method.getParameters().iterator();
185 
186 		// test if doc is the same
187 		paramTags = method.getDoc().getTags("param",true).iterator();
188 
189 	    	method = (XMethod) methodIterator.next();
190 		// test if return type is the same
191 		assertEquals( "boolean", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
192 
193 		// test if method name is the same
194 		assertEquals( "equals", method.getName() );
195 
196 		// test if parameters are the same
197 		parameters = method.getParameters().iterator();
198 	        parameter = (XParameter) parameters.next();
199 		assertEquals( "o", parameter.getName() );
200 		assertEquals( "java.lang.Object", parameter.getType().getQualifiedName() + parameter.getDimensionAsString());
201 
202 		// test if doc is the same
203 		paramTags = method.getDoc().getTags("param",true).iterator();
204 
205 	    	method = (XMethod) methodIterator.next();
206 		// test if return type is the same
207 		assertEquals( "void", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
208 
209 		// test if method name is the same
210 		assertEquals( "fail", method.getName() );
211 
212 		// test if parameters are the same
213 		parameters = method.getParameters().iterator();
214 	        parameter = (XParameter) parameters.next();
215 		assertEquals( "message", parameter.getName() );
216 		assertEquals( "java.lang.String", parameter.getType().getQualifiedName() + parameter.getDimensionAsString());
217 
218 		// test if doc is the same
219 		paramTags = method.getDoc().getTags("param",true).iterator();
220 	        paramTag = (XTag) paramTags.next();
221 		assertEquals( tokenizeAndTrim("message the message to include"), paramTag.getValue() );
222 
223 	    	method = (XMethod) methodIterator.next();
224 		// test if return type is the same
225 		assertEquals( "void", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
226 
227 		// test if method name is the same
228 		assertEquals( "fireTagChanged", method.getName() );
229 
230 		// test if parameters are the same
231 		parameters = method.getParameters().iterator();
232 
233 		// test if doc is the same
234 		paramTags = method.getDoc().getTags("param",true).iterator();
235 
236 	    	method = (XMethod) methodIterator.next();
237 		// test if return type is the same
238 		assertEquals( "java.util.Collection", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
239 
240 		// test if method name is the same
241 		assertEquals( "getAttributeNames", method.getName() );
242 
243 		// test if parameters are the same
244 		parameters = method.getParameters().iterator();
245 
246 		// test if doc is the same
247 		paramTags = method.getDoc().getTags("param",true).iterator();
248 
249 	    	method = (XMethod) methodIterator.next();
250 		// test if return type is the same
251 		assertEquals( "java.lang.String", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
252 
253 		// test if method name is the same
254 		assertEquals( "getAttributeValue", method.getName() );
255 
256 		// test if parameters are the same
257 		parameters = method.getParameters().iterator();
258 	        parameter = (XParameter) parameters.next();
259 		assertEquals( "attributeName", parameter.getName() );
260 		assertEquals( "java.lang.String", parameter.getType().getQualifiedName() + parameter.getDimensionAsString());
261 
262 		// test if doc is the same
263 		paramTags = method.getDoc().getTags("param",true).iterator();
264 	        paramTag = (XTag) paramTags.next();
265 		assertEquals( tokenizeAndTrim("attributeName  Describe what the parameter does"), paramTag.getValue() );
266 
267 	    	method = (XMethod) methodIterator.next();
268 		// test if return type is the same
269 		assertEquals( "xjavadoc.XDoc", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
270 
271 		// test if method name is the same
272 		assertEquals( "getDoc", method.getName() );
273 
274 		// test if parameters are the same
275 		parameters = method.getParameters().iterator();
276 
277 		// test if doc is the same
278 		paramTags = method.getDoc().getTags("param",true).iterator();
279 
280 	    	method = (XMethod) methodIterator.next();
281 		// test if return type is the same
282 		assertEquals( "java.lang.String", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
283 
284 		// test if method name is the same
285 		assertEquals( "getInfo", method.getName() );
286 
287 		// test if parameters are the same
288 		parameters = method.getParameters().iterator();
289 
290 		// test if doc is the same
291 		paramTags = method.getDoc().getTags("param",true).iterator();
292 
293 	    	method = (XMethod) methodIterator.next();
294 		// test if return type is the same
295 		assertEquals( "int", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
296 
297 		// test if method name is the same
298 		assertEquals( "getLineNumber", method.getName() );
299 
300 		// test if parameters are the same
301 		parameters = method.getParameters().iterator();
302 
303 		// test if doc is the same
304 		paramTags = method.getDoc().getTags("param",true).iterator();
305 
306 	    	method = (XMethod) methodIterator.next();
307 		// test if return type is the same
308 		assertEquals( "java.lang.String", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
309 
310 		// test if method name is the same
311 		assertEquals( "getName", method.getName() );
312 
313 		// test if parameters are the same
314 		parameters = method.getParameters().iterator();
315 
316 		// test if doc is the same
317 		paramTags = method.getDoc().getTags("param",true).iterator();
318 
319 	    	method = (XMethod) methodIterator.next();
320 		// test if return type is the same
321 		assertEquals( "java.lang.String", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
322 
323 		// test if method name is the same
324 		assertEquals( "getValue", method.getName() );
325 
326 		// test if parameters are the same
327 		parameters = method.getParameters().iterator();
328 
329 		// test if doc is the same
330 		paramTags = method.getDoc().getTags("param",true).iterator();
331 
332 	    	method = (XMethod) methodIterator.next();
333 		// test if return type is the same
334 		assertEquals( "int", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
335 
336 		// test if method name is the same
337 		assertEquals( "hashCode", method.getName() );
338 
339 		// test if parameters are the same
340 		parameters = method.getParameters().iterator();
341 
342 		// test if doc is the same
343 		paramTags = method.getDoc().getTags("param",true).iterator();
344 
345 	    	method = (XMethod) methodIterator.next();
346 		// test if return type is the same
347 		assertEquals( "void", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
348 
349 		// test if method name is the same
350 		assertEquals( "init", method.getName() );
351 
352 		// test if parameters are the same
353 		parameters = method.getParameters().iterator();
354 	        parameter = (XParameter) parameters.next();
355 		assertEquals( "name", parameter.getName() );
356 		assertEquals( "java.lang.String", parameter.getType().getQualifiedName() + parameter.getDimensionAsString());
357 	        parameter = (XParameter) parameters.next();
358 		assertEquals( "value", parameter.getName() );
359 		assertEquals( "java.lang.String", parameter.getType().getQualifiedName() + parameter.getDimensionAsString());
360 	        parameter = (XParameter) parameters.next();
361 		assertEquals( "doc", parameter.getName() );
362 		assertEquals( "xjavadoc.XDoc", parameter.getType().getQualifiedName() + parameter.getDimensionAsString());
363 	        parameter = (XParameter) parameters.next();
364 		assertEquals( "lineNumber", parameter.getName() );
365 		assertEquals( "int", parameter.getType().getQualifiedName() + parameter.getDimensionAsString());
366 
367 		// test if doc is the same
368 		paramTags = method.getDoc().getTags("param",true).iterator();
369 	        paramTag = (XTag) paramTags.next();
370 		assertEquals( tokenizeAndTrim("name"), paramTag.getValue() );
371 	        paramTag = (XTag) paramTags.next();
372 		assertEquals( tokenizeAndTrim("value"), paramTag.getValue() );
373 	        paramTag = (XTag) paramTags.next();
374 		assertEquals( tokenizeAndTrim("doc"), paramTag.getValue() );
375 	        paramTag = (XTag) paramTags.next();
376 		assertEquals( tokenizeAndTrim("lineNumber"), paramTag.getValue() );
377 
378 	    	method = (XMethod) methodIterator.next();
379 		// test if return type is the same
380 		assertEquals( "void", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
381 
382 		// test if method name is the same
383 		assertEquals( "parse", method.getName() );
384 
385 		// test if parameters are the same
386 		parameters = method.getParameters().iterator();
387 
388 		// test if doc is the same
389 		paramTags = method.getDoc().getTags("param",true).iterator();
390 
391 	    	method = (XMethod) methodIterator.next();
392 		// test if return type is the same
393 		assertEquals( "java.lang.String", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
394 
395 		// test if method name is the same
396 		assertEquals( "removeAttribute", method.getName() );
397 
398 		// test if parameters are the same
399 		parameters = method.getParameters().iterator();
400 	        parameter = (XParameter) parameters.next();
401 		assertEquals( "attributeName", parameter.getName() );
402 		assertEquals( "java.lang.String", parameter.getType().getQualifiedName() + parameter.getDimensionAsString());
403 
404 		// test if doc is the same
405 		paramTags = method.getDoc().getTags("param",true).iterator();
406 	        paramTag = (XTag) paramTags.next();
407 		assertEquals( tokenizeAndTrim("attributeName  atribute to remove"), paramTag.getValue() );
408 
409 	    	method = (XMethod) methodIterator.next();
410 		// test if return type is the same
411 		assertEquals( "void", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
412 
413 		// test if method name is the same
414 		assertEquals( "removeTagListener", method.getName() );
415 
416 		// test if parameters are the same
417 		parameters = method.getParameters().iterator();
418 	        parameter = (XParameter) parameters.next();
419 		assertEquals( "tagListener", parameter.getName() );
420 		assertEquals( "xjavadoc.event.XTagListener", parameter.getType().getQualifiedName() + parameter.getDimensionAsString());
421 
422 		// test if doc is the same
423 		paramTags = method.getDoc().getTags("param",true).iterator();
424 	        paramTag = (XTag) paramTags.next();
425 		assertEquals( tokenizeAndTrim("tagListener"), paramTag.getValue() );
426 
427 	    	method = (XMethod) methodIterator.next();
428 		// test if return type is the same
429 		assertEquals( "void", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
430 
431 		// test if method name is the same
432 		assertEquals( "resetValue", method.getName() );
433 
434 		// test if parameters are the same
435 		parameters = method.getParameters().iterator();
436 
437 		// test if doc is the same
438 		paramTags = method.getDoc().getTags("param",true).iterator();
439 
440 	    	method = (XMethod) methodIterator.next();
441 		// test if return type is the same
442 		assertEquals( "void", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
443 
444 		// test if method name is the same
445 		assertEquals( "setAttribute", method.getName() );
446 
447 		// test if parameters are the same
448 		parameters = method.getParameters().iterator();
449 	        parameter = (XParameter) parameters.next();
450 		assertEquals( "attributeName", parameter.getName() );
451 		assertEquals( "java.lang.String", parameter.getType().getQualifiedName() + parameter.getDimensionAsString());
452 	        parameter = (XParameter) parameters.next();
453 		assertEquals( "attributeValue", parameter.getName() );
454 		assertEquals( "java.lang.String", parameter.getType().getQualifiedName() + parameter.getDimensionAsString());
455 
456 		// test if doc is the same
457 		paramTags = method.getDoc().getTags("param",true).iterator();
458 	        paramTag = (XTag) paramTags.next();
459 		assertEquals( tokenizeAndTrim("attributeName   The new Attribute value"), paramTag.getValue() );
460 	        paramTag = (XTag) paramTags.next();
461 		assertEquals( tokenizeAndTrim("attributeValue  The new Attribute value"), paramTag.getValue() );
462 
463 	    	method = (XMethod) methodIterator.next();
464 		// test if return type is the same
465 		assertEquals( "void", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
466 
467 		// test if method name is the same
468 		assertEquals( "setAttribute_Impl", method.getName() );
469 
470 		// test if parameters are the same
471 		parameters = method.getParameters().iterator();
472 	        parameter = (XParameter) parameters.next();
473 		assertEquals( "attributeName", parameter.getName() );
474 		assertEquals( "java.lang.String", parameter.getType().getQualifiedName() + parameter.getDimensionAsString());
475 	        parameter = (XParameter) parameters.next();
476 		assertEquals( "attributeValue", parameter.getName() );
477 		assertEquals( "java.lang.String", parameter.getType().getQualifiedName() + parameter.getDimensionAsString());
478 
479 		// test if doc is the same
480 		paramTags = method.getDoc().getTags("param",true).iterator();
481 
482 	    	method = (XMethod) methodIterator.next();
483 		// test if return type is the same
484 		assertEquals( "int", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
485 
486 		// test if method name is the same
487 		assertEquals( "skipWhitespace", method.getName() );
488 
489 		// test if parameters are the same
490 		parameters = method.getParameters().iterator();
491 	        parameter = (XParameter) parameters.next();
492 		assertEquals( "s", parameter.getName() );
493 		assertEquals( "java.lang.String", parameter.getType().getQualifiedName() + parameter.getDimensionAsString());
494 	        parameter = (XParameter) parameters.next();
495 		assertEquals( "i", parameter.getName() );
496 		assertEquals( "int", parameter.getType().getQualifiedName() + parameter.getDimensionAsString());
497 
498 		// test if doc is the same
499 		paramTags = method.getDoc().getTags("param",true).iterator();
500 	        paramTag = (XTag) paramTags.next();
501 		assertEquals( tokenizeAndTrim("s  Describe what the parameter does"), paramTag.getValue() );
502 	        paramTag = (XTag) paramTags.next();
503 		assertEquals( tokenizeAndTrim("i  Describe what the parameter does"), paramTag.getValue() );
504 
505 	    	method = (XMethod) methodIterator.next();
506 		// test if return type is the same
507 		assertEquals( "void", method.getReturnType().getType().getQualifiedName() + method.getReturnType().getDimensionAsString());
508 
509 		// test if method name is the same
510 		assertEquals( "validate", method.getName() );
511 
512 		// test if parameters are the same
513 		parameters = method.getParameters().iterator();
514 
515 		// test if doc is the same
516 		paramTags = method.getDoc().getTags("param",true).iterator();
517 
518 	}
519 }