This is an automated email from the ASF dual-hosted git repository.

jsorel pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git


The following commit(s) were added to refs/heads/geoapi-4.0 by this push:
     new ecb8f7f  Portrayal : add SEPortrayer symbolizer geometry expression 
test case
ecb8f7f is described below

commit ecb8f7f90282ba147518c48221a39993bc01f095
Author: jsorel <[email protected]>
AuthorDate: Fri Mar 5 09:40:07 2021 +0100

    Portrayal : add SEPortrayer symbolizer geometry expression test case
---
 .../apache/sis/internal/map/SEPortrayerTest.java   | 36 ++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git 
a/core/sis-portrayal/src/test/java/org/apache/sis/internal/map/SEPortrayerTest.java
 
b/core/sis-portrayal/src/test/java/org/apache/sis/internal/map/SEPortrayerTest.java
index 9687ef2..0a38bd2 100644
--- 
a/core/sis-portrayal/src/test/java/org/apache/sis/internal/map/SEPortrayerTest.java
+++ 
b/core/sis-portrayal/src/test/java/org/apache/sis/internal/map/SEPortrayerTest.java
@@ -704,6 +704,42 @@ public class SEPortrayerTest extends TestCase {
         assertNotNull(type.getProperty("description"));
     }
 
+    /**
+     * Test a geometry expression do not affect portraying bbox filtering.
+     */
+    @Test
+    public void testGeometryExpression() {
+
+        final MockLineSymbolizer symbolizer = new MockLineSymbolizer();
+        symbolizer.geometry = filterFactory.function("ST_Centroid", 
filterFactory.property("geom"));
+
+        final MockRule rule = new MockRule();
+        rule.symbolizers().add(symbolizer);
+
+        final MockStyle style = new MockStyle();
+        final MockFeatureTypeStyle fts = new MockFeatureTypeStyle();
+        style.featureTypeStyles().add(fts);
+        fts.rules().add(rule);
+
+        final GeneralEnvelope env = new 
GeneralEnvelope(CommonCRS.WGS84.normalizedGeographic());
+        env.setRange(0, 9, 11);
+        env.setRange(1, 19, 21);
+
+        final MapLayer fishLayer = new MapLayer();
+        fishLayer.setData(fishes);
+        fishLayer.setStyle(style);
+        final MapLayer boatLayer = new MapLayer();
+        boatLayer.setData(boats);
+        boatLayer.setStyle(style);
+        final MapLayers layers = new MapLayers();
+        layers.getComponents().add(fishLayer);
+        layers.getComponents().add(boatLayer);
+
+        final Set<Match> presentations = present(layers, env);
+        assertEquals(1, presentations.size());
+        assertTrue(presentations.contains(new Match("2", fishLayer, fishes, 
symbolizer)));
+    }
+
     private static class Match {
         private final String identifier;
         private final MapLayer layer;

Reply via email to