/** * Checks that system generated columns with name starting with SYS_ in the Oracle engine do not * appear in the table metadata. * * @throws Exception propagates any Exception thrown by the test */ @Test public void testSystemGeneratedColumns() throws Exception { DatabaseEngine engine = DatabaseFactory.getConnection(properties); try { DbEntity entity = dbEntity() .name("TEST_SYS_COL") // Simulates a system generated column .addColumn("SYS_COL1", INT) .addColumn("COL1", INT) .pkFields("COL1") .build(); engine.addEntity(entity); assertFalse( "The simulated system generated column should not appear in the table metadata", engine.getMetadata("TEST_SYS_COL").containsKey("SYS_COL1")); assertTrue( "The regular column should appear in the table metadata", engine.getMetadata("TEST_SYS_COL").containsKey("COL1")); } finally { engine.close(); } }
/** * Initializes the database connection. * * @param dbFile The database file. * @throws DatabaseFactoryException If an error occurs getting the database connection. * @throws DatabaseEngineException If an error occurs creating the call result entity. */ public static DatabaseEngine initializeDbConnection(String dbFile) throws DatabaseFactoryException, DatabaseEngineException { Properties properties = new Properties() { { setProperty("pdb.jdbc", "jdbc:h2:" + dbFile + ";LOCK_TIMEOUT=60000;AUTO_SERVER=TRUE"); setProperty("pdb.engine", "com.feedzai.commons.sql.abstraction.engine.impl.H2Engine"); setProperty("pdb.schema_policy", "create"); } }; DatabaseEngine engine = DatabaseFactory.getConnection(properties); if (!engine.containsEntity(SurveyEntities.CALL_RESULT_TABLE)) { engine.addEntity(SurveyEntities.CALL_RESULT_ENTITY); } return engine; }