Package org.hibernate.tool.test

Source Code of org.hibernate.tool.test.DriverMetaDataTest

package org.hibernate.tool.test;

import java.util.Iterator;
import java.util.Map;

import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Settings;
import org.hibernate.cfg.reveng.DefaultDatabaseCollector;
import org.hibernate.cfg.reveng.ReverseEngineeringRuntimeInfo;
import org.hibernate.cfg.reveng.dialect.JDBCMetaDataDialect;
import org.hibernate.cfg.reveng.dialect.MetaDataDialect;
import org.hibernate.engine.jdbc.spi.JdbcServices;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.hibernate.tool.JDBCMetaDataBinderTestCase;


/**
* Various tests to validate the "sanity" of the jdbc drivers meta data implementation.
*
* @author Max Rydahl Andersen
*
*/
public class DriverMetaDataTest extends JDBCMetaDataBinderTestCase {

protected String[] getCreateSQL() {
   
  return new String[] {
        "create table tab_master ( id char not null, name varchar(20), primary key (id) )",
        "create table tab_child  ( childid character not null, masterref character, primary key (childid), foreign key (masterref) references tab_master(id) )",
    };
  }

  protected String[] getDropSQL() {
   
    return new String[]  {       
        "drop table tab_child",
        "drop table tab_master",         
    };
  }

  public void testExportedKeys() {
 
    MetaDataDialect dialect = new JDBCMetaDataDialect();
    StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
    ServiceRegistry serviceRegistry = builder.build();
    JdbcServices jdbcServices = serviceRegistry.getService(JdbcServices.class);
    Settings settings = cfg.buildSettings(serviceRegistry);
   
    dialect.configure( ReverseEngineeringRuntimeInfo.createInstance(jdbcServices.getConnectionProvider(),
        jdbcServices.getSqlExceptionHelper().getSqlExceptionConverter(), new DefaultDatabaseCollector(dialect)));
   
    Iterator tables = dialect.getTables( settings.getDefaultCatalogName(), settings.getDefaultSchemaName(), identifier("tab_master") );
   
    boolean foundMaster = false;
    while(tables.hasNext()) {
      Map map = (Map) tables.next();
     
      String tableName = (String) map.get("TABLE_NAME");
      String schemaName = (String) map.get("TABLE_SCHEM");
          String catalogName = (String) map.get("TABLE_CAT");
         
          if(tableName.equals(identifier("tab_master"))) {
        foundMaster = true;
        Iterator exportedKeys = dialect.getExportedKeys( catalogName, schemaName, tableName );
        int cnt = 0;
        while ( exportedKeys.hasNext() ) {
          Map element = (Map) exportedKeys.next();
          cnt++;
        }
        assertEquals(1,cnt);
      /*  assertEquals(schemaName, settings.getDefaultSchemaName());
        assertEquals(catalogName, settings.getDefaultCatalogName());*/
      }
    }
   
    assertTrue(foundMaster);
  }

  public void testDataType() {
   
    MetaDataDialect dialect = new JDBCMetaDataDialect();
    StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
    ServiceRegistry serviceRegistry = builder.build();
    JdbcServices jdbcServices = serviceRegistry.getService(JdbcServices.class);
    Settings settings = cfg.buildSettings(serviceRegistry);
   
    dialect.configure( ReverseEngineeringRuntimeInfo.createInstance(jdbcServices.getConnectionProvider(),
        jdbcServices.getSqlExceptionHelper().getSqlExceptionConverter(), new DefaultDatabaseCollector(dialect)));
   
    Iterator tables = dialect.getColumns( settings.getDefaultCatalogName(), settings.getDefaultSchemaName(), "test", null );
   
   
    while(tables.hasNext()) {
      Map map = (Map) tables.next();
     
      System.out.println(map);
     
    }
  }
 
  public void testCaseTest() {
   
 
    MetaDataDialect dialect = new JDBCMetaDataDialect();
    StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder();
    ServiceRegistry serviceRegistry = builder.build();
    JdbcServices jdbcServices = serviceRegistry.getService(JdbcServices.class);
    Settings settings = cfg.buildSettings(serviceRegistry);
   
    dialect.configure( ReverseEngineeringRuntimeInfo.createInstance(jdbcServices.getConnectionProvider(),
        jdbcServices.getSqlExceptionHelper().getSqlExceptionConverter(), new DefaultDatabaseCollector(dialect)));
   
    Iterator tables = dialect.getTables( settings.getDefaultCatalogName(), settings.getDefaultSchemaName(), identifier( "TAB_MASTER"));
   
    assertHasNext( 1,  tables );
   
   
   
  }

 
}
TOP

Related Classes of org.hibernate.tool.test.DriverMetaDataTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.