@Test
public void testRenameTable() throws Exception {

  HCatClient client = HCatClient.create(new Configuration(hcatConf));
  String tableName = "temptable";
  String newName = "mytable";
  client.dropTable(null, tableName, true);
  client.dropTable(null, newName, true);
  ArrayList<HCatFieldSchema> cols = new ArrayList<HCatFieldSchema>();
  cols.add(new HCatFieldSchema("id", Type.INT, "id columns"));
  cols.add(new HCatFieldSchema("value", Type.STRING, "id columns"));
  HCatCreateTableDesc tableDesc = HCatCreateTableDesc
    .create(null, tableName, cols).fileFormat("rcfile").build();
  client.createTable(tableDesc);
  client.renameTable(null, tableName, newName);
  try {
    client.getTable(null, tableName);
  } catch (HCatException exp) {
    assertTrue("Unexpected exception message: " + exp.getMessage(),
        exp.getMessage().contains("NoSuchObjectException while fetching table"));
  }
  HCatTable newTable = client.getTable(null, newName);
  assertTrue(newTable != null);
  assertTrue(newTable.getTableName().equals(newName));
  client.close();
}