public EntityManagerFactory getDefaultFactory(){ if(!wasAccessed){ initDB(); wasAccessed = true; } return factory; }
public static EntityManagerFactory createEntityManagerFactory(String persistenceUnitName) { return DBManager.getInstance().getDefaultFactory(); }
DBManager.getInstance().initDB(); cleared = DBManager.getInstance().clearDatabase(); Assert.assertTrue(cleared); KVPair pair = new KVPair(key,value); EntityManager em = DBManager.getInstance().getCurrentEntityManager(); queried = em.find(KVPair.class,key); Assert.assertEquals(value, queried.getValue()); EntityManager secondEM = DBManager.getInstance().getDefaultFactory().createEntityManager(); queried = secondEM.find(KVPair.class, key); cleared = DBManager.getInstance().clearDatabase(); Assert.assertTrue(cleared); EntityManager thirdEM = DBManager.getInstance().getDefaultFactory().createEntityManager(); queried = thirdEM.find(KVPair.class, key);
@Constraints(noNullInputs = true, notMutable = true, noDirectInsertion = true) public static <T> void injectEntityManager(@BoundInputVariable(initializer = true, atMostOnceWithSameParameters = true) T instance, Class<?> clazz) throws IllegalArgumentException{ Inputs.checkNull(instance,clazz); String field = entityManagerCache.getFieldName(clazz); assert field != null; inject(instance, clazz, field, DBManager.getInstance().getCurrentEntityManager()); }
@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(); }
if(DBManager.getInstance().isWasAccessed()) { DBManager.getInstance().initDB(); LoopCounter.getInstance().setActive(wasLoopCheckOn);
@Before public void init(){ DBManager.getInstance().initDB(); }
if (!DBManager.getInstance().isWasAccessed()) { DBManager.getInstance().setSutClassLoader(classLoader);
bd.append(LoopCounter.class.getName() + ".getInstance().reset(); \n"); if (DBManager.getInstance().isWasAccessed()) {
/** * Private singleton constructor */ private TestGenerationContext() { originalClassLoader = this.getClass().getClassLoader(); classLoader = new InstrumentingClassLoader(); regressionClassLoader = new InstrumentingClassLoader(true); DBManager.getInstance().setSutClassLoader(classLoader); }
@Override public Class<?> loadClass(String name) throws ClassNotFoundException { synchronized(getClassLoadingLock(name)) { ClassLoader dbLoader = DBManager.getInstance().getSutClassLoader(); if (dbLoader != null && dbLoader != this && !isRegression) {
/** * 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(); } }
public static EntityManagerFactory createEntityManagerFactory(String persistenceUnitName, Map properties) { return DBManager.getInstance().getDefaultFactory(); }
@Test public void testTableInitialization() throws SQLException { Connection c = ((SessionImpl) DBManager.getInstance().getCurrentEntityManager().getDelegate()).connection(); Statement s = c.createStatement(); Set<String> tables = new LinkedHashSet<>(); ResultSet rs = s.executeQuery("select table_name " + "from INFORMATION_SCHEMA.system_tables " + "where table_type='TABLE' and table_schem='PUBLIC'"); while (rs.next()) { if (!rs.getString(1).startsWith("DUAL_")) { tables.add(rs.getString(1)); } } rs.close(); s.close(); Assert.assertTrue(tables.contains("KVPair_table".toUpperCase())); }
public EntityManager getCurrentEntityManager(){ if(!wasAccessed){ initDB(); wasAccessed = true; } return em; }
@Constraints(noNullInputs = true, notMutable = true, noDirectInsertion = true) public static <T> void injectEntityManagerFactory(@BoundInputVariable(initializer = true, atMostOnceWithSameParameters = true) T instance, Class<?> clazz) throws IllegalArgumentException { Inputs.checkNull(instance,clazz); String field = entityManagerFactoryCache.getFieldName(clazz); assert field != null; inject(instance, clazz, field, DBManager.getInstance().getDefaultFactory()); }
@Test public void testDirectSQLModifications() throws SQLException { String tableName = "KVPair_table"; Connection c = ((SessionImpl) DBManager.getInstance().getCurrentEntityManager().getDelegate()).connection(); Statement s = c.createStatement(); ResultSet rs = s.executeQuery("select * from "+tableName); Assert.assertFalse(rs.next()); // no data rs.close(); s.executeUpdate("INSERT INTO KVPair_table VALUES 'a', 'b'"); rs = s.executeQuery("SELECT * from "+tableName); Assert.assertTrue(rs.next()); String a = rs.getString(1); String b = rs.getString(2); rs.close(); Assert.assertEquals("a", a); Assert.assertEquals("b", b); s.executeUpdate("DELETE from " + tableName); rs = s.executeQuery("select * from "+tableName); Assert.assertFalse(rs.next()); // no data s.close(); }