/**
   * 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());
  }