1 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 38 public class InfoTest extends XOMTestCase { 39 40 41 public InfoTest(String name) { 42 super(name); 43 } 44 45 46 public void testInfo() throws ClassNotFoundException , NoSuchMethodException , 48 IllegalAccessException , InvocationTargetException { 49 50 PrintStream systemOut = System.out; 51 ByteArrayOutputStream out = new ByteArrayOutputStream (); 52 System.setOut(new PrintStream (out)); 53 54 Class info = Class.forName("nu.xom.Info"); 55 Class [] args = {String [].class}; 56 Method main = info.getMethod("main", args); 57 main.setAccessible(true); 58 Object [] wrappedArgs = new Object [1]; 59 wrappedArgs[0] = new String [0]; 60 main.invoke(null, wrappedArgs); 61 System.out.flush(); 62 System.setOut(systemOut); 63 String output = new String (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 |