You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by bg...@apache.org on 2007/09/13 17:24:08 UTC

svn commit: r575334 - in /ibatis/trunk/java/mapper/mapper2/test: com/ibatis/sqlmap/NestedIterateTest.java com/ibatis/sqlmap/maps/NestedIterateStatements.xml testdomain/Category.java

Author: bgoodin
Date: Thu Sep 13 08:24:08 2007
New Revision: 575334

URL: http://svn.apache.org/viewvc?rev=575334&view=rev
Log:
added test to test for reported issue 457 - https://issues.apache.org/jira/browse/IBATIS-457
M    test/testdomain/Category.java
M    test/com/ibatis/sqlmap/NestedIterateTest.java
M    test/com/ibatis/sqlmap/maps/NestedIterateStatements.xml

Modified:
    ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/NestedIterateTest.java
    ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/NestedIterateStatements.xml
    ibatis/trunk/java/mapper/mapper2/test/testdomain/Category.java

Modified: ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/NestedIterateTest.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/NestedIterateTest.java?rev=575334&r1=575333&r2=575334&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/NestedIterateTest.java (original)
+++ ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/NestedIterateTest.java Thu Sep 13 08:24:08 2007
@@ -1,8 +1,6 @@
 package com.ibatis.sqlmap;
 
-import testdomain.NestedIterateParameterObject;
-import testdomain.Person;
-import testdomain.SimpleNestedParameterObject;
+import testdomain.*;
 
 import java.util.List;
 import java.util.ArrayList;
