package org.geotools.styling.builder; import static org.junit.Assert.*; import org.geotools.styling.FeatureTypeConstraint; import org.geotools.styling.NamedLayer; import org.geotools.styling.NamedStyle; import org.geotools.styling.PointSymbolizer; import org.geotools.styling.StyledLayerDescriptor; import org.geotools.styling.UserLayer; import org.junit.Test; import org.opengis.filter.PropertyIsGreaterThan; /** * * * @source $URL$ */ public class SLDTest extends AbstractStyleTest { @Test public void testSimpleNamed() { StyledLayerDescriptor sld = new NamedLayerBuilder().name("states").style() .featureTypeStyle().rule().point().buildSLD(); // print(sld); StyleCollector collector = new StyleCollector(); sld.accept(collector); assertSimpleStyle(collector); NamedLayer layer = (NamedLayer) collector.layers.get(0); assertEquals("states", layer.getName()); assertTrue(collector.symbolizers.get(0) instanceof PointSymbolizer); } @Test public void testNamedStyle() { StyledLayerDescriptor sld = new NamedLayerBuilder().name("states").style() .name("population").buildSLD(); // print(sld); StyleCollector collector = new StyleCollector(); sld.accept(collector); assertEquals(0, collector.featureTypeStyles.size()); assertEquals(0, collector.rules.size()); assertEquals(0, collector.symbolizers.size()); assertEquals(1, collector.styles.size()); assertEquals(1, collector.layers.size()); NamedLayer layer = (NamedLayer) collector.layers.get(0); assertEquals("states", layer.getName()); NamedStyle ns = (NamedStyle) layer.getStyles()[0]; assertEquals("population", ns.getName()); } @Test public void testRemoteOWS() { PropertyIsGreaterThan tenMillionPeople = ff.greater(ff.property("PERSONS"), ff.literal(10000000)); UserLayerBuilder lb = new UserLayerBuilder(); lb.remoteOWS("http://geoserver.org/geoserver/ows", "WFS"); lb.featureTypeConstraint().featureTypeName("states") .filter(tenMillionPeople); lb.style().featureTypeStyle().rule().polygon().fill(); StyledLayerDescriptor sld = lb.buildSLD(); // print(sld); StyleCollector collector = new StyleCollector(); sld.accept(collector); assertSimpleStyle(collector); UserLayer layer = (UserLayer) collector.layers.get(0); assertEquals("http://geoserver.org/geoserver/ows", layer.getRemoteOWS().getOnlineResource()); assertEquals("WFS", layer.getRemoteOWS().getService()); FeatureTypeConstraint constraint = layer.getLayerFeatureConstraints()[0]; assertEquals("states", constraint.getFeatureTypeName()); assertEquals(tenMillionPeople, constraint.getFilter()); } }