public void testMark() { Mark mark = sf.getCircleMark(); Mark clone = visitor.copy(mark); assertCopy(mark, clone); Mark notEq = sf.getStarMark(); assertEqualsContract(clone, notEq, mark); }
public void testTextSymbolizerVendorParams() { TextSymbolizer textSymb = sf.createTextSymbolizer(); textSymb.getOptions().put("autoWrap", "100"); textSymb.accept(visitor); TextSymbolizer clone = (TextSymbolizer) visitor.getCopy(); assertCopy(textSymb, clone); assertEqualsContract(textSymb, clone); assertEquals(1, clone.getOptions().size()); assertEquals("100", clone.getOptions().get("autoWrap")); }
private static void assertCopy(Object real, Object clone) { assertNotNull("Real was null", real); assertNotNull("Clone was null", clone); assertTrue("" + real.getClass().getName() + " was not cloned", real != clone); }
public void testExternalGraphicWithInlineContent() { Icon icon = new Icon() { @Override public void paintIcon(Component c, Graphics g, int x, int y) {} @Override public int getIconWidth() { return 16; } @Override public int getIconHeight() { return 16; } }; ExternalGraphic exGraphic = sf.createExternalGraphic(icon, "image/png"); ExternalGraphic clone = visitor.copy(exGraphic); assertCopy(exGraphic, clone); assertSame(exGraphic.getInlineContent(), clone.getInlineContent()); ExternalGraphic notEq = sf.createExternalGraphic(icon, "image/jpeg"); assertEqualsContract(clone, notEq, exGraphic); // make sure it works for different format, same content ExternalGraphic notEq2 = visitor.copy(clone); notEq2.setFormat("image/jpeg"); assertEqualsContract(clone, notEq2, exGraphic); }
public void testRule() throws Exception { Symbolizer symb1 = sf.createLineSymbolizer(sf.getDefaultStroke(), "geometry"); Symbolizer symb2 = sf.createPolygonSymbolizer(sf.getDefaultStroke(), sf.getDefaultFill(), "shape"); Rule rule = sf.createRule(); rule.setSymbolizers(new Symbolizer[] {symb1, symb2}); rule.accept(visitor); Rule clone = (Rule) visitor.getCopy(); assertCopy(rule, clone); assertEqualsContract(rule, clone); symb2 = sf.createPolygonSymbolizer(sf.getDefaultStroke(), sf.getDefaultFill(), "shape"); Rule notEq = sf.createRule(); notEq.setSymbolizers(new Symbolizer[] {symb2}); assertEqualsContract(clone, notEq, rule); symb1 = sf.createLineSymbolizer(sf.getDefaultStroke(), "geometry"); clone.setSymbolizers(new Symbolizer[] {symb1}); assertTrue(!rule.equals(clone)); }
public void testRasterSymbolizerWithOverlapBehavior() throws Exception { RasterSymbolizer rasterSymb1 = sf.createRasterSymbolizer(); rasterSymb1.setOverlapBehavior(OverlapBehavior.AVERAGE); rasterSymb1.accept(visitor); RasterSymbolizer clone1 = (RasterSymbolizer) visitor.getCopy(); assertEquals(clone1.getOverlapBehavior(), rasterSymb1.getOverlapBehavior()); // Try literal expression RasterSymbolizer rasterSymbLiteral = sf.createRasterSymbolizer(); rasterSymbLiteral.setOverlap(ff.literal(OverlapBehavior.EARLIEST_ON_TOP.toString())); rasterSymbLiteral.accept(visitor); RasterSymbolizer cloneLiteral = (RasterSymbolizer) visitor.getCopy(); assertEquals(cloneLiteral.getOverlapBehavior(), rasterSymbLiteral.getOverlapBehavior()); assertEquals(cloneLiteral.getOverlap(), rasterSymbLiteral.getOverlap()); // Try with invalid expression string RasterSymbolizer rasterSymb3 = sf.createRasterSymbolizer(); try { rasterSymb3.setOverlap(ff.literal("invalid string")); } catch (IllegalArgumentException e) { // Expected result } catch (Exception e) { fail(); } // Compare rastersymbolizer overlap behaviour RasterSymbolizer notEq = sf.createRasterSymbolizer(); assertFalse(Utilities.equals(notEq.getOverlapBehavior(), rasterSymb1.getOverlapBehavior())); }
public void testPointSymbolizerWithGeomFunction() throws Exception { URL urlExternal = getClass().getResource("/data/sld/blob.gif"); ExternalGraphic extg = sb.createExternalGraphic(urlExternal, "image/svg+xml"); Graphic graphic = sb.createGraphic(extg, null, null); PointSymbolizer pointSymb = sb.createPointSymbolizer(graphic); // Set a function as geometry Function geomFunc = ff.function("centroid", ff.property("thr_geom")); pointSymb.setGeometry(geomFunc); pointSymb.accept(visitor); PointSymbolizer copy = (PointSymbolizer) visitor.getCopy(); assertEquals( "Any Expression set as Geometry must be correctly replicated", geomFunc, copy.getGeometry()); }
public void testRasterSymbolizerDuplication() { // create a default RasterSymbolizer RasterSymbolizer original = sb.createRasterSymbolizer(); // duplicate it original.accept(visitor); RasterSymbolizer copy = (RasterSymbolizer) visitor.getCopy(); // compare it assertNotNull(copy); assertEquals(original, copy); }
public void testExternalMark() throws URISyntaxException { OnLineResourceImpl or = new OnLineResourceImpl(); or.setLinkage(new URI("ttf://wingdings")); ExternalMark externalMark = sf.externalMark(or, "ttf", 15); Mark mark = sf.createMark(); mark.setExternalMark(externalMark); Mark clone = visitor.copy(mark); assertCopy(mark, clone); assertCopy(mark.getExternalMark(), clone.getExternalMark()); ExternalMark emCopy = clone.getExternalMark(); assertEquals("ttf", emCopy.getFormat()); assertEquals("ttf://wingdings", emCopy.getOnlineResource().getLinkage().toASCIIString()); assertEquals(15, emCopy.getMarkIndex()); }
public void testStyle() throws Exception { FeatureTypeStyle fts = sf.createFeatureTypeStyle(); fts.setFeatureTypeName("feature-type-1"); FeatureTypeStyle fts2 = fts2(); Style style = sf.getDefaultStyle(); style.addFeatureTypeStyle(fts); style.addFeatureTypeStyle(fts2); style.accept(visitor); Style copy = (Style) visitor.getCopy(); // assertClone(style, clone); assertEqualsContract(style, copy); Style notEq = sf.getDefaultStyle(); fts2 = fts2(); notEq.addFeatureTypeStyle(fts2); assertEqualsContract(copy, notEq, style); }
public void testRasterSymbolizerWithUOM() throws Exception { RasterSymbolizer rasterSymb = sf.createRasterSymbolizer(); rasterSymb.setUnitOfMeasure(UomOgcMapping.FOOT.getUnit()); rasterSymb.accept(visitor); RasterSymbolizer clone = (RasterSymbolizer) visitor.getCopy(); assertEquals(clone.getUnitOfMeasure(), rasterSymb.getUnitOfMeasure()); RasterSymbolizer notEq = sf.createRasterSymbolizer(); assertFalse(Utilities.equals(notEq.getUnitOfMeasure(), rasterSymb.getUnitOfMeasure())); }
public void testFeatureTypeStyle() throws Exception { FeatureTypeStyle fts = sf.createFeatureTypeStyle(); fts.setFeatureTypeName("feature-type"); fts.getOptions().put("key", "value"); Rule rule1; rule1 = sf.createRule(); rule1.setName("rule1"); rule1.setFilter(ff.id(Collections.singleton(ff.featureId("FID")))); Rule rule2 = sf.createRule(); rule2.setIsElseFilter(true); rule2.setName("rule2"); fts.addRule(rule1); fts.addRule(rule2); fts.accept(visitor); FeatureTypeStyle clone = (FeatureTypeStyle) visitor.getCopy(); // assertClone(fts, clone); assertEqualsContract(fts, clone); rule1 = sf.createRule(); rule1.setName("rule1"); rule1.setFilter(ff.id(Collections.singleton(ff.featureId("FID")))); FeatureTypeStyle notEq = sf.createFeatureTypeStyle(); notEq.setName("fts-not-equal"); notEq.addRule(rule1); assertEqualsContract(clone, notEq, fts); fts.setTransformation(ff.literal("transformation")); fts.setOnlineResource(new OnLineResourceImpl()); fts.accept(visitor); clone = (FeatureTypeStyle) visitor.getCopy(); assertEqualsContract(fts, clone); }
public void testTextSymbolizerWithGeometryFunction() { TextSymbolizer symb = sf.createTextSymbolizer(); // Set a function as geometry Function geomFunc = ff.function("centroid", ff.property("the_geom")); symb.setGeometry(geomFunc); TextSymbolizer copy = (TextSymbolizer) visitor.copy(symb); // compare it assertEquals( "Any Expression set as Geometry must be correctly replicated", geomFunc, copy.getGeometry()); }
public void testStyleDuplication() throws IllegalFilterException { // create a style Style oldStyle = sb.createStyle("FTSName", sf.createPolygonSymbolizer()); oldStyle.getFeatureTypeStyles()[0].setSemanticTypeIdentifiers( new String[] {"simple", "generic:geometry"}); // duplicate it oldStyle.accept(visitor); Style newStyle = (Style) visitor.getCopy(); // compare it assertNotNull(newStyle); assertEquals(2, newStyle.getFeatureTypeStyles()[0].getSemanticTypeIdentifiers().length); }
public void testExternalGraphic() { ExternalGraphic exGraphic = sf.createExternalGraphic("http://somewhere", "image/png"); ExternalGraphic clone = visitor.copy(exGraphic); assertCopy(exGraphic, clone); ExternalGraphic notEq = sf.createExternalGraphic("http://somewhereelse", "image/jpeg"); assertEqualsContract(clone, notEq, exGraphic); // make sure it works for different format, same url ExternalGraphic notEq2 = visitor.copy(clone); notEq2.setFormat("image/jpeg"); assertEqualsContract(clone, notEq2, exGraphic); }
public void testGraphic() { Graphic graphic = sf.getDefaultGraphic(); graphic.addMark(sf.getDefaultMark()); Graphic clone = (Graphic) visitor.copy(graphic); assertCopy(graphic, clone); assertEqualsContract(clone, graphic); assertEquals(clone.getSymbols().length, graphic.getSymbols().length); Graphic notEq = sf.getDefaultGraphic(); assertEqualsContract(clone, notEq, graphic); }
private static void assertEqualsContract(Object controlEqual, Object test) { assertNotNull(controlEqual); assertNotNull(test); // check reflexivity assertTrue("Reflexivity test failed", test.equals(test)); // check symmetric assertTrue("Symmetry test failed", controlEqual.equals(test)); assertTrue("Symmetry test failed", test.equals(controlEqual)); // check non-null assertTrue("Non-null test failed", !test.equals(null)); // assertHashcode equality int controlEqHash = controlEqual.hashCode(); int testHash = test.hashCode(); assertTrue("Equal objects should return equal hashcodes", controlEqHash == testHash); }
public void testLineSymbolizerWithGeometryFunction() { LineSymbolizer lineSymb = sf.createLineSymbolizer(); // Set a function as geometry Function geomFunc = ff.function("centroid", ff.property("thr_geom")); lineSymb.setGeometry(geomFunc); LineSymbolizer copy = (LineSymbolizer) visitor.copy(lineSymb); // compare it assertEquals( "Any Expression set as Geometry must be correctly replicated", geomFunc, copy.getGeometry()); }
public void testTextSymbolizerVendorOptions() { TextSymbolizer textSymb = sf.createTextSymbolizer(); textSymb.getOptions().put("autoWrap", "100"); textSymb.accept(visitor); TextSymbolizer clone = (TextSymbolizer) visitor.getCopy(); assertCopy(textSymb, clone); assertEqualsContract(textSymb, clone); }
private static void assertEqualsContract(Object controlEqual, Object controlNe, Object test) { assertNotNull(controlEqual); assertNotNull(controlNe); assertNotNull(test); // check reflexivity assertTrue("Reflexivity test failed", test.equals(test)); // check symmetric assertTrue("Symmetry test failed", controlEqual.equals(test)); assertTrue("Symmetry test failed", test.equals(controlEqual)); assertTrue("Symmetry test failed", !test.equals(controlNe)); assertTrue("Symmetry test failed", !controlNe.equals(test)); // check transitivity assertTrue("Transitivity test failed", !controlEqual.equals(controlNe)); assertTrue("Transitivity test failed", !test.equals(controlNe)); assertTrue("Transitivity test failed", !controlNe.equals(controlEqual)); assertTrue("Transitivity test failed", !controlNe.equals(test)); // check non-null assertTrue("Non-null test failed", !test.equals(null)); // assertHashcode equality int controlEqHash = controlEqual.hashCode(); int testHash = test.hashCode(); if (controlEqHash != testHash) { // System.out.println("Warning - Equal objects should return equal hashcodes"); } }