/* * @(#)TestFactory.java 1.5 06/10/10 * * Copyright 1990-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt). * * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. */ package gunit.framework ; import java.io.* ; import java.util.* ; import junit.framework.Test ; import junit.framework.TestSuite ; /** * <code>TestFactory</code> provides methods to create <code>Test</code> */ public class TestFactory { public static Test createTest(Class[] testClasses) { TestSuite suite = new TestSuite() ; for ( int i = 0 ; i < testClasses.length ; i ++ ) { suite.addTest(new TestSuite(testClasses[i])) ; } return suite ; } public static Test createTest(String fileName) { try { return createTest(new FileInputStream(fileName)); } catch ( Exception ex ) { return new TestSuite() ; } } public static Test createTest(InputStream stream) { if ( !(stream instanceof BufferedInputStream) ) { stream = new BufferedInputStream(stream) ; } List classes = new ArrayList() ; String line = null ; BufferedReader reader = new BufferedReader( new InputStreamReader(stream)); try { while ( (line = reader.readLine()) != null ) { try { classes.add(Class.forName(line.trim())); } catch ( Exception ex ) { System.out.println("Unable to create "+line) ; } } } catch ( Exception ex ) { System.out.println(ex) ; } finally { try { stream.close() ; } catch ( Exception ex ) { } } return createTest((Class[])classes.toArray(new Class[0])); } }