### Question:
Geometry implements Typed { public abstract void validate() throws InvalidGeometryException;  @SuppressWarnings({"unchecked", "unused"}) static T convertJTSGeometry(com.vividsolutions.jts.geom.Geometry jtsGeometry); static void validatePointCoordinates(final Object raw); static void validateMultiPointCoordinates(final Object raw); static void validateLineStringCoordinates(final Object raw); static void validateMultiLineStringCoordinates(final Object raw); static void validateLinearRingCoordinates(final Object raw, boolean isExterior); static void validatePolygonCoordinates(final Object raw); static void validateMultiPolygonCoordinates(final Object raw); BBox getBBox(); void setBBox(BBox bbox); Geometry withBBox(final BBox bbox); @JsonIgnore @SuppressWarnings("WeakerAccess") com.vividsolutions.jts.geom.Geometry getJTSGeometry(); abstract BBox calculateBBox(); abstract void validate();  }### Answer:
@Test public void test_validate() throws Exception { final ObjectMapper mp = new ObjectMapper(); String json = "{\"type\":\"GeometryCollection\",\"geometries\":[]}"; GeometryCollection geometryCollection = mp.readValue(json, GeometryCollection.class); geometryCollection.validate(); json = "{\"type\":\"GeometryCollection\",\"geometries\":[" + "{\"type\":\"Point\",\"coordinates\":[0,0,0]}," + "{\"type\":\"MultiPoint\",\"coordinates\":[]}," + "{\"type\":\"MultiPoint\",\"coordinates\":[[0,0,0], [1,1,1]]}" + "]}"; geometryCollection = mp.readValue(json, GeometryCollection.class); geometryCollection.validate(); }