Author: dwoods
Date: Fri Oct  8 21:23:20 2010
New Revision: 1006029

URL: http://svn.apache.org/viewvc?rev=1006029&view=rev
Log:
minor testcase helper tweaks

Modified:
    
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java
    
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/SingleEMTestCase.java

Modified: 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java?rev=1006029&r1=1006028&r2=1006029&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java
 Fri Oct  8 21:23:20 2010
@@ -46,6 +46,7 @@ import org.apache.openjpa.kernel.Broker;
 import org.apache.openjpa.meta.ClassMetaData;
 import org.apache.openjpa.persistence.JPAFacadeHelper;
 import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
+import org.apache.openjpa.persistence.OpenJPAPersistence;
 
 /**
  * Base class for Persistence TestCases. This class contains utility methods 
but does not maintain an EntityManager or
@@ -119,6 +120,27 @@ public abstract class AbstractPersistenc
         return oemf;
     }
 
+    /**
+     * Create an entity manager factory for persistence unit <code>pu</code>. 
Put {...@link #CLEAR_TABLES} in this list to
+     * tell the test framework to delete all table contents before running the 
tests.
+     * 
+     * @param props
+     *            list of persistent types used in testing and/or 
configuration values in the form
+     *            key,value,key,value...
+     */
+    protected OpenJPAEntityManagerFactorySPI createNamedOpenJPAEMF(final 
String pu,
+            String res, Map<String,Object> props) {
+        OpenJPAEntityManagerFactorySPI oemf = null;
+        Map<Object, Object> config = new HashMap<Object, 
Object>(System.getProperties());
+        config.putAll(props);
+        oemf = (OpenJPAEntityManagerFactorySPI) 
OpenJPAPersistence.createEntityManagerFactory(pu, res, props);
+        if (oemf == null) {
+            throw new NullPointerException("Expected an OpenJPA entity manager 
factory " +
+                "for the persistence unit named: \"" + pu + "\"");
+        }
+        return oemf;
+    }
+
     protected Map<String, Object> getPropertiesMap(Object... props) {
         Map<String, Object> map = new HashMap<String, Object>();
         map.put("openjpa.DynamicEnhancementAgent", "false");

Modified: 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/SingleEMTestCase.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/SingleEMTestCase.java?rev=1006029&r1=1006028&r2=1006029&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/SingleEMTestCase.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/SingleEMTestCase.java
 Fri Oct  8 21:23:20 2010
@@ -106,16 +106,21 @@ public abstract class SingleEMTestCase 
      * @return false if the EntityManager was already closed.
      */
     protected boolean close() {
+        boolean brc = false;
         if (em == null)
-            return false;
+            return brc;
 
-        rollback();
+        try {
+            rollback();
 
-        if (!em.isOpen())
-            return false;
-
-        em.close();
-        return !em.isOpen();
+            if (!em.isOpen())
+                return brc;
+        } finally {
+            em.close();
+            brc = em.isOpen();
+            em = null;
+        }
+        return !brc;
     }
 
     /** 


Reply via email to