@Test public void testDirectSQLInsertFollowedByClear() throws SQLException { String tableName = "KVPair_table"; Connection c = ((SessionImpl) DBManager.getInstance().getCurrentEntityManager().getDelegate()).connection(); Statement s = c.createStatement(); ResultSet rs = null; s.executeUpdate("INSERT INTO KVPair_table VALUES 'a', 'b'"); rs = s.executeQuery("SELECT * from "+tableName); Assert.assertTrue(rs.next()); rs.close(); s.close(); DBManager.getInstance().clearDatabase(); s = c.createStatement(); rs = s.executeQuery("SELECT * from " + tableName); Assert.assertFalse(rs.next()); // no data rs.close(); s.close(); }
/** * Be sure the database is ready to use. * This means for example rolling back any activate transaction and delete all tables */ public void initDB(){ wasAccessed = true; if(factory==null){ factory = new EvoEntityManagerFactory(); createNewEntityManager(); } else { factory.clearAllEntityManagers(); if(!factory.isOpen()){ /* this maybe could happen if "close" is called in the SUT. note: initializing a factory seems quite expensive, and this is the reason why we try here to reuse it instead of creating a new one at each new test case run */ factory = new EvoEntityManagerFactory(); } createNewEntityManager(); clearDatabase(); } }
cleared = DBManager.getInstance().clearDatabase(); Assert.assertTrue(cleared); cleared = DBManager.getInstance().clearDatabase(); Assert.assertTrue(cleared);