package org.geoserver.python.format; import static org.junit.Assert.assertEquals; import java.io.ByteArrayOutputStream; import java.io.File; import net.opengis.wfs.FeatureCollectionType; import net.opengis.wfs.WfsFactory; import org.apache.commons.io.FileUtils; import org.geoserver.platform.GeoServerResourceLoader; import org.geoserver.python.Python; import org.geoserver.wfs.request.FeatureCollectionResponse; import org.geotools.feature.DefaultFeatureCollection; import org.geotools.feature.FeatureCollection; import org.geotools.feature.simple.SimpleFeatureBuilder; import org.geotools.feature.simple.SimpleFeatureTypeBuilder; import org.junit.BeforeClass; import org.junit.Test; import org.opengis.feature.simple.SimpleFeatureType; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.Point; public class PythonVectorFormatAdapterTest { static Python py; static PythonVectorFormatAdapter adapter; @BeforeClass public static void setUpData() throws Exception { GeoServerResourceLoader loader = new GeoServerResourceLoader(new File("target")); py = new Python(loader); File f = new File("target", "foo_vectorformat.py"); FileUtils.copyURLToFile(PythonVectorFormatAdapterTest.class.getResource("foo_vectorformat.py"), f); adapter = new PythonVectorFormatAdapter(f, py); } @Test public void testGetName() { assertEquals("Foo", adapter.getName()); } @Test public void testGetMimeType() { assertEquals("text/plain", adapter.getMimeType()); } @Test public void testWrite() throws Exception { SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder(); tb.setName("feature"); tb.add("geometry", Point.class); tb.add("name", String.class); SimpleFeatureType type = tb.buildFeatureType(); FeatureCollection features = new DefaultFeatureCollection(null, null); SimpleFeatureBuilder b = new SimpleFeatureBuilder(type); b.add(new GeometryFactory().createPoint(new Coordinate(0,0))); b.add("zero"); features.add(b.buildFeature("fid.0")); b.add(new GeometryFactory().createPoint(new Coordinate(1,1))); b.add("one"); features.add(b.buildFeature("fid.1")); FeatureCollectionType fc = WfsFactory.eINSTANCE.createFeatureCollectionType(); fc.getFeature().add(features); ByteArrayOutputStream out = new ByteArrayOutputStream(); adapter.write(FeatureCollectionResponse.adapt(fc), out); assertEquals("fid.0;fid.1;", new String(out.toByteArray())); } }