package test.jeql; import java.util.*; import java.io.*; import jeql.*; import jeql.api.JeqlOptions; import jeql.api.JeqlRunner; import test.jeql.util.*; import com.vividsolutions.jts.util.*; public class TestUnit { static final String BASE = "."; String[] dirs = { BASE + "/script/unitTest", BASE + "/script/unitTest/io", BASE + "/script/unitTest/geom" }; public static void main(String args[]) { TestUnit test = new TestUnit(); try { test.run(); } catch (Exception ex) { ex.printStackTrace(); } } private int successCount = 0; public TestUnit() { } void run() throws Exception { List filenames = listAllJQLFiles(dirs); execAll(filenames); } private static List listAllJQLFiles(String[] dirs) { List filenames = new ArrayList(); for (int i = 0; i < dirs.length; i++) { File[] files = FileUtil.listFilesWithExtension(dirs[i], ".jql"); if (files == null) continue; filenames.addAll(listOfNames(files)); } return filenames; } private static List listOfNames(File[] files) { List filenames = new ArrayList(); for (int i = 0; i < files.length; i++) { filenames.add(files[i].getPath()); } return filenames; } private static String SCRIPT_SEP = "================ "; void execAll(List filenames) { Stopwatch sw = new Stopwatch(); successCount = 0; int n = filenames.size(); for (int i = 0; i < n; i++) { String filename = (String) filenames.get(i); System.out.println(SCRIPT_SEP + filename); exec(filename); // System.out.println(); } System.out.flush(); System.out.println(); int errCount = n - successCount; if (errCount > 0) System.out.println("####### ERRORS ENCOUNTERED #######"); System.out.println("Files: " + n + " Success: " + successCount + " Errors: " + errCount ); System.out.print(SCRIPT_SEP); System.out.println("Unit test run finished in " + sw.getTimeString()); System.out.flush(); } void exec(String scriptFile) { JeqlRunner runner = new JeqlRunner(); JeqlOptions options = new JeqlOptions(); boolean ok = false; try { runner.init(options); ok = runner.execScriptFile(scriptFile, new String[0]); } catch (Throwable ex) { // this should probably never happen ex.printStackTrace(); } if (ok) successCount++; } }