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 2008/05/03 21:41:50 UTC

svn commit: r653109 - in /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test: java/org/apache/cayenne/access/DataContextJoinAliasesTest.java resources/dml/access.DataContextJoinAliasesTest.xml

Author: aadamchik
Date: Sat May  3 12:41:49 2008
New Revision: 653109

URL: http://svn.apache.org/viewvc?rev=653109&view=rev
Log:
CAY-802  Split Expressions
(unit tests)

Added:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/dml/access.DataContextJoinAliasesTest.xml

Added: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesTest.java?rev=653109&view=auto
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesTest.java (added)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextJoinAliasesTest.java Sat May  3 12:41:49 2008
@@ -0,0 +1,70 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+package org.apache.cayenne.access;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.art.Artist;
+import org.apache.art.Gallery;
+import org.apache.cayenne.DataObjectUtils;
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.unit.CayenneCase;
+
+public class DataContextJoinAliasesTest extends CayenneCase {
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        deleteTestData();
+    }
+
+    public void testMatchAll() throws Exception {
+        Map<String, Object> params = new HashMap<String, Object>();
+        Date now = new Date();
+        params.put("date1", now);
+        params.put("date2", now);
+        createTestData("testMatchAll", params);
+
+        // select all galleries that have exhibits by both Picasso and Dali...
+
+        ObjectContext context = createDataContext();
+
+        Artist picasso = DataObjectUtils.objectForPK(context, Artist.class, 1);
+        Artist dali = DataObjectUtils.objectForPK(context, Artist.class, 2);
+
+//        SelectQuery query = new SelectQuery(Gallery.class);
+//        String path = "exhibitArray.artistExhibitArray";
+//        query.aliasJoin("p", path);
+//        query.aliasJoin("d", path);
+//
+//        query.andQualifier(ExpressionFactory.matchExp("p.toArtist", picasso));
+//        query.andQualifier(ExpressionFactory.matchExp("d.toArtist", dali));
+//
+//        List<Gallery> galleries = context.performQuery(query);
+//
+//        assertEquals(1, galleries.size());
+//        assertEquals("G1", galleries.get(0).getGalleryName());
+    }
+
+}