@@ -14,6 +12,8 @@
   protected void setUp() throws Exception {
     initSqlMap("com/ibatis/sqlmap/maps/SqlMapConfig.xml", null);
     initScript("scripts/person-init.sql");
+    initScript("scripts/jpetstore-hsqldb-schema.sql");
+    initScript("scripts/jpetstore-hsqldb-dataload.sql");
   }
 
   /**
@@ -873,6 +873,51 @@
       assertEquals(1, ((Person) results.get(0)).getId().intValue());
       assertEquals(2, ((Person) results.get(1)).getId().intValue());
       assertEquals(3, ((Person) results.get(2)).getId().intValue());
+    } catch (Exception e) {
+      fail(e.getMessage());
+    }
+  }
+
+
+
+ /**
+  * This tests nesting when a list is initially nested in a bean. so it tests
+  * [bean]->[list]->[property_of_object_on_exposed_index]
+  *
+  */
+  public void test30() {
+
+    try {
+
+      // prepare item list
+      Item item1 = new Item();
+      item1.setItemId("EST-1");
+      item1.setProductId("FI-SW-01");
+
+      List itemList = new ArrayList();
+      itemList.add(item1);
+
+      // prepare product list
+      Product product1 = new Product();
+      product1.setProductId("FI-SW-01");
+      product1.setCategoryId("DOGS");
+      product1.setItemList(itemList);
+
+      List productList = new ArrayList();
+      productList.add(product1);
+
+      //prepare parent category
+      Category parentCategory = new Category();
+      parentCategory.setCategoryId("DOGS");
+      parentCategory.setProductList(productList);
+
+      // setup Category
+      Category category = new Category();
+      category.setCategoryId("FISH");
+      category.setParentCategory(parentCategory);
+
+      List results = sqlMap.queryForList("NestedIterateTest30", category);
+      assertEquals(1, results.size());
     } catch (Exception e) {
       fail(e.getMessage());
     }

Modified: ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/NestedIterateStatements.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/NestedIterateStatements.xml?rev=575334&r1=575333&r2=575334&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/NestedIterateStatements.xml (original)
+++ ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/NestedIterateStatements.xml Thu Sep 13 08:24:08 2007
@@ -18,7 +18,7 @@
     </dynamic>
     order by id
   </select>
-  
+
   <select id="NestedIterateTest2" resultMap="personResult" parameterClass="testdomain.NestedIterateParameterObject">
     select id, first_name, last_name
     from person
@@ -31,7 +31,7 @@
     </dynamic>
     order by id
   </select>
-  
+
   <select id="NestedIterateTest3" resultMap="personResult" parameterClass="testdomain.NestedIterateParameterObject">
     select id, first_name, last_name
     from person
@@ -70,7 +70,7 @@
     </dynamic>
     order by id
   </select>
-  
+
   <select id="NestedIterateTest6" resultMap="personResult" parameterClass="testdomain.NestedIterateParameterObject">
     select id, first_name, last_name
     from person
@@ -96,7 +96,7 @@
     </dynamic>
     order by id
   </select>
-  
+
   <!-- try iterating over two properties -->
   <select id="NestedIterateTest8" resultMap="personResult" parameterClass="testdomain.NestedIterateParameterObject">
     select id, first_name, last_name
@@ -110,7 +110,7 @@
     </dynamic>
     order by id
   </select>
-  
+
   <!-- try nested iterates -->
   <select id="NestedIterateTest9" resultMap="personResult" parameterClass="testdomain.NestedIterateParameterObject">
     select id, first_name, last_name
@@ -126,7 +126,7 @@
     </dynamic>
     order by id
   </select>
-  
+
   <!-- This test makes sure that removeFirstPrepend works for every iteration -->
   <select id="NestedIterateTest9a" resultMap="personResult" parameterClass="testdomain.NestedIterateParameterObject">
     select id, first_name, last_name
@@ -142,7 +142,7 @@
     </dynamic>
     order by id
   </select>
-  
+
   <select id="NestedIterateTest10" resultMap="personResult" parameterClass="testdomain.NestedIterateParameterObject">
     select id, first_name, last_name
     from person
@@ -155,7 +155,7 @@
     </dynamic>
     order by id
   </select>
-  
+
   <select id="NestedIterateTest11" resultMap="personResult" parameterClass="testdomain.NestedIterateParameterObject">
     select id, first_name, last_name
     from person
@@ -194,7 +194,7 @@
     </dynamic>
     order by id
   </select>
-  
+
   <select id="NestedIterateTest14" resultMap="personResult" parameterClass="testdomain.NestedIterateParameterObject">
     select id, first_name, last_name
     from person
@@ -256,7 +256,7 @@
     </dynamic>
     order by id
   </select>
-  
+
   <!-- test for IBATIS-293 written in the form of 9-15 above -->
   <select id="NestedIterateTest18" resultMap="personResult" parameterClass="testdomain.NestedIterateParameterObject">
     select id, first_name, last_name
@@ -274,7 +274,7 @@
     </dynamic>
     order by id
   </select>
-  
+
   <!-- test for IBATIS-293 written in the form of 9-15 above -->
   <select id="NestedIterateTest19" resultMap="personResult" parameterClass="testdomain.NestedIterateParameterObject">
     select id, first_name, last_name
@@ -292,7 +292,7 @@
     </dynamic>
     order by id
   </select>
-  
+
   <!-- test for IBATIS-293 written in the form of 9-15 above -->
   <select id="NestedIterateTest20" resultMap="personResult" parameterClass="testdomain.NestedIterateParameterObject">
     select id, first_name, last_name
@@ -423,5 +423,19 @@
     </iterate>
     order by id
   </select>
-
+    
+  <select id="NestedIterateTest30" parameterClass="testdomain.Category" resultClass="testdomain.Product">
+    SELECT * FROM product WHERE productId=
+    <iterate property="parentCategory.productList">
+      <isEqual property="parentCategory.productList[].productId" compareValue="FI-SW-01">
+        #parentCategory.productList[].productId#
+      </isEqual>
+      <isEqual property="parentCategory.productList[].productId" compareValue="NOTHING">
+        #parentCategory.productList[].productId#
+      </isEqual>
+      <isEqual property="parentCategory.productList[].productId" compareValue="NOTHINGAGAIN">
+        #parentCategory.productList[].productId#
+      </isEqual>
+    </iterate>
+  </select>
 </sqlMap>

Modified: ibatis/trunk/java/mapper/mapper2/test/testdomain/Category.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/mapper/mapper2/test/testdomain/Category.java?rev=575334&r1=575333&r2=575334&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/testdomain/Category.java (original)
+++ ibatis/trunk/java/mapper/mapper2/test/testdomain/Category.java Thu Sep 13 08:24:08 2007
@@ -6,6 +6,7 @@
 public class Category implements Serializable {
 
   private String categoryId;
+  private Category parentCategory;
   private String name;
   private String description;
   private List productList;
@@ -40,5 +41,13 @@
 
   public void setProductList(List productList) {
     this.productList = productList;
+  }
+
+  public Category getParentCategory() {
+    return parentCategory;
+  }
+
+  public void setParentCategory(Category parentCategory) {
+    this.parentCategory = parentCategory;
   }
 }