/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.locationtech.spatial4j.io; import org.locationtech.spatial4j.shape.Shape; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class GeneralGeoJSONTest extends GeneralReadWriteShapeTest { ShapeReader reader; ShapeWriter writer; ShapeWriter writerForTests; @Before @Override public void setUp() { super.setUp(); reader = ctx.getFormats().getReader(ShapeIO.GeoJSON); writer = ctx.getFormats().getWriter(ShapeIO.GeoJSON); writerForTests = writer; //ctx.getFormats().getWriter(ShapeIO.GeoJSON); Assert.assertNotNull(reader); Assert.assertNotNull(writer); Assert.assertNotNull(writerForTests); } @Override protected ShapeReader getShapeReader() { return reader; } @Override protected ShapeWriter getShapeWriter() { return writer; } @Override protected ShapeWriter getShapeWriterForTests() { return writerForTests; } @Test @Override public void testWriteThenReadCircle() throws Exception { //don't test shape equality; rounding issue in 'km' conversion assertRoundTrip(circle(), false); } @Test @Override public void testWriteThenReadBufferedLine() throws Exception { //don't test shape equality; rounding issue in 'km' conversion assertRoundTrip(bufferedLine(), false); } // // Below ported from GeoJSONReadWriteTest: // @Test public void testParsePoint() throws Exception { Shape v = reader.read(pointText()); assertTrue(point().equals(v)); } @Test public void testEncodePoint() throws Exception { assertEquals(pointText(), writer.toString(point())); } @Test public void testParseLineString() throws Exception { assertEquals(line(), reader.read(lineText())); } @Test public void testEncodeLineString() throws Exception { assertEquals(lineText(), strip(writer.toString(line()))); } @Test public void testParsePolygon() throws Exception { assertEquals(polygon1(), reader.read(polygonText1())); assertEquals(polygon2(), reader.read(polygonText2())); } @Test public void testEncodePolygon() throws Exception { assertEquals(polygonText1(), writer.toString(polygon1())); assertEquals(polygonText2(), writer.toString(polygon2())); } @Test public void testParseMultiPoint() throws Exception { assertEquals(multiPoint(), reader.read(multiPointText())); } @Test public void testEncodeMultiPoint() throws Exception { assertEquals(multiPointText(), writer.toString(multiPoint())); } @Test public void testParseMultiLineString() throws Exception { assertEquals(multiLine(), reader.read(multiLineText())); } @Test public void testEncodeMultiLineString() throws Exception { assertEquals(multiLineText(), writer.toString(multiLine())); } @Test public void testParseMultiPolygon() throws Exception { assertEquals(multiPolygon(), reader.read(multiPolygonText())); } @Test public void testEncodeMultiPolygon() throws Exception { assertEquals(multiPolygonText(), writer.toString(multiPolygon())); } @Test public void testEncodeRectangle() throws Exception { assertEquals(rectangleText(), strip(writer.toString(rectangle()))); } @Test public void testParseGeometryCollection() throws Exception { assertEquals(collection(), reader.read(collectionText())); } @Test public void testEncodeGeometryCollection() throws Exception { assertEquals(collectionText(), strip(writer.toString(collection()))); } @Test public void testEncodeBufferedLineString() throws Exception { assertEquals(bufferedLineText(), strip(writer.toString(bufferedLine()))); } }