Clover coverage report - Clover results for XOM 1.2d1
Coverage timestamp: Wed Feb 8 2006 08:31:33 EST
file stats: LOC: 75   Methods: 2
NCLOC: 32   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
InfoTest.java - 100% 100% 100%
coverage
 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;
 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   
 41  1 public InfoTest(String name) {
 42  1 super(name);
 43    }
 44   
 45   
 46    // Note the subversion of access protection
 47  1 public void testInfo() throws ClassNotFoundException, NoSuchMethodException,
 48    IllegalAccessException, InvocationTargetException {
 49   
 50  1 PrintStream systemOut = System.out;
 51  1 ByteArrayOutputStream out = new ByteArrayOutputStream();
 52  1 System.setOut(new PrintStream(out));
 53   
 54  1 Class info = Class.forName("nu.xom.Info");
 55  1 Class[] args = {String[].class};
 56  1 Method main = info.getMethod("main", args);
 57  1 main.setAccessible(true);
 58  1 Object[] wrappedArgs = new Object[1];
 59  1 wrappedArgs[0] = new String[0];
 60  1 main.invoke(null, wrappedArgs);
 61  1 System.out.flush();
 62  1 System.setOut(systemOut);
 63  1 String output = new String(out.toByteArray());
 64  1 assertTrue(output.indexOf("Copyright 2002") > 0);
 65  1 assertEquals(19, output.indexOf(" Elliotte Rusty Harold") - output.indexOf("Copyright 2002"));
 66  1 assertTrue(output.indexOf("http://www.xom.nu") > 0);
 67  1 assertTrue(output.indexOf("General Public License") > 0);
 68  1 assertTrue(output.indexOf("GNU") > 0);
 69  1 assertTrue(output.indexOf("WITHOUT ANY WARRANTY") > 0);
 70  1 assertTrue(output.indexOf("without even the implied warranty") > 0);
 71   
 72    }
 73   
 74   
 75    }