You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by mi...@apache.org on 2010/10/14 19:50:44 UTC

svn commit: r1022629 - in /openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence: jdbc/query/cache/ jpql/expressions/ jpql/functions/ query/

Author: mikedd
Date: Thu Oct 14 17:50:43 2010
New Revision: 1022629

URL: http://svn.apache.org/viewvc?rev=1022629&view=rev
Log:
Update testcases for execution with Sybase

Modified:
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/cache/TestQueryTimestampEviction.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/expressions/TestInMemoryScalarExpressions.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/expressions/TestJPQLScalarExpressions.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/functions/TestEJBQLFunction.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestJDBCEscapeDate.java

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/cache/TestQueryTimestampEviction.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/cache/TestQueryTimestampEviction.java?rev=1022629&r1=1022628&r2=1022629&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/cache/TestQueryTimestampEviction.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/cache/TestQueryTimestampEviction.java Thu Oct 14 17:50:43 2010
@@ -32,6 +32,7 @@ import org.apache.openjpa.lib.jdbc.JDBCE
 import org.apache.openjpa.lib.jdbc.JDBCListener;
 import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI;
 import org.apache.openjpa.persistence.embed.attrOverrides.TestAssocOverridesXML.SQLListener;
+import org.apache.openjpa.persistence.test.FilteringJDBCListener;
 
 public class TestQueryTimestampEviction extends AbstractQueryCacheTest {
     private List<String> _sql = new ArrayList<String>();
@@ -41,7 +42,7 @@ public class TestQueryTimestampEviction 
                 "openjpa.DataCache", "true",
                 "openjpa.QueryCache", "true(CacheSize=1000, EvictPolicy='timestamp')",
                 "openjpa.RemoteCommitProvider", "sjvm",
-                "openjpa.jdbc.JDBCListeners",new JDBCListener[] { new SQLListener() });
+                "openjpa.jdbc.JDBCListeners",new JDBCListener[] { new FilteringJDBCListener(_sql) });
     }
 
     public void testEmptyResultTimeout() {
@@ -129,15 +130,5 @@ public class TestQueryTimestampEviction 
             fail("The thread is still waiting on a writeLock()!");
         }
     }
-
-    public class SQLListener extends AbstractJDBCListener {
-
-        @Override
-        public void beforeExecuteStatement(JDBCEvent event) {
-            if (event.getSQL() != null && _sql != null) {
-                _sql.add(event.getSQL());
-            }
-        }
-    }
 }
 

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/expressions/TestInMemoryScalarExpressions.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/expressions/TestInMemoryScalarExpressions.java?rev=1022629&r1=1022628&r2=1022629&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/expressions/TestInMemoryScalarExpressions.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/expressions/TestInMemoryScalarExpressions.java Thu Oct 14 17:50:43 2010
@@ -21,8 +21,12 @@ package org.apache.openjpa.persistence.j
 import java.util.List;
 import javax.persistence.EntityManager;
 
+import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
+import org.apache.openjpa.jdbc.sql.DBDictionary;
+import org.apache.openjpa.jdbc.sql.SybaseDictionary;
 import org.apache.openjpa.kernel.Query;
 import org.apache.openjpa.kernel.QueryImpl;
+import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI;
 import org.apache.openjpa.persistence.common.apps.*;
 import org.apache.openjpa.persistence.common.utils.AbstractTestCase;
 
@@ -30,13 +34,19 @@ public class TestInMemoryScalarExpressio
 
     private int userid1, userid2, userid3, userid4, userid5, userid6;
 
