/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2002-2008, Open Source Geospatial Foundation (OSGeo) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library 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 * Lesser General Public License for more details. * */ package org.geotools.gce.arcgrid; import java.io.File; import java.io.FileFilter; import java.io.PrintWriter; import java.io.StringWriter; import java.util.logging.Logger; import javax.imageio.ImageIO; import javax.media.jai.JAI; import junit.framework.TestCase; import org.geotools.TestData; /** * @author Giannecchini * * * @source $URL$ */ public abstract class ArcGridBaseTestCase extends TestCase { protected final static Logger LOGGER = org.geotools.util.logging.Logging.getLogger(ArcGridBaseTestCase.class.toString()); protected File[] testFiles; public ArcGridBaseTestCase(String name) { super(name); } protected void setUp() throws Exception { super.setUp(); ImageIO.setUseCache(false); JAI.getDefaultInstance().getTileCache().setMemoryCapacity( 10 * 1024 * 1024); JAI.getDefaultInstance().getTileCache().setMemoryThreshold(1.0f); JAI.getDefaultInstance().getTileScheduler().setParallelism(50); JAI.getDefaultInstance().getTileScheduler().setPrefetchParallelism(50); JAI.getDefaultInstance().getTileScheduler().setPrefetchPriority(5); JAI.getDefaultInstance().getTileScheduler().setPriority(5); // check that it exisits File file = TestData.copy(this, "arcgrid/arcgrid.zip"); assertTrue(file.exists()); // unzip it TestData.unzipFile(this, "arcgrid/arcgrid.zip"); testFiles = TestData.file(this, "arcgrid/").listFiles(new FileFilter() { public boolean accept(File pathname) { return new ArcGridFormat().accepts(pathname); } }); } protected void tearDown() throws Exception { final File[] fileList = TestData.file(this, "").listFiles(); final int length = fileList.length; for (int i = 0; i < length; i++) { if (fileList[i].isDirectory()) { fileList[i].delete(); continue; } if (!fileList[i].getName().endsWith("zip")) { fileList[i].delete(); } } super.tearDown(); } public void testAll() throws Exception { final StringBuffer errors = new StringBuffer(); final int length = testFiles.length; for (int i = 0; i < length; i++) { try { runMe(testFiles[i]); } catch (Exception e) { // e.printStackTrace(); final StringWriter writer = new StringWriter(); e.printStackTrace(new PrintWriter(writer)); errors.append("\nFile ").append(testFiles[i].getAbsolutePath()) .append(" :\n").append(e.getMessage()).append("\n") .append(writer.toString()); } } if (errors.length() > 0) { fail(errors.toString()); } } public abstract void runMe(File file) throws Exception; }