public void testResolvePropertyName() { PropertyIsEqualTo f = factory.equal(factory.property("gml:name"), factory.literal("foo"), true); assertEquals("gml:name", f.getExpression1().toString()); f = (PropertyIsEqualTo) f.accept(new PropertyNameResolvingVisitor(featureType), null); assertEquals("name", f.getExpression1().toString()); }
@Test public void equalsTest() { // forward PropertyIsEqualTo source = ff.equal(ff.property("i"), ff.literal("10"), true); PropertyIsEqualTo bound = (PropertyIsEqualTo) source.accept(visitor, null); assertEquals(Integer.valueOf(10), ((Literal) bound.getExpression2()).getValue()); // flip it source = ff.equal(ff.literal("10"), ff.property("i"), true); bound = (PropertyIsEqualTo) source.accept(visitor, null); assertEquals(Integer.valueOf(10), ((Literal) bound.getExpression1()).getValue()); }
public void testCompareFunctionNull() { Function f = ff.function("env", ff.literal("var")); PropertyIsEqualTo filter = ff.equal(f, ff.literal("test"), false); Filter simplified = (Filter) filter.accept(simpleVisitor, null); assertEquals(Filter.EXCLUDE, simplified); }
public void testCompareConstantFunction() { EnvFunction.setLocalValue("var", "test"); Function f = ff.function("env", ff.literal("var")); PropertyIsEqualTo filter = ff.equal(f, ff.literal("test"), false); Filter simplified = (Filter) filter.accept(simpleVisitor, null); assertEquals(Filter.INCLUDE, simplified); }
@Test public void testBinaryComparison() { PropertyIsEqualTo equal = ff.equal(ff.property("a"), ff.property("b"), false); NullHandlingVisitor visitor = new NullHandlingVisitor(); Filter result = (Filter) equal.accept(visitor, null); assertTrue(result instanceof And); Filter expected = ff.and(Arrays.asList(equal, propertyNotNull("a"), propertyNotNull("b"))); assertEquals(expected, result); equal = ff.equal(ff.property("a"), ff.literal(10), false); result = (Filter) equal.accept(visitor, null); assertTrue(result instanceof And); expected = ff.and(Arrays.asList(equal, propertyNotNull("a"))); assertEquals(expected, result); equal = ff.equal(ff.literal(10), ff.property("b"), false); result = (Filter) equal.accept(visitor, null); assertTrue(result instanceof And); expected = ff.and(Arrays.asList(equal, propertyNotNull("b"))); assertEquals(expected, result); equal = ff.equal(ff.literal(10), ff.literal(20), false); result = (Filter) equal.accept(visitor, null); assertEquals(equal, result); }
public void testPropertyEqualsFirstArgumentNotPropertyName() throws Exception { GeometryFactory gf = new GeometryFactory(); LineString ls = gf.createLineString( new Coordinate[] {new Coordinate(10, 15), new Coordinate(20, 25)}); ls.setUserData(CRS.decode("urn:x-ogc:def:crs:EPSG:6.11.2:4326")); // make sure a class cast does not occur, see: http://jira.codehaus.org/browse/GEOS-1860 Function function = ff.function("geometryType", ff.property("geom")); PropertyIsEqualTo original = ff.equals(ff.literal("Point"), function); Filter clone = (Filter) original.accept(reprojector, null); assertNotSame(original, clone); assertEquals(original, clone); // try the opposite, literal and function original = ff.equals(function, ff.literal("Point")); clone = (Filter) original.accept(reprojector, null); assertNotSame(original, clone); assertEquals(original, clone); }
public void testPropertyEqualWithFunction() throws Exception { Function function = new GeometryFunction(); // see if coordinates gets flipped, urn forces lat/lon interpretation PropertyIsEqualTo original = ff.equals(ff.property("geom"), function); PropertyIsEqualTo clone = (PropertyIsEqualTo) original.accept(reprojector, null); assertNotSame(original, clone); assertEquals(clone.getExpression1(), original.getExpression1()); LineString clonedLs = (LineString) clone.getExpression2().evaluate(null); assertTrue(15 == clonedLs.getCoordinateN(0).x); assertTrue(10 == clonedLs.getCoordinateN(0).y); assertTrue(25 == clonedLs.getCoordinateN(1).x); assertTrue(20 == clonedLs.getCoordinateN(1).y); assertEquals(CRS.decode("EPSG:4326"), clonedLs.getUserData()); }
Filter unrolled = (Filter) complexFilter.accept(visitor, null); assertNotNull(unrolled); assertNotSame(complexFilter, unrolled);
@Test public void testCompareFilter() throws Exception { PropertyIsEqualTo complexFilter = ff.equal(ff.property("measurement/result"), ff.literal(1.1), true, MatchAction.ALL); Filter unrolled = (Filter) complexFilter.accept(visitor, null); assertNotNull(unrolled); assertTrue(unrolled instanceof PropertyIsEqualTo); assertNotSame(complexFilter, unrolled); assertTrue(((PropertyIsEqualTo) unrolled).isMatchingCase()); assertEquals(MatchAction.ALL, ((PropertyIsEqualTo) unrolled).getMatchAction()); Expression left = ((PropertyIsEqualTo) unrolled).getExpression1(); Expression right = ((PropertyIsEqualTo) unrolled).getExpression2(); assertTrue(left instanceof PropertyName); assertTrue(right instanceof Literal); PropertyName attExp = (PropertyName) left; String expectedAtt = "results_value"; assertEquals(expectedAtt, attExp.getPropertyName()); assertEquals(new Double(1.1), ((Literal) right).getValue()); }
Filter unrolled = (Filter) complexFilter.accept(visitor, null); assertNotNull(unrolled); assertNotSame(complexFilter, unrolled);
@Test public void testCompareFilter() throws Exception { PropertyIsEqualTo complexFilter = ff.equal(ff.property("measurement/result"), ff .literal(1.1), true, MatchAction.ALL); Filter unrolled = (Filter) complexFilter.accept(visitor, null); assertNotNull(unrolled); assertTrue(unrolled instanceof PropertyIsEqualTo); assertNotSame(complexFilter, unrolled); assertTrue(((PropertyIsEqualTo) unrolled).isMatchingCase()); assertEquals(MatchAction.ALL, ((PropertyIsEqualTo) unrolled).getMatchAction()); Expression left = ((PropertyIsEqualTo) unrolled).getExpression1(); Expression right = ((PropertyIsEqualTo) unrolled).getExpression2(); assertTrue(left instanceof PropertyName); assertTrue(right instanceof Literal); PropertyName attExp = (PropertyName) left; String expectedAtt = "results_value"; assertEquals(expectedAtt, attExp.getPropertyName()); assertEquals(new Double(1.1), ((Literal) right).getValue()); }