package org.geotools.styling.builder;
import static org.junit.Assert.*;
import java.awt.Color;
import org.geotools.factory.CommonFactoryFinder;
import org.geotools.filter.expression.ExpressionBuilder;
import org.geotools.styling.AnchorPoint;
import org.geotools.styling.Description;
import org.geotools.styling.FeatureTypeConstraint;
import org.geotools.styling.FeatureTypeStyle;
import org.geotools.styling.Fill;
import org.geotools.styling.Mark;
import org.geotools.styling.PointSymbolizer;
import org.geotools.styling.Rule;
import org.geotools.styling.Style;
import org.geotools.styling.StyleFactory;
import org.geotools.styling.StyledLayerDescriptor;
import org.geotools.styling.UserLayer;
import org.junit.Ignore;
import org.junit.Test;
import org.opengis.filter.Filter;
import org.opengis.filter.expression.Expression;
import org.opengis.style.Halo;
/**
*
*
* @source $URL$
*/
public class StyleBuilderTest {
public void example() {
StyleFactory sf = CommonFactoryFinder.getStyleFactory(null);
StyledLayerDescriptor sld = sf.createStyledLayerDescriptor();
sld.setName("example");
sld.setAbstract("Example Style Layer Descriptor");
UserLayer layer = sf.createUserLayer();
layer.setName("layer");
FeatureTypeConstraint constraint = sf.createFeatureTypeConstraint("Feature",
Filter.INCLUDE, null);
layer.layerFeatureConstraints().add(constraint);
Style style = sf.createStyle();
style.getDescription().setTitle("Style");
style.getDescription().setAbstract("Definition of Style");
// define feature type styles used to actually
// define how features are rendered
//
layer.userStyles().add(style);
sld.layers().add(layer);
}
@Test
public void emailExample() {
StyleBuilder builder = new StyleBuilder();
RuleBuilder rule = builder.featureTypeStyle().featureTypeName("Feature").rule();
rule.point().graphic().externalGraphic("file:///C:/images/house.gif", "image/gid").mark()
.name("circle");
Style style = builder.build();
assertNotNull(style);
}
@Test
public void anchorPoint() {
AnchorPointBuilder b = new AnchorPointBuilder();
AnchorPoint anchor = b.build();
assertEquals(0.0, anchor.getAnchorPointX().evaluate(null, Double.class), 0.0);
assertEquals(0.0, anchor.getAnchorPointY().evaluate(null, Double.class), 0.0);
anchor = b.x(0.5).y(0.9).build();
assertEquals(0.5, anchor.getAnchorPointX().evaluate(null, Double.class), 0.0);
assertEquals(0.9, anchor.getAnchorPointY().evaluate(null, Double.class), 0.0);
}
@Test
public void description() {
DescriptionBuilder b = new DescriptionBuilder();
Description d = b.build();
assertNull(d.getTitle());
assertNull(d.getAbstract());
assertNull(b.unset().build());
b = new DescriptionBuilder();
b.description("here be dragons");
d = b.build();
assertEquals("here be dragons", d.getAbstract().toString());
assertNull(b.build().getAbstract());
b = new DescriptionBuilder();
b.description("here be dragons");
d = b.build();
assertEquals("here be dragons", d.getAbstract().toString());
}
@Test
public void testDisplacementBuilder() {
DisplacementBuilder b = new DisplacementBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testExtensionSymbolizerBuilder() {
ExtensionSymbolizerBuilder b = new ExtensionSymbolizerBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testExtentBuilder() {
ExtentBuilder b = new ExtentBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
b = new ExtentBuilder(this);
}
@Test
public void testExternalGraphicBuilder() {
ExternalGraphicBuilder b = new ExternalGraphicBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testExternalMarkBuilder() {
ExternalMarkBuilder b = new ExternalMarkBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testFeatureTypeConstraintBuilder() {
FeatureTypeConstraintBuilder b = new FeatureTypeConstraintBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testFeatureTypeStyleBuilder() {
FeatureTypeStyleBuilder b = new FeatureTypeStyleBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testFillBuilder() {
FillBuilder b = new FillBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testFontBuilder() {
DisplacementBuilder b = new DisplacementBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testGraphicBuilder() {
GraphicBuilder b = new GraphicBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testGraphicLegendBuilder() {
GraphicLegendBuilder b = new GraphicLegendBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testHaloBuilder() {
HaloBuilder b = new HaloBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testLayerFeatureConstraintsBuilder() {
LayerFeatureConstraintsBuilder b = new LayerFeatureConstraintsBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
b = new LayerFeatureConstraintsBuilder(this);
}
@Test
public void testLinePlacementBuilder() {
LinePlacementBuilder b = new LinePlacementBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testLineSymbolizerBuilder() {
LineSymbolizerBuilder b = new LineSymbolizerBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testMarkBuilder() {
MarkBuilder b = new MarkBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testNamedLayerBuilder() {
NamedLayerBuilder b = new NamedLayerBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testPointPlacementBuilder() {
PointPlacementBuilder b = new PointPlacementBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testPointSymbolizerBuilder() {
PointSymbolizerBuilder b = new PointSymbolizerBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testPolygonSymbolizerBuilder() {
PolygonSymbolizerBuilder b = new PolygonSymbolizerBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testRasterSymbolizerBuilder() {
RasterSymbolizerBuilder b = new RasterSymbolizerBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testRemoteOWSBuilder() {
RemoteOWSBuilder b = new RemoteOWSBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().resource("localhost").service("WMS").build());
}
@Test
public void testRuleBuilder() {
RuleBuilder b = new RuleBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testSelectedChannelTypeBuilder() {
SelectedChannelTypeBuilder b = new SelectedChannelTypeBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testShadedReliefBuilder() {
ShadedReliefBuilder b = new ShadedReliefBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testStrokeBuilder() {
StrokeBuilder b = new StrokeBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testStyleBuilder() {
StyleBuilder b = new StyleBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testStyledLayerDescriptorBuilder() {
StyledLayerDescriptorBuilder b = new StyledLayerDescriptorBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testSymbolBuilder() {
DisplacementBuilder b = new DisplacementBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testTextSymbolizerBuilder() {
TextSymbolizerBuilder b = new TextSymbolizerBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void testUserLayerBuilder() {
UserLayerBuilder b = new UserLayerBuilder();
assertNull(b.unset().build());
assertNotNull(b.reset().build());
}
@Test
public void expression() {
ExpressionBuilder b = new ExpressionBuilder();
assertNotNull(b.build());
assertNull(b.unset().build());
assertEquals(Expression.NIL, b.reset().build());
assertNotNull(b.reset().literal(1).build());
assertEquals(b.unset().literal(1).build(), b.reset().literal(1).build());
}
public void defaults() {
Style style = new StyleBuilder().build();
assertNotNull(style);
assertNull(style.getName());
assertEquals(1, style.featureTypeStyles().size());
FeatureTypeStyle fts = style.featureTypeStyles().get(0);
assertNotNull(fts);
assertEquals(0, fts.featureTypeNames().size());
assertEquals(1, fts.rules().size());
Rule r = fts.rules().get(0);
assertNotNull(r);
assertNull(r.getName());
assertEquals(1, r.symbolizers().size());
PointSymbolizer ps = (PointSymbolizer) r.symbolizers().get(0);
assertNull(ps.getGeometryPropertyName());
assertEquals(1, ps.getGraphic().graphicalSymbols().size());
Mark mark = (Mark) ps.getGraphic().graphicalSymbols().get(0);
assertEquals("square", mark.getWellKnownName().evaluate(null));
}
@Test
public void fill() throws Exception {
FillBuilder b = new FillBuilder();
Fill fill = b.color(Color.BLUE).opacity(0.75).build();
assertNotNull(fill);
assertNotNull(b.color);
assertEquals(Color.BLUE, fill.getColor().evaluate(null, Color.class));
}
@Test
public void halo() {
HaloBuilder b = new HaloBuilder(null);
Halo halo = b.build();
assertNotNull(halo);
}
@Ignore
@Test
public void testPolygonStyle() {
StyleBuilder sb = new StyleBuilder();
PolygonSymbolizerBuilder symb = sb.featureTypeStyle().name("Simple polygon style").rule()
.polygon();
symb.stroke().color(Color.BLUE).width(1).opacity(0.5);
symb.fill().color(Color.CYAN).opacity(0.5);
Style style = sb.build();
// now what do we test :-)
}
/*
* public void test(){ FeatureTypeFactory factory =
* CommonFactoryFinder.getFeatureTypeFactory(null);
*
* AttributeTypeBuilder b = new AttributeTypeBuilder(factory); AttributeType ANY_URI =
* b.name("anyURI").binding(URI.class).buildType(); AttributeType DOUBLE =
* b.name("Double").binding(Double.class).buildType();
*
* AttributeDescriptor uom = b.buildDescriptor("uom", ANY_URI ); AttributeDescriptor value =
* b.inline(true).buildDescriptor("value", DOUBLE );
*
* Set<PropertyDescriptor> properties = new HashSet<PropertyDescriptor>(); properties.add( value
* ); properties.add( uom );
*
* ComplexType MEASURE_TYPE = factory.createComplexType( new NameImpl("MeasureType"),
* properties, true, false, Collections.EMPTY_LIST, null, null );
*
*
* }
*/
}