Added: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/dml/access.DataContextJoinAliasesTest.xml
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/dml/access.DataContextJoinAliasesTest.xml?rev=653109&view=auto
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/dml/access.DataContextJoinAliasesTest.xml (added)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/dml/access.DataContextJoinAliasesTest.xml Sat May  3 12:41:49 2008
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
+
+<beans default-lazy-init="true">	
+
+	<bean id="A1" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Artist</value></constructor-arg>
+		<constructor-arg><value>
+		insert into ARTIST (ARTIST_ID, ARTIST_NAME) values (1, 'Picasso')
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="A2" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Artist</value></constructor-arg>
+		<constructor-arg><value>
+		insert into ARTIST (ARTIST_ID, ARTIST_NAME) values (2, 'Dali')
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="A3" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Artist</value></constructor-arg>
+		<constructor-arg><value>
+		insert into ARTIST (ARTIST_ID, ARTIST_NAME) values (3, 'X')
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="A4" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Artist</value></constructor-arg>
+		<constructor-arg><value>
+		insert into ARTIST (ARTIST_ID, ARTIST_NAME) values (4, 'Y')
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="G1" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Gallery</value></constructor-arg>
+		<constructor-arg><value>
+		insert into GALLERY (GALLERY_ID, GALLERY_NAME) values (1, 'G1')
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="G2" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Gallery</value></constructor-arg>
+		<constructor-arg><value>
+		insert into GALLERY (GALLERY_ID, GALLERY_NAME) values (2, 'G2')
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="G3" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Gallery</value></constructor-arg>
+		<constructor-arg><value>
+		insert into GALLERY (GALLERY_ID, GALLERY_NAME) values (3, 'G3')
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="E1" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Gallery</value></constructor-arg>
+		<constructor-arg><value>
+		insert into EXHIBIT (EXHIBIT_ID, GALLERY_ID, OPENING_DATE, CLOSING_DATE) values (1, 2, #bind($date1 'TIMESTAMP'), #bind($date2 'TIMESTAMP'))
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="E2" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Gallery</value></constructor-arg>
+		<constructor-arg><value>
+		insert into EXHIBIT (EXHIBIT_ID, GALLERY_ID, OPENING_DATE, CLOSING_DATE) values (2, 2, #bind($date1 'TIMESTAMP'), #bind($date2 'TIMESTAMP'))
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="E3" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Gallery</value></constructor-arg>
+		<constructor-arg><value>
+		insert into EXHIBIT (EXHIBIT_ID, GALLERY_ID, OPENING_DATE, CLOSING_DATE) values (3, 1, #bind($date1 'TIMESTAMP'), #bind($date2 'TIMESTAMP'))
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="E4" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Gallery</value></constructor-arg>
+		<constructor-arg><value>
+		insert into EXHIBIT (EXHIBIT_ID, GALLERY_ID, OPENING_DATE, CLOSING_DATE) values (4, 1, #bind($date1 'TIMESTAMP'), #bind($date2 'TIMESTAMP'))
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="E5" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Gallery</value></constructor-arg>
+		<constructor-arg><value>
+		insert into EXHIBIT (EXHIBIT_ID, GALLERY_ID, OPENING_DATE, CLOSING_DATE) values (5, 3, #bind($date1 'TIMESTAMP'), #bind($date2 'TIMESTAMP'))
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="AE1" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Gallery</value></constructor-arg>
+		<constructor-arg><value>
+		insert into ARTIST_EXHIBIT (EXHIBIT_ID, ARTIST_ID) values (1, 1)
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="AE2" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Gallery</value></constructor-arg>
+		<constructor-arg><value>
+		insert into ARTIST_EXHIBIT (EXHIBIT_ID, ARTIST_ID) values (1, 3)
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="AE3" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Gallery</value></constructor-arg>
+		<constructor-arg><value>
+		insert into ARTIST_EXHIBIT (EXHIBIT_ID, ARTIST_ID) values (3, 1)
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="AE4" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Gallery</value></constructor-arg>
+		<constructor-arg><value>
+		insert into ARTIST_EXHIBIT (EXHIBIT_ID, ARTIST_ID) values (4, 2)
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="AE5" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Gallery</value></constructor-arg>
+		<constructor-arg><value>
+		insert into ARTIST_EXHIBIT (EXHIBIT_ID, ARTIST_ID) values (4, 4)
+		</value></constructor-arg>
+	</bean>
+	
+	<bean id="AE6" class="org.apache.cayenne.unit.util.UpdatingSQLTemplate">
+		<constructor-arg type="java.lang.Class"><value>org.apache.art.Gallery</value></constructor-arg>
+		<constructor-arg><value>
+		insert into ARTIST_EXHIBIT (EXHIBIT_ID, ARTIST_ID) values (5, 2)
+		</value></constructor-arg>
+	</bean>
+	
+
+	<!-- ======================================= -->
+	<!-- Data Sets -->
+	<!-- ======================================= -->	
+	
+	<bean id="testMatchAll" class="java.util.ArrayList">
+		<constructor-arg>
+			<list>
+				<ref bean="A1"/>
+				<ref bean="A2"/>
+				<ref bean="A3"/>
+				<ref bean="A4"/>
+				<ref bean="G1"/>
+				<ref bean="G2"/>
+				<ref bean="G3"/>
+				<ref bean="E1"/>
+				<ref bean="E2"/>
+				<ref bean="E3"/>
+				<ref bean="E4"/>
+				<ref bean="E5"/>
+				<ref bean="AE1"/>
+				<ref bean="AE2"/>
+				<ref bean="AE3"/>
+				<ref bean="AE4"/>
+				<ref bean="AE5"/>
+				<ref bean="AE6"/>
+			</list>
+		</constructor-arg>
+	</bean>
+	
+</beans>
\ No newline at end of file