### Question:
SchemaTool { public void createOrMigrateSchema(String tableName, String entitySchemaString, boolean createTableAndFamilies) throws InterruptedException { boolean migrationRequired = prepareManagedSchema(tableName, entitySchemaString); if (migrationRequired && createTableAndFamilies) { try { HTableDescriptor descriptor = prepareTableDescriptor(tableName, entitySchemaString); if (hbaseAdmin.isTableAvailable(tableName)) { modifyTable(tableName, descriptor); } else { createTable(descriptor); } } catch (IOException e) { throw new DatasetException(e); } } } SchemaTool(HBaseAdmin hbaseAdmin, SchemaManager entityManager); void createOrMigrateSchemaDirectory(String schemaDirectory,
      boolean createTableAndFamilies); void createOrMigrateSchemaFile(String tableName,
      String entitySchemaFilePath, boolean createTableAndFamilies); void createOrMigrateSchemaFile(String tableName,
      File entitySchemaFile, boolean createTableAndFamilies); void createOrMigrateSchema(String tableName, String entitySchemaString,
      boolean createTableAndFamilies);  }### Answer:
@Test public void testMigrateSchema() throws Exception { tool.createOrMigrateSchema(tableName, simpleSchema, true); Dao<SimpleHBaseRecord> dao = new SpecificAvroDao<SimpleHBaseRecord>( tablePool, tableName, "SimpleHBaseRecord", manager); testBasicOperations(dao); }