/*
* 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.arcsde.data;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.IOException;
import org.geotools.arcsde.session.ISession;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import com.esri.sde.sdk.client.SeLayer;
import com.esri.sde.sdk.client.SeRegistration;
import com.esri.sde.sdk.client.SeTable;
/**
* @author Gabriel Roldan (TOPP)
*
* @source $URL:
* http://svn.osgeo.org/geotools/trunk/modules/plugin/arcsde/datastore/src/test/java/org
* /geotools/arcsde/data/FIDReaderTest.java $
* @version $Id$
* @since 2.5.x
*/
public class FIDReaderTest {
private static TestData testData;
private ISession session;
/**
* @throws java.lang.Exception
*/
@BeforeClass
public static void setUpBeforeClass() throws Exception {
testData = new TestData();
testData.setUp();
testData.createSimpleTestTables();
}
/**
* @throws java.lang.Exception
*/
@AfterClass
public static void tearDownAfterClass() throws Exception {
final boolean cleanTestTable = false;
final boolean cleanPool = true;
testData.tearDown(cleanTestTable, cleanPool);
testData = null;
}
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
session = testData.getConnectionPool().getSession();
}
/**
* @throws java.lang.Exception
*/
@After
public void tearDown() throws Exception {
session.dispose();
}
/**
* Test method for
* {@link org.geotools.arcsde.data.FIDReader#getFidReader(org.geotools.arcsde.session.ISession, com.esri.sde.sdk.client.SeTable, com.esri.sde.sdk.client.SeLayer, com.esri.sde.sdk.client.SeRegistration)}
* .
*
* @throws IOException
*/
@Test
public void testGetFidReader() throws IOException {
FIDReader fidReader;
fidReader = getFidReader("GT_TEST_POINT_ROWID_SDE");
assertNotNull(fidReader);
assertTrue(fidReader instanceof FIDReader.SdeManagedFidReader);
assertEquals(0, fidReader.getColumnIndex());
assertEquals("ROW_ID", fidReader.getFidColumn());
fidReader = getFidReader("GT_TEST_POINT_ROWID_USER");
assertNotNull(fidReader);
assertTrue(fidReader instanceof FIDReader.UserManagedFidReader);
assertEquals(0, fidReader.getColumnIndex());
assertEquals("ROW_ID", fidReader.getFidColumn());
fidReader = getFidReader("GT_TEST_POINT_ROWID_NONE");
assertNotNull(fidReader);
assertTrue(fidReader instanceof FIDReader.ShapeFidReader);
assertEquals(-1, fidReader.getColumnIndex());
// use toUpperCase, case may be different depending on the backend rdbms
assertEquals("GEOM.FID", fidReader.getFidColumn().toUpperCase());
}
private FIDReader getFidReader(String tableName) throws IOException {
FIDReader fidReader;
String dbName = session.getDatabaseName();
tableName = ((dbName == null || "".equals(dbName)) ? "" : (dbName + "."))
+ session.getUser() + "." + tableName;
tableName = tableName.toUpperCase();
SeTable table = session.getTable(tableName);
SeLayer layer = session.getLayer(tableName);
SeRegistration reg = session.createSeRegistration(tableName);
fidReader = FIDReader.getFidReader(session, table, layer, reg);
return fidReader;
}
/**
* Test method for {@link org.geotools.arcsde.data.FIDReader#getFidColumn()}.
*/
@Test
@Ignore
public void testGetFidColumn() {
fail("Not yet implemented");
}
/**
* Test method for {@link org.geotools.arcsde.data.FIDReader#setColumnIndex(int)}.
*/
@Test
@Ignore
public void testSetColumnIndex() {
fail("Not yet implemented");
}
/**
* Test method for {@link org.geotools.arcsde.data.FIDReader#getColumnIndex()}.
*/
@Test
@Ignore
public void testGetColumnIndex() {
fail("Not yet implemented");
}
/**
* Test method for
* {@link org.geotools.arcsde.data.FIDReader#readFid(org.geotools.arcsde.data.SdeRow)}.
*/
@Test
@Ignore
public void testReadFid() {
fail("Not yet implemented");
}
/**
* Test method for
* {@link org.geotools.arcsde.data.FIDReader#getPropertiesToFetch(org.opengis.feature.simple.SimpleFeatureType)}
* .
*/
@Test
@Ignore
public void testGetPropertiesToFetch() {
fail("Not yet implemented");
}
}