package org.geojson.jackson; import com.fasterxml.jackson.databind.ObjectMapper; import org.geojson.*; import org.junit.Test; import static org.junit.Assert.*; public class GeometryCollectionTest { private ObjectMapper mapper = new ObjectMapper(); @Test public void itShouldSerialize() throws Exception { GeometryCollection gc = new GeometryCollection(); gc.add(new Point(100, 0)); gc.add(new LineString(new LngLatAlt(101, 0), new LngLatAlt(102, 1))); assertEquals("{\"type\":\"GeometryCollection\"," + "\"geometries\":[{\"type\":\"Point\",\"coordinates\":[100.0,0.0]}," + "{\"type\":\"LineString\",\"coordinates\":[[101.0,0.0],[102.0,1.0]]}]}", mapper.writeValueAsString(gc)); } @Test public void itShouldDeserialize() throws Exception { GeometryCollection geometryCollection = mapper .readValue("{\"type\":\"GeometryCollection\"," + "\"geometries\":[{\"type\":\"Point\",\"coordinates\":[100.0,0.0]}," + "{\"type\":\"LineString\",\"coordinates\":[[101.0,0.0],[102.0,1.0]]}]}", GeometryCollection.class); assertNotNull(geometryCollection); } @Test public void itShouldDeserializeSubtype() throws Exception { FeatureCollection collection = mapper .readValue("{\"type\": \"FeatureCollection\"," + " \"features\": [" + " {" + " \"type\": \"Feature\"," + " \"geometry\": {" + " \"type\": \"GeometryCollection\"," + " \"geometries\": [" + " {" + " \"type\": \"Point\"," + " \"coordinates\": [100.0, 0.0]" + " }" + " ]" + " }" + " }" + " ]" + "}", FeatureCollection.class); assertNotNull(collection); assertTrue(collection.getFeatures().get(0).getGeometry() instanceof GeometryCollection); } }