KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > nu > xom > tests > InfoTest


1 /* Copyright 2004 Elliotte Rusty Harold
2    
3    This library is free software; you can redistribute it and/or modify
4    it under the terms of version 2.1 of the GNU Lesser General Public
5    License as published by the Free Software Foundation.
6    
7    This library is distributed in the hope that it will be useful,
8    but WITHOUT ANY WARRANTY; without even the implied warranty of
9    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10    GNU Lesser General Public License for more details.
11    
12    You should have received a copy of the GNU Lesser General Public
13    License along with this library; if not, write to the
14    Free Software Foundation, Inc., 59 Temple Place, Suite 330,
15    Boston, MA 02111-1307 USA
16    
17    You can contact Elliotte Rusty Harold by sending e-mail to
18    elharo@metalab.unc.edu. Please include the word "XOM" in the
19    subject line. The XOM home page is located at http://www.xom.nu/
20 */

21
22 package nu.xom.tests;
23
24 import java.io.ByteArrayOutputStream JavaDoc;
25 import java.io.PrintStream JavaDoc;
26 import java.lang.reflect.InvocationTargetException JavaDoc;
27 import java.lang.reflect.Method JavaDoc;
28
29 /**
30  * <p>
31  * Test the main() method for the JAR file.
32  * </p>
33  *
34  * @author Elliotte Rusty Harold
35  * @version 1.0
36  *
37  */

38 public class InfoTest extends XOMTestCase {
39
40     
41     public InfoTest(String JavaDoc name) {
42         super(name);
43     }
44  
45     
46     // Note the subversion of access protection
47
public void testInfo() throws ClassNotFoundException JavaDoc, NoSuchMethodException JavaDoc,
48       IllegalAccessException JavaDoc, InvocationTargetException JavaDoc {
49         
50         PrintStream JavaDoc systemOut = System.out;
51         ByteArrayOutputStream JavaDoc out = new ByteArrayOutputStream JavaDoc();
52         System.setOut(new PrintStream JavaDoc(out));
53
54         Class JavaDoc info = Class.forName("nu.xom.Info");
55         Class JavaDoc[] args = {String JavaDoc[].class};
56         Method JavaDoc main = info.getMethod("main", args);
57         main.setAccessible(true);
58         Object JavaDoc[] wrappedArgs = new Object JavaDoc[1];
59         wrappedArgs[0] = new String JavaDoc[0];
60         main.invoke(null, wrappedArgs);
61         System.out.flush();
62         System.setOut(systemOut);
63         String JavaDoc output = new String JavaDoc(out.toByteArray());
64         assertTrue(output.indexOf("Copyright 2002") > 0);
65         assertEquals(19, output.indexOf(" Elliotte Rusty Harold") - output.indexOf("Copyright 2002"));
66         assertTrue(output.indexOf("http://www.xom.nu") > 0);
67         assertTrue(output.indexOf("General Public License") > 0);
68         assertTrue(output.indexOf("GNU") > 0);
69         assertTrue(output.indexOf("WITHOUT ANY WARRANTY") > 0);
70         assertTrue(output.indexOf("without even the implied warranty") > 0);
71         
72     }
73  
74     
75 }
Popular Tags