package org.geotools.styling;
import java.util.Set;
import org.geotools.factory.CommonFactoryFinder;
import org.junit.Test;
import org.opengis.filter.Filter;
import org.opengis.filter.FilterFactory;
import static org.junit.Assert.*;
public class StyleAttributeExtractorTest {
FilterFactory ff = CommonFactoryFinder.getFilterFactory(null);
StyleBuilder sb = new StyleBuilder(ff);
@Test
public void testPlainFilter() {
Filter f = ff.greater(ff.property("attribute"), ff.literal(10));
Rule r = sb.createRule(sb.createPointSymbolizer());
r.setFilter(f);
StyleAttributeExtractor extractor = new StyleAttributeExtractor();
r.accept(extractor);
Set<String> atts = extractor.getAttributeNameSet();
assertTrue(atts.contains("attribute"));
assertEquals(1, atts.size());
assertTrue(extractor.getDefaultGeometryUsed());
}
public void testGeometryTransformation() {
PointSymbolizer ps = sb.createPointSymbolizer();
ps.setGeometry(ff.function("offset", ff.property("the_geom"), ff.property("offx"), ff.property("offy")));
Rule r = sb.createRule(ps);
StyleAttributeExtractor extractor = new StyleAttributeExtractor();
r.accept(extractor);
Set<String> atts = extractor.getAttributeNameSet();
assertEquals(3, atts.size());
assertTrue(atts.contains("the_geom"));
assertTrue(atts.contains("offx"));
assertTrue(atts.contains("offy"));
assertFalse(extractor.getDefaultGeometryUsed());
}
}