Author: jrbauer
Date: Thu May 26 17:52:23 2011
New Revision: 1128005

URL: http://svn.apache.org/viewvc?rev=1128005&view=rev
Log:
OPENJPA-2007 jUnit for fetch plan isolation query hint validation.

Modified:
    
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/conf/TestQueryHints.java

Modified: 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/conf/TestQueryHints.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/conf/TestQueryHints.java?rev=1128005&r1=1128004&r2=1128005&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/conf/TestQueryHints.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/conf/TestQueryHints.java
 Thu May 26 17:52:23 2011
@@ -24,9 +24,10 @@ import javax.persistence.Query;
 import org.apache.openjpa.jdbc.sql.MySQLDictionary;
 import org.apache.openjpa.jdbc.sql.OracleDictionary;
 import org.apache.openjpa.kernel.QueryHints;
-import org.apache.openjpa.persistence.HintHandler;
 import org.apache.openjpa.persistence.OpenJPAPersistence;
 import org.apache.openjpa.persistence.OpenJPAQuery;
+import org.apache.openjpa.persistence.jdbc.IsolationLevel;
+import org.apache.openjpa.persistence.jdbc.JDBCFetchPlan;
 import org.apache.openjpa.persistence.test.SingleEMFTestCase;
 
 /**
@@ -38,7 +39,7 @@ import org.apache.openjpa.persistence.te
  */
 public class TestQueryHints extends SingleEMFTestCase {
     EntityManager em;
-    OpenJPAQuery query;
+    OpenJPAQuery<?> query;
     
     public void setUp() {
        super.setUp((Object[])null);
@@ -140,8 +141,6 @@ public class TestQueryHints extends Sing
         goodValue = "false";
         query.setHint(supportedKey, goodValue);
         assertTrue(query.getHints().containsKey(supportedKey));
-        assertEquals(false, query.getFetchPlan().getDelegate().getHint(
-                supportedKey));
     }
     
     public void testJPAHintSetsFetchPlan() {
@@ -169,6 +168,24 @@ public class TestQueryHints extends Sing
         }
     }
     
+    /**
+     * Verifies a valid fetchplan isolation level hint can be set and 
retrieved.
+     */
+    public void testFetchPlanIsolation() {
+        query.setHint("openjpa.FetchPlan.Isolation", "SERIALIZABLE");
+        
assertTrue(query.getHints().containsKey("openjpa.FetchPlan.Isolation"));
+        assertEquals(IsolationLevel.SERIALIZABLE, 
((JDBCFetchPlan)query.getFetchPlan()).getIsolation());
+    }
+
+    /**
+     * Verifies an invalid fetchplan isolation level hint is ignored.
+     */
+    public void testInvalidFetchPlanIsolation() {
+        query.setHint("openjpa.FetchPlan.TransactionIsolation", 
"SERIALIZABLE");
+        
assertFalse(query.getHints().containsKey("openjpa.FetchPlan.TransactionIsolation"));
+        assertNotEquals(IsolationLevel.SERIALIZABLE, 
((JDBCFetchPlan)query.getFetchPlan()).getIsolation());        
+    }
+
     void assertSupportedHint(String hint, boolean contains) {
         if (contains)
             assertTrue("Expected supported hint [" + hint + "]",


Reply via email to