/* * 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.data.oracle; import org.geotools.data.DefaultQuery; import org.geotools.geometry.jts.ReferencedEnvelope; import org.geotools.jdbc.JDBCDataStore; import org.geotools.jdbc.JDBCFeatureSourceTest; import org.geotools.jdbc.JDBCTestSetup; import org.geotools.referencing.CRS; import org.opengis.filter.FilterFactory; import org.opengis.filter.PropertyIsEqualTo; public class OracleFeatureSourceTest extends JDBCFeatureSourceTest { @Override protected JDBCTestSetup createTestSetup() { return new OracleTestSetup(); } public void testEstimatedBounds() throws Exception { // enable fast bbox ((OracleDialect) ((JDBCDataStore) dataStore).getSQLDialect()).setEstimatedExtentsEnabled(true); ReferencedEnvelope bounds = dataStore.getFeatureSource(tname("ft1")).getBounds(); assertEquals(0l, Math.round(bounds.getMinX())); assertEquals(0l, Math.round(bounds.getMinY())); assertEquals(2l, Math.round(bounds.getMaxX())); assertEquals(2l, Math.round(bounds.getMaxY())); assertTrue(areCRSEqual(CRS.decode("EPSG:4326"), bounds.getCoordinateReferenceSystem())); } public void testEstimatedBoundsWithQuery() throws Exception { // enable fast bbox ((OracleDialect) ((JDBCDataStore) dataStore).getSQLDialect()).setEstimatedExtentsEnabled(true); FilterFactory ff = dataStore.getFilterFactory(); PropertyIsEqualTo filter = ff.equals(ff.property(aname("stringProperty")), ff.literal("one")); DefaultQuery query = new DefaultQuery(); query.setFilter(filter); ReferencedEnvelope bounds = dataStore.getFeatureSource(tname("ft1")).getBounds(query); assertEquals(1l, Math.round(bounds.getMinX())); assertEquals(1l, Math.round(bounds.getMinY())); assertEquals(1l, Math.round(bounds.getMaxX())); assertEquals(1l, Math.round(bounds.getMaxY())); assertTrue(areCRSEqual(CRS.decode("EPSG:4326"), bounds.getCoordinateReferenceSystem())); } }