Author: cbegin
Date: Sat Apr 11 05:01:31 2009
New Revision: 764164
URL: http://svn.apache.org/viewvc?rev=764164&view=rev
Log:
added unit test for ForEach
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/ForEachSqlNode.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/xml/dynamic/DynamicSqlSourceTest.java
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/ForEachSqlNode.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/ForEachSqlNode.java?rev=764164&r1=764163&r2=764164&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/ForEachSqlNode.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/ForEachSqlNode.java
Sat Apr 11 05:01:31 2009
@@ -6,6 +6,7 @@
private MixedSqlNode contents;
public ForEachSqlNode(String collectionExpression, MixedSqlNode contents) {
+ this.evaluator = new ExpressionEvaluator();
this.collectionExpression = collectionExpression;
this.contents = contents;
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/xml/dynamic/DynamicSqlSourceTest.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/xml/dynamic/DynamicSqlSourceTest.java?rev=764164&r1=764163&r2=764164&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/xml/dynamic/DynamicSqlSourceTest.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/xml/dynamic/DynamicSqlSourceTest.java
Sat Apr 11 05:01:31 2009
@@ -100,6 +100,19 @@
assertEquals(expected, boundSql.getSql());
}
+ @Test
+ public void shouldIterateOnceForEachItemInCollection() throws Exception {
+ final HashMap<String,String[]> parameterObject = new HashMap() {{
+ put("array", new String[]{"1", "2", "3"});
+ }};
+ final String expected = "SELECT * FROM BLOG WHERE ID in ? ? ?";
+ DynamicSqlSource source = createDynamicSqlSource(
+ new TextSqlNode("SELECT * FROM BLOG WHERE ID in"),
+ new ForEachSqlNode("array",mixedContents(new TextSqlNode("?"))));
+ BoundSql boundSql = source.getBoundSql(parameterObject);
+ assertEquals(expected, boundSql.getSql());
+ }
+
private DynamicSqlSource createDynamicSqlSource(SqlNode... contents) throws
IOException, SQLException {
createBlogDataSource();