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;
}
}