/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2014 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.wms.map;
import static org.junit.Assert.*;
import java.io.IOException;
import java.util.List;
import org.geotools.factory.CommonFactoryFinder;
import org.geotools.styling.NamedLayer;
import org.geotools.styling.RasterSymbolizer;
import org.geotools.styling.SLDParser;
import org.geotools.styling.Style;
import org.geotools.styling.StyledLayerDescriptor;
import org.junit.Test;
import org.opengis.filter.expression.Function;
public class RasterSymbolizerVisitorTest {
@Test
public void testRasterRenderingTransformation() throws IOException {
Style style = parseStyle("CropTransform.sld");
RasterSymbolizerVisitor visitor = new RasterSymbolizerVisitor(1000, null);
style.accept(visitor);
List<RasterSymbolizer> symbolizers = visitor.getRasterSymbolizers();
assertEquals(1, symbolizers.size());
Function tx = (Function) visitor.getRasterRenderingTransformation();
assertNotNull(tx);
assertEquals("ras:CropCoverage", tx.getName());
}
@Test
public void testRasterToVectorTransformation() throws IOException {
Style style = parseStyle("ContourTransform.sld");
RasterSymbolizerVisitor visitor = new RasterSymbolizerVisitor(1000, null);
style.accept(visitor);
List<RasterSymbolizer> symbolizers = visitor.getRasterSymbolizers();
assertEquals(0, symbolizers.size());
Function tx = (Function) visitor.getRasterRenderingTransformation();
assertNull(tx);
}
@Test
public void testVectorToRasterRenderingTransformation() throws IOException {
Style style = parseStyle("HeatmapTransform.sld");
RasterSymbolizerVisitor visitor = new RasterSymbolizerVisitor(1000, null);
style.accept(visitor);
List<RasterSymbolizer> symbolizers = visitor.getRasterSymbolizers();
assertEquals(1, symbolizers.size());
Function tx = (Function) visitor.getRasterRenderingTransformation();
assertNotNull(tx);
assertEquals("vec:Heatmap", tx.getName());
}
private Style parseStyle(String styleName) throws IOException {
SLDParser parser = new SLDParser(CommonFactoryFinder.getStyleFactory());
parser.setInput(RasterSymbolizerVisitorTest.class.getResource(styleName));
StyledLayerDescriptor sld = parser.parseSLD();
NamedLayer ul = (NamedLayer) sld.getStyledLayers()[0];
return ul.getStyles()[0];
}
}