diff options
-rw-r--r-- | src/main/java/org/geojson/Polygon.java | 6 | ||||
-rw-r--r-- | src/test/java/org/geojson/jackson/PolygonTest.java | 18 |
2 files changed, 23 insertions, 1 deletions
diff --git a/src/main/java/org/geojson/Polygon.java b/src/main/java/org/geojson/Polygon.java index b3649e8..d4c42af 100644 --- a/src/main/java/org/geojson/Polygon.java +++ b/src/main/java/org/geojson/Polygon.java @@ -19,7 +19,11 @@ public class Polygon extends Geometry<List<LngLatAlt>> { } public void setExteriorRing(List<LngLatAlt> points) { - coordinates.add(0, points); + if (coordinates.isEmpty()) { + coordinates.add(0, points); + } else { + coordinates.set(0, points); + } } @JsonIgnore diff --git a/src/test/java/org/geojson/jackson/PolygonTest.java b/src/test/java/org/geojson/jackson/PolygonTest.java index ef06fdf..6298483 100644 --- a/src/test/java/org/geojson/jackson/PolygonTest.java +++ b/src/test/java/org/geojson/jackson/PolygonTest.java @@ -5,6 +5,8 @@ import org.geojson.LngLatAlt; import org.geojson.Polygon; import org.junit.Test; +import java.util.Arrays; +import java.util.Collections; import java.util.List; import static org.junit.Assert.assertEquals; @@ -46,6 +48,22 @@ public class PolygonTest { assertListEquals(MockData.INTERNAL, polygon.getInteriorRings().get(0)); } + @Test + public void itShouldSetExteriorRing() throws Exception { + Polygon polygon = new Polygon(); + polygon.setExteriorRing(MockData.EXTERNAL); + assertEquals(MockData.EXTERNAL, polygon.getExteriorRing()); + } + + @Test + public void itShouldReplaceExteriorRing() throws Exception { + Polygon polygon = new Polygon(Arrays.asList( + new LngLatAlt(0, 0), new LngLatAlt(1, 0), new LngLatAlt(1, 1), new LngLatAlt(0, 1), new LngLatAlt(0, 0))); + polygon.setExteriorRing(MockData.EXTERNAL); + assertEquals(MockData.EXTERNAL, polygon.getExteriorRing()); + assertEquals(0, polygon.getInteriorRings().size()); + } + private void assertListEquals(List<LngLatAlt> expectedList, List<LngLatAlt> actualList) { for (int x = 0; x < actualList.size(); x++) { LngLatAlt expected = expectedList.get(x); |