/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2002-2011, Open Source Geospatial Foundation (OSGeo)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package org.geotools.feature.collection;
import org.geotools.data.simple.SimpleFeatureCollection;
import org.geotools.data.simple.SimpleFeatureIterator;
import org.geotools.feature.DefaultFeatureCollection;
import org.geotools.feature.simple.SimpleFeatureBuilder;
import org.geotools.feature.simple.SimpleFeatureTypeBuilder;
import org.opengis.feature.simple.SimpleFeatureType;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.Point;
import junit.framework.TestCase;
public class MaxSimpleFeatureCollectionTest extends TestCase {
SimpleFeatureCollection delegate;
@Override
protected void setUp() throws Exception {
SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder();
tb.setName("foo");
tb.add("geom", Point.class);
tb.add("name", String.class);
SimpleFeatureType featureType = tb.buildFeatureType();
delegate = new DefaultFeatureCollection(null, featureType);
SimpleFeatureBuilder b = new SimpleFeatureBuilder(featureType);
for (int i = 0; i < 10; i++) {
b.add(new GeometryFactory().createPoint(new Coordinate(i,i)));
b.add(String.valueOf(i));
delegate.add(b.buildFeature("fid." + i));
}
}
public void testSize() {
MaxSimpleFeatureCollection max = new MaxSimpleFeatureCollection(delegate, 5);
assertEquals(5, max.size());
max = new MaxSimpleFeatureCollection(delegate, 7, 5);
assertEquals(3, max.size());
}
public void testIsEmpty() {
MaxSimpleFeatureCollection max = new MaxSimpleFeatureCollection(delegate, 5);
assertFalse(max.isEmpty());
max = new MaxSimpleFeatureCollection(delegate, 9, 5);
assertFalse(max.isEmpty());
max = new MaxSimpleFeatureCollection(delegate, 10, 5);
assertTrue(max.isEmpty());
max = new MaxSimpleFeatureCollection(delegate, 0, 0);
assertTrue(max.isEmpty());
}
public void testIterator() {
MaxSimpleFeatureCollection max = new MaxSimpleFeatureCollection(delegate, 5);
SimpleFeatureIterator it = max.features();
try {
for (int i = 0; i < 5; i++) {
assertTrue(it.hasNext());
assertNotNull(it.next());
}
assertFalse(it.hasNext());
}
finally {
it.close();
}
max = new MaxSimpleFeatureCollection(delegate, 7, 5);
it = max.features();
try {
for (int i = 0; i < 3; i++) {
assertTrue(it.hasNext());
assertNotNull(it.next());
}
assertFalse(it.hasNext());
}
finally {
it.close();
}
}
}