/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2002-2008, 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.data.store;
import org.geotools.data.simple.SimpleFeatureCollection;
import org.geotools.data.simple.SimpleFeatureIterator;
import org.geotools.feature.simple.SimpleFeatureTypeBuilder;
import org.geotools.feature.visitor.UniqueVisitor;
import org.opengis.feature.simple.SimpleFeatureType;
import static org.easymock.EasyMock.*;
/**
*
*
* @source $URL$
*/
public class ReTypingFeatureCollectionTest extends FeatureCollectionWrapperTestSupport {
public void testSchema() throws Exception {
// see http://jira.codehaus.org/browse/GEOT-1616
SimpleFeatureType original = delegate.getSchema();
String newName = original.getTypeName() + "xxx";
SimpleFeatureTypeBuilder stb = new SimpleFeatureTypeBuilder();
stb.init(original);
stb.setName(newName);
SimpleFeatureType renamed = stb.buildFeatureType();
ReTypingFeatureCollection rtc = new ReTypingFeatureCollection(delegate, renamed);
assertEquals(renamed, rtc.getSchema());
}
public void testDelegateAccepts() throws Exception {
SimpleFeatureTypeBuilder stb = new SimpleFeatureTypeBuilder();
stb.setName("test");
stb.add("foo", String.class);
stb.add("bar", Integer.class);
UniqueVisitor vis = new UniqueVisitor("bar");
SimpleFeatureCollection delegate = createMock(SimpleFeatureCollection.class);
delegate.accepts(vis, null);
expectLastCall().once();
replay(delegate);
ReTypingFeatureCollection rtc =
new ReTypingFeatureCollection(delegate, stb.buildFeatureType());
rtc.accepts(vis, null);
verify(delegate);
vis = new UniqueVisitor("baz");
SimpleFeatureIterator it = createNiceMock(SimpleFeatureIterator.class);
replay(it);
SimpleFeatureType ft = createNiceMock(SimpleFeatureType.class);
replay(ft);
delegate = createMock(SimpleFeatureCollection.class);
expect(delegate.features()).andReturn(it).once();
expect(delegate.getSchema()).andReturn(ft).once();
replay(delegate);
rtc =
new ReTypingFeatureCollection(delegate, stb.buildFeatureType());
rtc.accepts(vis, null);
verify(delegate);
}
}