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'}",