/** Alpha composite does not alter colors (which are ids for UTFGrid), we can preserve it */ @Test public void testAlphaCompositePreserved() { FeatureTypeStyle fts = sb.createFeatureTypeStyle(sb.createLineSymbolizer()); fts.getOptions().put(FeatureTypeStyle.COMPOSITE, "source-over"); fts.getOptions().put(FeatureTypeStyle.COMPOSITE_BASE, "true"); Style style = sb.createStyle(); style.featureTypeStyles().add(fts); style.accept(visitor); Style copy = (Style) visitor.getCopy(); Map<String, String> options = copy.featureTypeStyles().get(0).getOptions(); assertEquals("source-over", options.get(FeatureTypeStyle.COMPOSITE)); assertEquals("true", options.get(FeatureTypeStyle.COMPOSITE_BASE)); }
/** Blending alters colors (which are ids for UTFGrid), remove it */ @Test public void testBlendingRemoval() { FeatureTypeStyle fts = sb.createFeatureTypeStyle(sb.createLineSymbolizer()); fts.getOptions().put(FeatureTypeStyle.COMPOSITE, BlendingMode.MULTIPLY.getName()); fts.getOptions().put(FeatureTypeStyle.COMPOSITE_BASE, "true"); Style style = sb.createStyle(); style.featureTypeStyles().add(fts); style.accept(visitor); Style copy = (Style) visitor.getCopy(); Map<String, String> options = copy.featureTypeStyles().get(0).getOptions(); assertNull(options.get(FeatureTypeStyle.COMPOSITE)); assertNull(options.get(FeatureTypeStyle.COMPOSITE_BASE)); }
@Test public void testOnlyTextSymbolizer() { Style style = sb.createStyle( sb.createTextSymbolizer(Color.BLACK, sb.createFont("Serif", 12), "name")); style.accept(visitor); Style copy = (Style) visitor.getCopy(); assertEquals(0, copy.featureTypeStyles().size()); }
Style copy = (Style) styleVisitor.getCopy();
@Test public void testLine() { Style style = sb.createStyle(sb.createLineSymbolizer(sb.createStroke(Color.BLACK, 3))); style.accept(visitor); Style copy = (Style) visitor.getCopy(); LineSymbolizer ls = (LineSymbolizer) copy.featureTypeStyles().get(0).rules().get(0).symbolizers().get(0); Stroke stroke = ls.getStroke(); assertEquals(colorFunction, stroke.getColor()); assertEquals(Integer.valueOf(3), stroke.getWidth().evaluate(null, Integer.class)); assertNull(stroke.dashArray()); }
@Test public void testStrokedLine() { Style style = sb.createStyle( sb.createLineSymbolizer( sb.createStroke(Color.BLACK, 1, new float[] {8, 8}))); style.accept(visitor); Style copy = (Style) visitor.getCopy(); LineSymbolizer ls = (LineSymbolizer) copy.featureTypeStyles().get(0).rules().get(0).symbolizers().get(0); Stroke stroke = ls.getStroke(); assertEquals(colorFunction, stroke.getColor()); assertEquals(Integer.valueOf(1), stroke.getWidth().evaluate(null, Integer.class)); assertEquals(0, stroke.dashArray().size()); }
@Test public void testVectorToRasterTransform() { FeatureTypeStyle fts = sb.createFeatureTypeStyle(sb.createLineSymbolizer()); Function data = ff.function("parameter", ff.literal("data")); Function tx = ff.function("vec:Heatmap", data); fts.setTransformation(tx); fts.getOptions().put(FeatureTypeStyle.COMPOSITE_BASE, "true"); Style style = sb.createStyle(); style.featureTypeStyles().add(fts); style.accept(visitor); Style copy = (Style) visitor.getCopy(); assertTrue(visitor.hasTransformations()); assertFalse(visitor.hasVectorTransformations()); assertEquals(0, copy.featureTypeStyles().size()); } }
@Test public void testGraphicStroke() { Graphic graphic = sb.createGraphic(null, sb.createMark("square"), null); graphic.setSize(ff.literal(8)); Stroke stroke = sb.createStroke(); stroke.setGraphicStroke(graphic); Style style = sb.createStyle(sb.createLineSymbolizer(stroke)); style.accept(visitor); Style copy = (Style) visitor.getCopy(); LineSymbolizer ls = (LineSymbolizer) copy.featureTypeStyles().get(0).rules().get(0).symbolizers().get(0); stroke = ls.getStroke(); assertEquals(colorFunction, stroke.getColor()); assertEquals(Integer.valueOf(8), stroke.getWidth().evaluate(null, Integer.class)); assertNull(stroke.dashArray()); }
@Test public void testRasterToVectorTransform() { FeatureTypeStyle fts = sb.createFeatureTypeStyle(sb.createLineSymbolizer()); Function data = ff.function("parameter", ff.literal("data")); Function levels = ff.function( "parameter", ff.literal("levels"), ff.literal("1100"), ff.literal("1200")); Function tx = ff.function("ras:Contour", data, levels); fts.setTransformation(tx); fts.getOptions().put(FeatureTypeStyle.COMPOSITE_BASE, "true"); Style style = sb.createStyle(); style.featureTypeStyles().add(fts); style.accept(visitor); Style copy = (Style) visitor.getCopy(); assertTrue(visitor.hasTransformations()); assertTrue(visitor.hasVectorTransformations()); assertThat(copy.featureTypeStyles().get(0).getTransformation(), instanceOf(Function.class)); Function txCopy = (Function) copy.featureTypeStyles().get(0).getTransformation(); assertEquals("ras:Contour", txCopy.getName()); }
@Test public void testFill() { PolygonSymbolizer polygonSymbolizer = sb.createPolygonSymbolizer(Color.BLACK, Color.BLACK, 3); polygonSymbolizer.getFill().setOpacity(ff.literal(0.5)); polygonSymbolizer.getStroke().setOpacity(ff.literal(0.5)); Style style = sb.createStyle(polygonSymbolizer); style.accept(visitor); Style copy = (Style) visitor.getCopy(); PolygonSymbolizer ls = (PolygonSymbolizer) copy.featureTypeStyles().get(0).rules().get(0).symbolizers().get(0); Stroke stroke = ls.getStroke(); assertEquals(colorFunction, stroke.getColor()); assertEquals(Integer.valueOf(3), stroke.getWidth().evaluate(null, Integer.class)); assertNull(stroke.dashArray()); assertEquals(Integer.valueOf(1), stroke.getOpacity().evaluate(null, Integer.class)); Fill fill = ls.getFill(); assertEquals(colorFunction, fill.getColor()); assertEquals(Integer.valueOf(1), fill.getOpacity().evaluate(null, Integer.class)); }
@Test public void testGraphicStrokeFill() { Graphic graphic = sb.createGraphic(null, sb.createMark("square"), null); graphic.setSize(ff.literal(8)); Stroke stroke = sb.createStroke(); stroke.setGraphicStroke(graphic); stroke.setOpacity(ff.literal(0.5)); Fill fill = sb.createFill(null, null, 0.5, graphic); PolygonSymbolizer polygonSymbolizer = sb.createPolygonSymbolizer(stroke, fill); Style style = sb.createStyle(polygonSymbolizer); style.accept(visitor); Style copy = (Style) visitor.getCopy(); PolygonSymbolizer ls = (PolygonSymbolizer) copy.featureTypeStyles().get(0).rules().get(0).symbolizers().get(0); Stroke strokeCopy = ls.getStroke(); assertEquals(colorFunction, strokeCopy.getColor()); assertEquals(Integer.valueOf(8), strokeCopy.getWidth().evaluate(null, Integer.class)); assertNull(strokeCopy.dashArray()); assertEquals(Integer.valueOf(1), strokeCopy.getOpacity().evaluate(null, Integer.class)); Fill fillCopy = ls.getFill(); assertEquals(colorFunction, fillCopy.getColor()); assertEquals(Integer.valueOf(1), fillCopy.getOpacity().evaluate(null, Integer.class)); }