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/12/04 16:16:36 UTC

svn commit: r723345 - /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/SingleTableInheritanceTest.java

Author: aadamchik
Date: Thu Dec  4 07:16:36 2008
New Revision: 723345

URL: http://svn.apache.org/viewvc?rev=723345&view=rev
Log:
extra unit tests for sanity sake; no real bugs discovered

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/SingleTableInheritanceTest.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/SingleTableInheritanceTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/SingleTableInheritanceTest.java?rev=723345&r1=723344&r2=723345&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/SingleTableInheritanceTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/SingleTableInheritanceTest.java Thu Dec  4 07:16:36 2008
@@ -20,6 +20,7 @@
 
 import java.util.List;
 
+import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.QueryChain;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.query.SelectQuery;
@@ -35,6 +36,49 @@
         super.setUp();
         deleteTestData();
     }
+    
+    public void testMatchingOnSuperAttributes() {
+        QueryChain insert = new QueryChain();
+        insert
+                .addQuery(new SQLTemplate(
+                        AbstractPerson.class,
+                        "INSERT INTO PERSON (PERSON_ID, NAME, PERSON_TYPE) VALUES (1, 'E1', 'EE')"));
+        insert
+                .addQuery(new SQLTemplate(
+                        AbstractPerson.class,
+                        "INSERT INTO PERSON (PERSON_ID, NAME, PERSON_TYPE) VALUES (2, 'E2', 'EM')"));
+        createDataContext().performGenericQuery(insert);
+        
+        // fetch on leaf, but match on a super attribute
+        SelectQuery select = new SelectQuery(Manager.class);
+        select.andQualifier(ExpressionFactory.matchExp(AbstractPerson.NAME_PROPERTY, "E2"));
+    
+        List<Manager> results = createDataContext().performQuery(select);
+        assertEquals(1, results.size());
+        assertEquals("E2", results.get(0).getName());
+    }
+    
+    public void testMatchingOnSuperAttributesWithPrefetch() {
+        QueryChain insert = new QueryChain();
+        insert
+                .addQuery(new SQLTemplate(
+                        AbstractPerson.class,
+                        "INSERT INTO PERSON (PERSON_ID, NAME, PERSON_TYPE) VALUES (1, 'E1', 'EE')"));
+        insert
+                .addQuery(new SQLTemplate(
+                        AbstractPerson.class,
+                        "INSERT INTO PERSON (PERSON_ID, NAME, PERSON_TYPE) VALUES (2, 'E2', 'EM')"));
+        createDataContext().performGenericQuery(insert);
+        
+        // fetch on leaf, but match on a super attribute
+        SelectQuery select = new SelectQuery(Employee.class);
+        select.addPrefetch(Employee.TO_DEPARTMENT_PROPERTY);
+        select.andQualifier(ExpressionFactory.matchExp(AbstractPerson.NAME_PROPERTY, "E2"));
+    
+        List<Manager> results = createDataContext().performQuery(select);
+        assertEquals(1, results.size());
+        assertEquals("E2", results.get(0).getName());
+    }
 
     public void testPaginatedQueries() {