+    /**
+     * Some databases trim the whitespace from a string upon insert. Store Shannon's name for 
+     * asserts later in the testcase.
+     */
+    private String expectedShannonName = "Shannon ";
+    
     public TestInMemoryScalarExpressions(String name) {
         super(name, "jpqlclausescactusapp");
     }
 
     public void setUp() {
         deleteAll(CompUser.class);
-        EntityManager em = currentEntityManager();
+        OpenJPAEntityManagerSPI em = (OpenJPAEntityManagerSPI) currentEntityManager();
         startTx(em);
 
         Address[] add = new Address[]{
@@ -67,6 +77,11 @@ public class TestInMemoryScalarExpressio
         em.persist(user6);
         userid6 = user6.getUserid();
 
+        DBDictionary dict = ((JDBCConfiguration) em.getConfiguration()).getDBDictionaryInstance();
+        if(dict instanceof SybaseDictionary) { 
+            expectedShannonName="Shannon";
+        }
+        
         endTx(em);
         endEm(em);
     }
@@ -109,7 +124,7 @@ public class TestInMemoryScalarExpressio
         qi.setCandidateCollection(rsall);
         List rs = q1.getResultList();
         Object[] result = (Object[]) rs.get(2);
-        assertEquals("the name is not shannon ", "Shannon ", result[0]);        
+        assertEquals("the name is not shannon ", expectedShannonName, result[0]);        
         assertNull("is not null", result[1]);
         
         endEm(em);
@@ -134,7 +149,7 @@ public class TestInMemoryScalarExpressio
         qi.setCandidateCollection(rsall);
         List rs = q1.getResultList();
         Object[] result = (Object[]) rs.get(5);
-        assertEquals("the name is not shannon ", "Shannon ", result[0]);        
+        assertEquals("the name is not shannon ", expectedShannonName, result[0]);        
         assertEquals("is not 'us'", "us", result[1]);
         
         endEm(em);
@@ -160,7 +175,7 @@ public class TestInMemoryScalarExpressio
         qi.setCandidateCollection(rsall);
         List rs = q1.getResultList();
         Object[] result = (Object[]) rs.get(3);
-        assertEquals("the name is not shannon ", "Shannon ", result[0]);
+        assertEquals("the name is not shannon ", expectedShannonName, result[0]);
         assertEquals("not 30", "30", result[1].toString());
 
         endEm(em);

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/expressions/TestJPQLScalarExpressions.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/expressions/TestJPQLScalarExpressions.java?rev=1022629&r1=1022628&r2=1022629&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/expressions/TestJPQLScalarExpressions.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/expressions/TestJPQLScalarExpressions.java Thu Oct 14 17:50:43 2010
@@ -23,20 +23,30 @@ import java.util.List;
 import javax.persistence.Query;
 import javax.persistence.EntityManager;
 
+import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
+import org.apache.openjpa.jdbc.sql.DBDictionary;
+import org.apache.openjpa.jdbc.sql.SybaseDictionary;
+import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI;
 import org.apache.openjpa.persistence.common.apps.*;
 import org.apache.openjpa.persistence.common.utils.AbstractTestCase;
 
 public class TestJPQLScalarExpressions extends AbstractTestCase {
 
     private int userid1, userid2, userid3, userid4, userid5, userid6;
-
+    
+    /**
+     * Some databases trim the whitespace from a string upon insert. Store Shannon's name for 
+     * asserts later in the testcase.
+     */
+    private String expectedShannonName = "Shannon ";
+    
     public TestJPQLScalarExpressions(String name) {
         super(name, "jpqlclausescactusapp");
     }
 
     public void setUp() {
         deleteAll(CompUser.class);
-        EntityManager em = currentEntityManager();
+        OpenJPAEntityManagerSPI em = (OpenJPAEntityManagerSPI) currentEntityManager();
         startTx(em);
 
         Address[] add = new Address[]{
@@ -66,7 +76,11 @@ public class TestJPQLScalarExpressions e
         userid5 = user5.getUserid();
         em.persist(user6);
         userid6 = user6.getUserid();
-
+        
+        DBDictionary dict = ((JDBCConfiguration) em.getConfiguration()).getDBDictionaryInstance();
+        if(dict instanceof SybaseDictionary) { 
+            expectedShannonName="Shannon";
+        }
         endTx(em);
         endEm(em);
     }
@@ -146,7 +160,7 @@ public class TestJPQLScalarExpressions e
 
         List rs = em.createQuery(query).getResultList();
         Object[] result = (Object[]) rs.get(1);
-        assertEquals("the name is not shannon ", "Shannon ", result[0]);
+        assertEquals("the name is not shannon ", expectedShannonName, result[0]);
         assertNull("is not null", result[1]);
         
         endTx(em);
@@ -189,7 +203,7 @@ public class TestJPQLScalarExpressions e
         List rs3 = em.createQuery(query3).getResultList();
         Object[] result3 = (Object[]) rs3.get(0);
         assertEquals("the result is not female", "Female", result3[1]);
-        assertEquals("the name is not shannon", "Shannon ", result3[0]);
+        assertEquals("the name is not shannon", expectedShannonName, result3[0]);
         result3 = (Object[]) rs3.get(2);
         assertEquals("the result is not male", "Male", result3[1]);
         assertEquals("the name is not seetha", "Seetha", result3[0]);

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/functions/TestEJBQLFunction.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/functions/TestEJBQLFunction.java?rev=1022629&r1=1022628&r2=1022629&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/functions/TestEJBQLFunction.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/functions/TestEJBQLFunction.java Thu Oct 14 17:50:43 2010
@@ -24,6 +24,7 @@ import javax.persistence.EntityManager;
 import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
 import org.apache.openjpa.jdbc.sql.DBDictionary;
 import org.apache.openjpa.jdbc.sql.OracleDictionary;
+import org.apache.openjpa.jdbc.sql.SybaseDictionary;
 import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI;
 import org.apache.openjpa.persistence.common.apps.Address;
 import org.apache.openjpa.persistence.common.apps.CompUser;
@@ -34,14 +35,20 @@ import org.apache.openjpa.persistence.co
 public class TestEJBQLFunction extends AbstractTestCase {
 
     private int userid1, userid2, userid3, userid4, userid5, userid6;
-
+    
+    /**
+     * Some databases trim the whitespace from a string upon insert. Store Shannon's name for 
+     * asserts later in the testcase.
+     */
+    private String expectedShannonName = "Shannon ";
+    
     public TestEJBQLFunction(String name) {
         super(name, "jpqlclausescactusapp");
     }
 
     public void setUp() {
         deleteAll(CompUser.class);
-        EntityManager em = currentEntityManager();
+        OpenJPAEntityManagerSPI em = (OpenJPAEntityManagerSPI) currentEntityManager();
         startTx(em);
 
         Address[] add = new Address[]{
@@ -72,6 +79,11 @@ public class TestEJBQLFunction extends A
         em.persist(user6);
         userid6 = user6.getUserid();
 
+        DBDictionary dict = ((JDBCConfiguration) em.getConfiguration()).getDBDictionaryInstance();
+        if(dict instanceof SybaseDictionary) { 
+            expectedShannonName="Shannon";
+        }
+        
         endTx(em);
         endEm(em);
     }
@@ -145,8 +157,10 @@ public class TestEJBQLFunction extends A
         if (dict instanceof OracleDictionary) {
             assertTrue(user.getName() == null ||
                 "".equals(user.getName()));
+        } else if (dict instanceof SybaseDictionary) {
+            assertEquals(" ", user.getName());
         } else {
-            assertEquals("", user.getName());            
+            assertEquals("", user.getName());
         }
 
         endTx(em);
@@ -159,7 +173,7 @@ public class TestEJBQLFunction extends A
 
         CompUser user = em.find(CompUser.class, userid2);
         assertNotNull(user);
-        assertEquals("Shannon ", user.getName());
+        assertEquals(expectedShannonName, user.getName());
 
         String query = "UPDATE CompUser e SET " +
             "e.name = Trim(e.name) WHERE " +
@@ -284,7 +298,7 @@ public class TestEJBQLFunction extends A
 
         assertNotNull(result);
         assertEquals(1, result.size());
-        assertTrue(result.contains("Shannon "));
+        assertTrue(result.contains(expectedShannonName));
 
         endEm(em);
     }
@@ -363,7 +377,7 @@ public class TestEJBQLFunction extends A
 
         assertNotNull(result);
         assertEquals(3, result.size());
-        assertTrue(result.contains("Shannon "));
+        assertTrue(result.contains(expectedShannonName));
         assertTrue(result.contains("Shade"));
         assertTrue(result.contains("Seetha"));
 
@@ -380,7 +394,7 @@ public class TestEJBQLFunction extends A
 
         assertNotNull(result);
         assertEquals(3, result.size());
-        assertTrue(result.contains("Shannon "));
+        assertTrue(result.contains(expectedShannonName));
         assertTrue(result.contains("Seetha"));
         assertTrue(result.contains("Shade"));
 

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestJDBCEscapeDate.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestJDBCEscapeDate.java?rev=1022629&r1=1022628&r2=1022629&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestJDBCEscapeDate.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestJDBCEscapeDate.java Thu Oct 14 17:50:43 2010
@@ -18,6 +18,7 @@
  */
 package org.apache.openjpa.persistence.query;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -32,6 +33,7 @@ import org.apache.openjpa.jdbc.sql.DBDic
 import org.apache.openjpa.jdbc.sql.HSQLDictionary;
 import org.apache.openjpa.jdbc.sql.PostgresDictionary;
 import org.apache.openjpa.jdbc.sql.SQLServerDictionary;
+import org.apache.openjpa.jdbc.sql.SybaseDictionary;
 import org.apache.openjpa.persistence.test.SingleEMFTestCase;
 
 /**
@@ -76,6 +78,21 @@ public class TestJDBCEscapeDate extends 
                 // "select a from Employee a where a.hireTimestamp >= {ts '2009-08-25 00:00:00.123456'}",
                 "select {t '00:00:00'}, a.empId from Employee a",
             };
+        } else if ((dict instanceof SybaseDictionary)) {
+            jpql = new String[] {
+                "select a from Employee a where a.hireDate >= {d '2009-08-25'}",
+                "select a from Employee a where a.hireDate >= {d '2009-8-5'}",    
+                "select a from Employee a where a.hireTime >= {t '00:00:00'}",  
+                "select a from Employee a where a.hireTimestamp >= {ts '2009-08-25 00:00:00'}",
+                "select a from Employee a where a.hireTimestamp >= {ts '2009-08-25 00:00:00.0'}",
+                "select a from Employee a where a.hireTimestamp >= {ts '2009-08-25 00:00:00.1'}",
+                "select a from Employee a where a.hireTimestamp >= {ts '2009-08-25 00:00:00.12'}",
+                "select a from Employee a where a.hireTimestamp >= {ts '2009-08-25 00:00:00.123'}",
+                "select a from Employee a where a.hireTimestamp >= {ts '2009-08-25 00:00:00.1234'}",
+                "select a from Employee a where a.hireTimestamp >= {ts '2009-08-25 00:00:00.12345'}", 
+                "select a from Employee a where a.hireTimestamp >= {ts '2009-08-25 00:00:00.123456'}",
+                "select {t '00:00:00'}, a.empId from Employee a",
+            };
         } else if (dict instanceof PostgresDictionary) {
             jpql = new String[] {
                 "select a from Employee a where a.hireDate >= {d '2009-08-25'}",