package org.geotools.data.transform; import static org.junit.Assert.*; import java.io.IOException; import java.net.URI; import org.geotools.data.DataStore; import org.geotools.data.ServiceInfo; import org.geotools.data.simple.SimpleFeatureSource; import org.geotools.data.transform.SingleFeatureSourceDataStore; import org.junit.Before; import org.junit.Test; import org.opengis.feature.type.Name; public class TransformDataStoreTest extends AbstractTransformTest { private DataStore ds; private SimpleFeatureSource transformed; @Before public void before() throws Exception { transformed = transformWithSelection(); ds = (DataStore) transformed.getDataStore(); } @Test public void testStoreSourceRelationship() throws Exception { assertTrue(ds instanceof SingleFeatureSourceDataStore); assertSame(transformed, ds.getFeatureSource(transformed.getSchema().getTypeName())); } @Test public void testTypeNames() throws Exception { String[] typeNames = ds.getTypeNames(); assertEquals(1, typeNames.length); assertEquals("states_mini", typeNames[0]); } @Test public void testGetSchema() throws Exception { assertEquals(transformed.getSchema(), ds.getSchema("states_mini")); try { ds.getSchema("ImNotThere"); fail("Should have thrown an exception"); } catch(IOException e) { // fine } } @Test public void testGetFeatureSource() throws Exception { assertSame(transformed, ds.getFeatureSource("states_mini")); try { ds.getFeatureSource("ImNotThere"); fail("Should have thrown an exception"); } catch(IOException e) { // fine } } @Test public void testInfo() throws Exception { ServiceInfo info = ds.getInfo(); Name name = transformed.getSchema().getName(); assertEquals("Features from " + name, info.getDescription()); assertEquals(name.toString(), info.getTitle()); assertEquals(new URI(name.getNamespaceURI()), info.getSchema()); } @Test public void testLockingManager() throws Exception { // there is no way to extract a locking manager from a feature source assertNull(ds.getLockingManager()); } }