Author: curtisr7
Date: Wed Apr 21 19:18:14 2010
New Revision: 936453

URL: http://svn.apache.org/viewvc?rev=936453&view=rev
Log:
OPENJPA-1638: Add new testcase.

Modified:
    openjpa/branches/2.0.x/   (props changed)
    
openjpa/branches/2.0.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestNamedQueryLockMode.java

Propchange: openjpa/branches/2.0.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Apr 21 19:18:14 2010
@@ -1,2 +1,2 @@
 /openjpa/branches/1.0.x:736493
-/openjpa/trunk:934507,935033,935035,935073-935074,936436
+/openjpa/trunk:934507,935033,935035,935073-935074,936436,936445

Modified: 
openjpa/branches/2.0.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestNamedQueryLockMode.java
URL: 
http://svn.apache.org/viewvc/openjpa/branches/2.0.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestNamedQueryLockMode.java?rev=936453&r1=936452&r2=936453&view=diff
==============================================================================
--- 
openjpa/branches/2.0.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestNamedQueryLockMode.java
 (original)
+++ 
openjpa/branches/2.0.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestNamedQueryLockMode.java
 Wed Apr 21 19:18:14 2010
@@ -19,8 +19,13 @@
 package org.apache.openjpa.persistence.lockmgr;
 
 import javax.persistence.EntityManager;
+import javax.persistence.LockModeType;
 import javax.persistence.Query;
 
+import org.apache.openjpa.persistence.FetchPlan;
+import org.apache.openjpa.persistence.OpenJPAEntityManager;
+import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI;
+import org.apache.openjpa.persistence.OpenJPAQuery;
 import org.apache.openjpa.persistence.TransactionRequiredException;
 import org.apache.openjpa.persistence.test.AllowFailure;
 import org.apache.openjpa.persistence.test.SQLListenerTestCase;
@@ -57,8 +62,7 @@ public class TestNamedQueryLockMode exte
         EntityManager em = emf.createEntityManager();
         // execute without a transaction
          try {
-         em.createNamedQuery("findEmployeeByIdWithLock").setParameter("id",
-         0).getResultList();
+         em.createNamedQuery("findEmployeeByIdWithLock").setParameter("id", 
0).getResultList();
          fail("Expected " + TransactionRequiredException.class.getName());
          } catch (TransactionRequiredException e) {
          // Expected
@@ -69,7 +73,24 @@ public class TestNamedQueryLockMode exte
         EntityManager em = emf.createEntityManager();
         em.getTransaction().begin();
         assertClausePresentInSQL("FOR UPDATE", 
em.createNamedQuery("findEmployeeById").setParameter("id", 0));
-        assertClausePresentInSQL("FOR UPDATE", 
em.createNamedQuery("findEmployeeById").setParameter("id", 0));
+        assertClausePresentInSQL("FOR UPDATE", 
em.createNamedQuery("findEmployeeById").setParameter("id", 0));        
+        em.getTransaction().commit();
+    }
+    
+    public void testForUpdateClauseAbsentInQueryWithFetchPlanNoneLockMode() {
+        OpenJPAEntityManagerSPI em = emf.createEntityManager();
+        em.getTransaction().begin();
+        
+        OpenJPAQuery<?> q = 
em.createNamedQuery("findEmployeeById").setParameter("id", 0); 
+        FetchPlan fp = q.getFetchPlan();
+        fp.setReadLockMode(LockModeType.NONE);
+        assertClauseAbsentInSQL("FOR UPDATE", q);
+        
+        q = 
em.createNamedQuery("findEmployeeByIdWithNoLock").setParameter("id", 0); 
+        fp = q.getFetchPlan();
+        fp.setReadLockMode(LockModeType.NONE);
+        assertClauseAbsentInSQL("FOR UPDATE", q);
+        
         em.getTransaction().commit();
     }
 


Reply via email to