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 2007/06/13 18:55:33 UTC
svn commit: r546953 - in
/cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test:
java/org/apache/cayenne/access/DataContextSQLTemplateTest.java
resources/dml/access.DataContextSQLTemplateTest.xml
Author: aadamchik
Date: Wed Jun 13 09:55:32 2007
New Revision: 546953
URL: http://svn.apache.org/viewvc?view=rev&rev=546953
Log:
CAY-805: SQLTemplate improvement: new #bindObjectEqual #bindObjectNotEqual directives
compound key test
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateTest.java
cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/resources/dml/access.DataContextSQLTemplateTest.xml
Modified: cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateTest.java?view=diff&rev=546953&r1=546952&r2=546953
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/java/org/apache/cayenne/access/DataContextSQLTemplateTest.java Wed Jun 13 09:55:32 2007
@@ -20,10 +20,13 @@
package org.apache.cayenne.access;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.art.Artist;
+import org.apache.art.CompoundFkTestEntity;
+import org.apache.art.CompoundPkTestEntity;
import org.apache.art.Painting;
import org.apache.cayenne.DataObjectUtils;
import org.apache.cayenne.DataRow;
@@ -211,7 +214,62 @@
Painting p = (Painting) objects.get(0);
assertEquals(33001, DataObjectUtils.intPKForObject(p));
}
+
+ public void testBindObjectEqualCompound() throws Exception {
+ createTestData("testBindObjectEqualCompound");
+
+ ObjectContext context = createDataContext();
+
+ Map pk = new HashMap();
+ pk.put(CompoundPkTestEntity.KEY1_PK_COLUMN, "a1");
+ pk.put(CompoundPkTestEntity.KEY2_PK_COLUMN, "a2");
+
+ CompoundPkTestEntity a = (CompoundPkTestEntity) DataObjectUtils.objectForPK(
+ context,
+ CompoundPkTestEntity.class,
+ pk);
+
+ String template = "SELECT * FROM COMPOUND_FK_TEST t0"
+ + " WHERE #bindObjectEqual($a [ 't0.F_KEY1', 't0.F_KEY2' ] [ 'KEY1', 'KEY2' ] ) ORDER BY PKEY";
+ SQLTemplate query = new SQLTemplate(CompoundFkTestEntity.class, template);
+ query.setColumnNamesCapitalization(SQLTemplate.UPPERCASE_COLUMN_NAMES);
+ query.setParameters(Collections.singletonMap("a", a));
+
+ List objects = context.performQuery(query);
+ assertEquals(1, objects.size());
+
+ CompoundFkTestEntity p = (CompoundFkTestEntity) objects.get(0);
+ assertEquals(33001, DataObjectUtils.intPKForObject(p));
+ }
+ public void testBindObjectNotEqualCompound() throws Exception {
+ createTestData("testBindObjectEqualCompound");
+
+ ObjectContext context = createDataContext();
+
+ Map pk = new HashMap();
+ pk.put(CompoundPkTestEntity.KEY1_PK_COLUMN, "a1");
+ pk.put(CompoundPkTestEntity.KEY2_PK_COLUMN, "a2");
+
+ CompoundPkTestEntity a = (CompoundPkTestEntity) DataObjectUtils.objectForPK(
+ context,
+ CompoundPkTestEntity.class,
+ pk);
+
+ String template = "SELECT * FROM COMPOUND_FK_TEST t0"
+ + " WHERE #bindObjectNotEqual($a [ 't0.F_KEY1', 't0.F_KEY2' ] [ 'KEY1', 'KEY2' ] ) ORDER BY PKEY";
+ SQLTemplate query = new SQLTemplate(CompoundFkTestEntity.class, template);
+ query.setColumnNamesCapitalization(SQLTemplate.UPPERCASE_COLUMN_NAMES);
+ query.setParameters(Collections.singletonMap("a", a));
+
+ List objects = context.performQuery(query);
+ assertEquals(1, objects.size());
+
+ CompoundFkTestEntity p = (CompoundFkTestEntity) objects.get(0);
+ assertEquals(33002, DataObjectUtils.intPKForObject(p));
+ }
+
+
public void testBindObjectNotEqualNull() throws Exception {
createTestData("prepare");
@@ -228,11 +286,10 @@
Painting p1 = (Painting) objects.get(0);
assertEquals(33001, DataObjectUtils.intPKForObject(p1));
-
+
Painting p2 = (Painting) objects.get(1);
assertEquals(33002, DataObjectUtils.intPKForObject(p2));
}
-
public void testFetchLimit() throws Exception {
getAccessStack().createTestData(DataContextCase.class, "testArtists", null);
Modified: cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/resources/dml/access.DataContextSQLTemplateTest.xml
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/resources/dml/access.DataContextSQLTemplateTest.xml?view=diff&rev=546953&r1=546952&r2=546953
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/resources/dml/access.DataContextSQLTemplateTest.xml (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.4-unpublished/src/test/resources/dml/access.DataContextSQLTemplateTest.xml Wed Jun 13 09:55:32 2007
@@ -49,6 +49,40 @@
</value></constructor-arg>
</bean>
+ <bean id="P13" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+ <constructor-arg type="java.lang.Class"><value>org.apache.art.Painting</value></constructor-arg>
+ <constructor-arg><value>
+ INSERT INTO PAINTING (PAINTING_ID, PAINTING_TITLE, ARTIST_ID, ESTIMATED_PRICE) VALUES (33003, 'P3', null, 5000)
+ </value></constructor-arg>
+ </bean>
+
+ <bean id="CP1" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+ <constructor-arg type="java.lang.Class"><value>org.apache.art.CompoundPkTestEntity</value></constructor-arg>
+ <constructor-arg><value>
+ insert into COMPOUND_PK_TEST (KEY1, KEY2) values ('a1', 'a2')
+ </value></constructor-arg>
+ </bean>
+
+ <bean id="CP2" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+ <constructor-arg type="java.lang.Class"><value>org.apache.art.CompoundPkTestEntity</value></constructor-arg>
+ <constructor-arg><value>
+ insert into COMPOUND_PK_TEST (KEY1, KEY2) values ('b1', 'b2')
+ </value></constructor-arg>
+ </bean>
+
+ <bean id="CF1" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+ <constructor-arg type="java.lang.Class"><value>org.apache.art.CompoundFkTestEntity</value></constructor-arg>
+ <constructor-arg><value>
+ insert into COMPOUND_FK_TEST (PKEY, F_KEY1, F_KEY2) values (33001, 'a1', 'a2')
+ </value></constructor-arg>
+ </bean>
+
+ <bean id="CF2" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+ <constructor-arg type="java.lang.Class"><value>org.apache.art.CompoundFkTestEntity</value></constructor-arg>
+ <constructor-arg><value>
+ insert into COMPOUND_FK_TEST (PKEY, F_KEY1, F_KEY2) values (33002, 'b1', 'b2')
+ </value></constructor-arg>
+ </bean>
<!-- ======================================= -->
<!-- Data Sets -->
@@ -63,6 +97,18 @@
<ref bean="A4"/>
<ref bean="P11"/>
<ref bean="P12"/>
+ <ref bean="P13"/>
+ </list>
+ </constructor-arg>
+ </bean>
+
+ <bean id="testBindObjectEqualCompound" class="java.util.ArrayList">
+ <constructor-arg>
+ <list>
+ <ref bean="CP1"/>
+ <ref bean="CP2"/>
+ <ref bean="CF1"/>
+ <ref bean="CF2"/>
</list>
</constructor-arg>
</bean>