package org.geotools.process.spatialstatistics; import java.io.FileNotFoundException; import java.net.URL; import java.util.HashMap; import java.util.Map; import junit.framework.TestCase; import org.geotools.data.DataStore; import org.geotools.data.DataStoreFinder; import org.geotools.data.shapefile.ShapefileDataStoreFactory; import org.junit.After; import org.junit.Before; public abstract class SpatialStatisticsTestCase extends TestCase { private static final String DIRECTORY = "test-data"; protected DataStore dataStore; @Override @Before protected void setUp() throws Exception { super.setUp(); Map<String, Object> params = new HashMap<String, Object>(); final URL url = url(this, null); params.put(ShapefileDataStoreFactory.URLP.key, url); params.put(ShapefileDataStoreFactory.CREATE_SPATIAL_INDEX.key, true); params.put(ShapefileDataStoreFactory.DBFCHARSET.key, "UTF-8"); params.put(ShapefileDataStoreFactory.MEMORY_MAPPED.key, Boolean.TRUE); dataStore = DataStoreFinder.getDataStore(params); } @Override @After protected void tearDown() throws Exception { super.tearDown(); dataStore.dispose(); } private static URL url(final Object caller, final String path) throws FileNotFoundException { final URL url = getResource(caller, path); if (url == null) { throw new FileNotFoundException("Can not locate test-data for \"" + path + '"'); } return url; } private static URL getResource(final Object caller, String name) { if (name == null || (name = name.trim()).length() == 0) { name = DIRECTORY; } else { name = DIRECTORY + '/' + name; } if (caller != null) { final Class<?> c = (caller instanceof Class) ? (Class<?>) caller : caller.getClass(); return c.getResource(name); } else { return Thread.currentThread().getContextClassLoader().getResource(name); } } }