package org.geotools.geometry.jts;
import static org.junit.Assert.*;
import org.geotools.factory.CommonFactoryFinder;
import org.junit.Test;
import org.opengis.filter.FilterFactory2;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryCollection;
import com.vividsolutions.jts.io.WKTReader;
public class GeometryCollectorTest {
FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(null);
@Test
public void testCollectNull() {
GeometryCollector collector = new GeometryCollector();
collector.add(null);
GeometryCollection result = collector.collect();
assertNotNull(result);
assertTrue(result.isEmpty());
}
@Test
public void testCollectNone() {
GeometryCollector collector = new GeometryCollector();
GeometryCollection result = collector.collect();
assertNotNull(result);
assertTrue(result.isEmpty());
}
@Test
public void testTwo() throws Exception {
WKTReader reader = new WKTReader();
GeometryCollector collector = new GeometryCollector();
collector.setFactory(null);
final Geometry p0 = reader.read("POINT(0 0)");
collector.add(p0);
final Geometry p1 = reader.read("POINT(1 1)");
collector.add(p1);
GeometryCollection result = collector.collect();
assertEquals(2, result.getNumGeometries());
assertSame(p0, result.getGeometryN(0));
assertSame(p1, result.getGeometryN(1));
}
@Test
public void testTooMany() throws Exception {
WKTReader reader = new WKTReader();
GeometryCollector collector = new GeometryCollector();
collector.setMaxCoordinates(1);
final Geometry p0 = reader.read("POINT(0 0)");
collector.add(p0);
final Geometry p1 = reader.read("POINT(1 1)");
try {
collector.add(p1);
fail("Should have complained about too many coordinates");
} catch (IllegalStateException e) {
// fine
}
}
}