package org.hibernate.cfg;
import org.hibernate.boot.Metadata;
import org.hibernate.tools.test.util.JdbcUtil;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class JDBCMetaDataConfigurationTest {
static final String[] CREATE_SQL = new String[] {
"CREATE TABLE WITH_VERSION (FIRST INT, SECOND INT, VERSION INT, NAME VARCHAR(256), PRIMARY KEY (FIRST))",
"CREATE TABLE NO_VERSION (FIRST INT, SECOND INT, NAME VARCHAR(256), PRIMARY KEY (SECOND))",
"CREATE TABLE WITH_REAL_TIMESTAMP (FIRST INT, SECOND INT, TIMESTAMP TIMESTAMP, NAME VARCHAR(256), PRIMARY KEY (FIRST))",
"CREATE TABLE WITH_FAKE_TIMESTAMP (FIRST INT, SECOND INT, TIMESTAMP INT, NAME VARCHAR(256), PRIMARY KEY (FIRST))",
};
static final String[] DROP_SQL = new String[] {
"DROP TABLE WITH_VERSION",
"DROP TABLE NO_VERSION",
"DROP TABLE WITH_REAL_TIMESTAMP",
"DROP TABLE WITH_FAKE_TIMESTAMP"
};
@Before
public void setUp() {
JdbcUtil.createDatabase(this);
}
@After
public void tearDown() {
JdbcUtil.dropDatabase(this);
}
@Test
public void testReadFromJDBC() throws Exception {
JDBCMetaDataConfiguration cfg = new JDBCMetaDataConfiguration();
cfg.readFromJDBC();
Metadata metadata = cfg.getMetadata();
Assert.assertNotNull("WithRealTimestamp", metadata.getEntityBinding("WithRealTimestamp"));
Assert.assertNotNull("NoVersion", metadata.getEntityBinding("NoVersion"));
Assert.assertNotNull("WithFakeTimestamp", metadata.getEntityBinding("WithFakeTimestamp"));
Assert.assertNotNull("WithVersion", metadata.getEntityBinding("WithVersion"));
}
@Test
public void testGetTable() throws Exception {
JDBCMetaDataConfiguration cfg = new JDBCMetaDataConfiguration();
Assert.assertNull(cfg.getTable(JdbcUtil.toIdentifier(this, "WITH_REAL_TIMESTAMP")));
cfg = new JDBCMetaDataConfiguration();
cfg.readFromJDBC();
Assert.assertNotNull(cfg.getTable(JdbcUtil.toIdentifier(this, "WITH_REAL_TIMESTAMP")));
}
}