You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2010/08/28 18:45:14 UTC
svn commit: r990392 - in
/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test:
java/org/apache/cayenne/access/DataContextEJBQLIsNullTest.java
resources/dml/access.DataContextEJBQLIsNullTest.xml
Author: aadamchik
Date: Sat Aug 28 16:45:13 2010
New Revision: 990392
URL: http://svn.apache.org/viewvc?rev=990392&view=rev
Log:
converting unit tests to injection-based approach
Removed:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/dml/access.DataContextEJBQLIsNullTest.xml
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullTest.java
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullTest.java?rev=990392&r1=990391&r2=990392&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullTest.java Sat Aug 28 16:45:13 2010
@@ -21,21 +21,69 @@ package org.apache.cayenne.access;
import java.util.List;
import org.apache.cayenne.Cayenne;
+import org.apache.cayenne.ObjectContext;
import org.apache.cayenne.Persistent;
+import org.apache.cayenne.di.Inject;
import org.apache.cayenne.query.EJBQLQuery;
-import org.apache.cayenne.unit.CayenneCase;
-
-public class DataContextEJBQLIsNullTest extends CayenneCase {
+import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.test.jdbc.TableHelper;
+import org.apache.cayenne.unit.AccessStackAdapter;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+
+@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+public class DataContextEJBQLIsNullTest extends ServerCase {
+
+ @Inject
+ private ObjectContext context;
+
+ @Inject
+ private AccessStackAdapter accessStackAdapter;
+
+ @Inject
+ protected DBHelper dbHelper;
+
+ protected TableHelper tArtist;
+ protected TableHelper tPainting;
+
+ @Override
+ protected void setUpAfterInjection() throws Exception {
+ dbHelper.deleteAll("PAINTING_INFO");
+ dbHelper.deleteAll("PAINTING");
+ dbHelper.deleteAll("ARTIST_EXHIBIT");
+ dbHelper.deleteAll("ARTIST");
+ dbHelper.deleteAll("EXHIBIT");
+
+ tArtist = new TableHelper(dbHelper, "ARTIST");
+ tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
+
+ tPainting = new TableHelper(dbHelper, "PAINTING");
+ tPainting.setColumns(
+ "PAINTING_ID",
+ "ARTIST_ID",
+ "PAINTING_TITLE",
+ "ESTIMATED_PRICE");
+ }
+
+ private void createTwoPaintings() throws Exception {
+ tPainting.insert(33001, null, "A", null);
+ tPainting.insert(33002, null, "B", 2000);
+ }
+
+ private void createTwoPaintingsAndOneArtist() throws Exception {
+ tArtist.insert(33001, "A");
+ tPainting.insert(33001, null, "A", null);
+ tPainting.insert(33003, 33001, "C", 500);
+ }
public void testCompareToNull() throws Exception {
- // the query below can blow up on FrontBase. See CAY-819 for details.
- if (!getAccessStackAdapter().supportsEqualNullSyntax()) {
+ // the query below can blow up on FrontBase. See CAY-819 for details.
+ if (!accessStackAdapter.supportsEqualNullSyntax()) {
return;
}
- deleteTestData();
- createTestData("prepare");
+ createTwoPaintings();
String ejbql1 = "SELECT p FROM Painting p WHERE p.estimatedPrice = :x";
EJBQLQuery query1 = new EJBQLQuery(ejbql1);
@@ -43,87 +91,85 @@ public class DataContextEJBQLIsNullTest
// unlike SelectQuery or SQLTemplate, EJBQL nulls are handled just like SQL.
- // note that some databases (notable Sybase) actually allow = NULL comparison,
+ // note that some databases (notably Sybase) actually allow = NULL comparison,
// most do not; per JPA spec the result is undefined.. so we can't make any
// assertions about the result. Just making sure the query doesn't blow up
- createDataContext().performQuery(query1);
+ context.performQuery(query1);
}
-
+
public void testCompareToNull2() throws Exception {
- if (!getAccessStackAdapter().supportsEqualNullSyntax()) {
+
+ if (!accessStackAdapter.supportsEqualNullSyntax()) {
return;
}
- deleteTestData();
- createTestData("prepare");
+ createTwoPaintings();
String ejbql1 = "SELECT p FROM Painting p WHERE p.toArtist.artistName = :x";
EJBQLQuery query1 = new EJBQLQuery(ejbql1);
query1.setParameter("x", null);
- createDataContext().performQuery(query1);
+ context.performQuery(query1);
}
-
+
public void testCompareToNull3() throws Exception {
- if (!getAccessStackAdapter().supportsEqualNullSyntax()) {
+ if (!accessStackAdapter.supportsEqualNullSyntax()) {
return;
}
- deleteTestData();
- createTestData("prepare");
+ createTwoPaintings();
String ejbql1 = "SELECT p FROM Painting p WHERE :x = p.toArtist.artistName";
EJBQLQuery query1 = new EJBQLQuery(ejbql1);
query1.setParameter("x", null);
- createDataContext().performQuery(query1);
+ context.performQuery(query1);
}
-
public void testIsNull() throws Exception {
- deleteTestData();
- createTestData("prepare");
+
+ createTwoPaintings();
String ejbql1 = "SELECT p FROM Painting p WHERE p.estimatedPrice IS NULL";
EJBQLQuery query1 = new EJBQLQuery(ejbql1);
- List results = createDataContext().performQuery(query1);
+ List<?> results = context.performQuery(query1);
assertEquals(1, results.size());
assertEquals(33001, Cayenne.intPKForObject((Persistent) results.get(0)));
}
public void testIsNotNull() throws Exception {
- deleteTestData();
- createTestData("prepare");
+
+ createTwoPaintings();
String ejbql1 = "SELECT p FROM Painting p WHERE p.estimatedPrice IS NOT NULL";
EJBQLQuery query1 = new EJBQLQuery(ejbql1);
- List results = createDataContext().performQuery(query1);
+ List<?> results = context.performQuery(query1);
assertEquals(1, results.size());
assertEquals(33002, Cayenne.intPKForObject((Persistent) results.get(0)));
}
public void testToOneIsNull() throws Exception {
- deleteTestData();
- createTestData("testToOneIsNull");
+
+ createTwoPaintingsAndOneArtist();
String ejbql1 = "SELECT p FROM Painting p WHERE p.toArtist IS NULL";
EJBQLQuery query1 = new EJBQLQuery(ejbql1);
- List results = createDataContext().performQuery(query1);
+ List<?> results = context.performQuery(query1);
assertEquals(1, results.size());
assertEquals(33001, Cayenne.intPKForObject((Persistent) results.get(0)));
}
public void testToOneIsNotNull() throws Exception {
- deleteTestData();
- createTestData("testToOneIsNull");
+
+ createTwoPaintingsAndOneArtist();
String ejbql1 = "SELECT p FROM Painting p WHERE p.toArtist IS NOT NULL";
EJBQLQuery query1 = new EJBQLQuery(ejbql1);
- List results = createDataContext().performQuery(query1);
+ List<?> results = context.performQuery(query1);
assertEquals(1, results.size());
assertEquals(33003, Cayenne.intPKForObject((Persistent) results.get(0)));
}