01: /* Copyright 2004 Elliotte Rusty Harold
02:
03: This library is free software; you can redistribute it and/or modify
04: it under the terms of version 2.1 of the GNU Lesser General Public
05: License as published by the Free Software Foundation.
06:
07: This library is distributed in the hope that it will be useful,
08: but WITHOUT ANY WARRANTY; without even the implied warranty of
09: 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;
25: import java.io.PrintStream;
26: import java.lang.reflect.InvocationTargetException;
27: import java.lang.reflect.Method;
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: public InfoTest(String name) {
41: super (name);
42: }
43:
44: // Note the subversion of access protection
45: public void testInfo() throws ClassNotFoundException,
46: NoSuchMethodException, IllegalAccessException,
47: InvocationTargetException {
48:
49: PrintStream systemOut = System.out;
50: ByteArrayOutputStream out = new ByteArrayOutputStream();
51: System.setOut(new PrintStream(out));
52:
53: Class info = Class.forName("nu.xom.Info");
54: Class[] args = { String[].class };
55: Method main = info.getMethod("main", args);
56: main.setAccessible(true);
57: Object[] wrappedArgs = new Object[1];
58: wrappedArgs[0] = new String[0];
59: main.invoke(null, wrappedArgs);
60: System.out.flush();
61: System.setOut(systemOut);
62: String output = new String(out.toByteArray());
63: assertTrue(output.indexOf("Copyright 2002") > 0);
64: assertEquals(19, output.indexOf(" Elliotte Rusty Harold")
65: - 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: }
|