/* * 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.v1_0; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.opengis.filter.And; import org.opengis.filter.BinaryLogicOperator; import org.opengis.filter.FilterFactory; import org.opengis.filter.Or; import org.opengis.filter.PropertyIsBetween; import org.opengis.filter.PropertyIsLike; import org.opengis.filter.PropertyIsNull; import org.geotools.xml.Binding; public class BinaryLogicOpTypeBindingTest extends FilterTestSupport { public void testBinaryLogicOpType() { assertEquals(BinaryLogicOperator.class, binding(OGC.BinaryLogicOpType).getType()); } public void testAndType() { assertEquals(And.class, binding(OGC.And).getType()); } public void testAndExecutionMode() { assertEquals(Binding.AFTER, binding(OGC.And).getExecutionMode()); } public void testAndParse() throws Exception { FilterMockData.and(document, document); And and = (And) parse(); assertEquals(2, and.getChildren().size()); } public void testAndEncode() throws Exception { Document dom = encode(FilterMockData.and(), OGC.And); assertEquals(1, dom.getElementsByTagNameNS(OGC.NAMESPACE, OGC.PropertyIsEqualTo.getLocalPart()) .getLength()); assertEquals(1, dom.getElementsByTagNameNS(OGC.NAMESPACE, OGC.PropertyIsNotEqualTo.getLocalPart()) .getLength()); } public void testOrType() { assertEquals(Or.class, binding(OGC.Or).getType()); } public void testOrExecutionMode() { assertEquals(Binding.AFTER, binding(OGC.Or).getExecutionMode()); } public void testOrParse() throws Exception { FilterMockData.or(document, document); Or or = (Or) parse(); assertEquals(2, or.getChildren().size()); } public void testOrEncode() throws Exception { Document dom = encode(FilterMockData.or(), OGC.Or); assertEquals(1, dom.getElementsByTagNameNS(OGC.NAMESPACE, OGC.PropertyIsEqualTo.getLocalPart()) .getLength()); assertEquals(1, dom.getElementsByTagNameNS(OGC.NAMESPACE, OGC.PropertyIsNotEqualTo.getLocalPart()) .getLength()); } public void testAndWithLikeParse() throws Exception { Element e = FilterMockData.and(document, document, true); FilterMockData.propertyIsLike(document, e); FilterMockData.propertyIsLike(document, e); And and = (And) parse(); assertEquals( 2, and.getChildren().size() ); assertTrue( and.getChildren().get(0) instanceof PropertyIsLike ); assertTrue( and.getChildren().get(1) instanceof PropertyIsLike ); } public void testAndWithLikeEncode() throws Exception { FilterFactory f = FilterMockData.f; And and = f.and( FilterMockData.propertyIsLike(), FilterMockData.propertyIsLike()); Document dom = encode(and,OGC.And); assertEquals( 2, getElementsByQName(dom, OGC.PropertyIsLike).getLength() ); } public void testAndWithNullParse() throws Exception { Element e = FilterMockData.and(document, document, true); FilterMockData.propertyisNull(document, e); FilterMockData.propertyisNull(document, e); And and = (And) parse(); assertEquals( 2, and.getChildren().size() ); assertTrue( and.getChildren().get(0) instanceof PropertyIsNull ); assertTrue( and.getChildren().get(1) instanceof PropertyIsNull ); } public void testAndWithNullEncode() throws Exception { FilterFactory f = FilterMockData.f; And and = f.and( FilterMockData.propertyIsNull(), FilterMockData.propertyIsNull()); Document dom = encode(and,OGC.And); assertEquals( 2, getElementsByQName(dom, OGC.PropertyIsNull).getLength() ); } public void testAndWithBetweenParse() throws Exception { Element e = FilterMockData.and(document, document, true); FilterMockData.propertyIsBetween(document, e); FilterMockData.propertyIsBetween(document, e); And and = (And) parse(); assertEquals( 2, and.getChildren().size() ); assertTrue( and.getChildren().get(0) instanceof PropertyIsBetween ); assertTrue( and.getChildren().get(1) instanceof PropertyIsBetween ); } public void testAndWithBetweenEncode() throws Exception { FilterFactory f = FilterMockData.f; And and = f.and( FilterMockData.propertyIsBetween(), FilterMockData.propertyIsBetween()); Document dom = encode(and,OGC.And); assertEquals( 2, getElementsByQName(dom, OGC.PropertyIsBetween).getLength() ); } }