/* * 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.filter.text.cql2; import org.junit.Assert; import org.junit.Test; import org.opengis.filter.Filter; /** * FilterToCQLTest * * Unit test for FilterToCQL * * @author Johann Sorel * * @source $URL$ */ public class FilterToCQLTest{ FilterToCQL toCQL = new FilterToCQL(); @Test public void testSample() throws Exception { Filter filter = CQL.toFilter(FilterCQLSample.LESS_FILTER_SAMPLE); String output = filter.accept( toCQL, null ).toString(); Assert.assertNotNull( output ); Assert.assertEquals( FilterCQLSample.LESS_FILTER_SAMPLE, output ); } /* NOT (ATTR1 BETWEEN 10 AND 20) */ @Test public void testNotBetween() throws Exception { cqlTest( "NOT (ATTR1 BETWEEN 10 AND 20)" ); } /* ((ATTR1 < 10 AND ATTR2 < 2) OR ATTR3 > 10) */ @Test public void testANDOR() throws Exception { cqlTest( "((ATTR1 < 10 AND ATTR2 < 2) OR ATTR3 > 10)" ); } /** (ATTR1 > 10 OR ATTR2 < 2) */ @Test public void testOR() throws Exception { cqlTest( "(ATTR1 > 10 OR ATTR2 < 2)" ); } @Test public void testLike() throws Exception { cqlTest( "ATTR1 LIKE '%ABC%'" ); } @Test public void testBbox() throws Exception { cqlTest( "BBOX(the_geom, 10.0,20.0,30.0,40.0)" ); } protected void cqlTest( String cql ) throws Exception { Filter filter = CQL.toFilter(cql); Assert.assertNotNull( cql + " parse", filter ); String output = filter.accept( toCQL, null ).toString(); Assert.assertNotNull( cql + " encode", output ); Assert.assertEquals( cql, cql,output ); } }