Author: jgbutler
Date: Sun Jun 28 22:02:35 2009
New Revision: 789162
URL: http://svn.apache.org/viewvc?rev=789162&view=rev
Log:
More forEach tests
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/CreateDB.sql
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/MapperConfig.xml
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/Name.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/NestedForEach.xml
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/NestedForEachTest.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/Parameter.java
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/CreateDB.sql
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/CreateDB.sql?rev=789162&view=auto
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/CreateDB.sql
(added)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/CreateDB.sql
Sun Jun 28 22:02:35 2009
@@ -0,0 +1,12 @@
+create table names (
+ id int,
+ firstName varchar(20),
+ lastName varchar(20)
+);
+
+insert into names (id, firstName, lastName) values(1, 'Fred', 'Flintstone');
+insert into names (id, firstName, lastName) values(2, 'Wilma', 'Flintstone');
+insert into names (id, firstName, lastName) values(3, 'Pebbles', 'Flintstone');
+insert into names (id, firstName, lastName) values(4, 'Barney', 'Rubble');
+insert into names (id, firstName, lastName) values(5, 'Betty', 'Rubble');
+insert into names (id, firstName, lastName) values(6, 'Bamm Bamm', 'Rubble');
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/MapperConfig.xml
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/MapperConfig.xml?rev=789162&view=auto
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/MapperConfig.xml
(added)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/MapperConfig.xml
Sun Jun 28 22:02:35 2009
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!DOCTYPE configuration
+ PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
+ "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
+<configuration>
+
+ <typeAliases>
+ <typeAlias alias="Parameter"
type="org.apache.ibatis.submitted.nested.Parameter"/>
+ </typeAliases>
+
+ <environments default="development">
+ <environment id="development">
+ <transactionManager type="JDBC">
+ <property name="" value=""/>
+ </transactionManager>
+ <dataSource type="UNPOOLED">
+ <property name="driver" value="org.hsqldb.jdbcDriver"/>
+ <property name="url" value="jdbc:hsqldb:mem:aname"/>
+ <property name="username" value="sa"/>
+ </dataSource>
+ </environment>
+ </environments>
+
+ <mappers>
+ <mapper resource="org/apache/ibatis/submitted/nested/NestedForEach.xml" />
+ </mappers>
+
+</configuration>
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/Name.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/Name.java?rev=789162&view=auto
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/Name.java
(added)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/Name.java
Sun Jun 28 22:02:35 2009
@@ -0,0 +1,24 @@
+package org.apache.ibatis.submitted.nested;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Name {
+ private String lastName;
+ private List<String> firstNames;
+ public Name() {
+ firstNames = new ArrayList<String>();
+ }
+ public String getLastName() {
+ return lastName;
+ }
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+ public List<String> getFirstNames() {
+ return firstNames;
+ }
+ public void addFirstName(String firstName) {
+ firstNames.add(firstName);
+ }
+}
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/NestedForEach.xml
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/NestedForEach.xml?rev=789162&view=auto
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/NestedForEach.xml
(added)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/NestedForEach.xml
Sun Jun 28 22:02:35 2009
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
+<mapper namespace="org.apache.ibatis.submitted.nested">
+ <select id="simpleSelect" parameterType="Parameter" resultType="map">
+ select *
+ from names
+ <where>
+ <foreach collection="names" item="name" separator="or">
+ lastName = #{name.lastName}
+ </foreach>
+ </where>
+ </select>
+
+ <select id="nestedSelect" parameterType="Parameter" resultType="map">
+ select *
+ from names
+ <where>
+ <foreach collection="names" item="name">
+ <foreach collection="name.firstNames" item="firstName" separator="or">
+ (lastName = #{name.lastName} and firstName = #{firstName})
+ </foreach>
+ </foreach>
+ </where>
+ </select>
+</mapper>
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/NestedForEachTest.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/NestedForEachTest.java?rev=789162&view=auto
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/NestedForEachTest.java
(added)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/NestedForEachTest.java
Sun Jun 28 22:02:35 2009
@@ -0,0 +1,92 @@
+package org.apache.ibatis.submitted.nested;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.io.Resources;
+import org.apache.ibatis.jdbc.ScriptRunner;
+import org.apache.ibatis.session.SqlSession;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.apache.ibatis.session.SqlSessionFactoryBuilder;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class NestedForEachTest {
+
+ protected static SqlSessionFactory sqlSessionFactory;
+
+ @BeforeClass
+ public static void setUp() throws Exception {
+ Connection conn = null;
+
+ try {
+ Class.forName("org.hsqldb.jdbcDriver");
+ conn = DriverManager.getConnection("jdbc:hsqldb:mem:aname", "sa",
+ "");
+
+ Reader reader =
Resources.getResourceAsReader("org/apache/ibatis/submitted/nested/CreateDB.sql");
+
+ ScriptRunner runner = new ScriptRunner(conn);
+ runner.setLogWriter(null);
+ runner.setErrorLogWriter(new PrintWriter(System.err));
+ runner.runScript(reader);
+ conn.commit();
+ reader.close();
+
+ reader =
Resources.getResourceAsReader("org/apache/ibatis/submitted/nested/MapperConfig.xml");
+ sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
+ reader.close();
+ } finally {
+ if (conn != null) {
+ conn.close();
+ }
+ }
+ }
+
+ @Test
+ @SuppressWarnings("unchecked")
+ public void testSimpleSelect() {
+ SqlSession sqlSession = sqlSessionFactory.openSession();
+ try {
+ Name name = new Name();
+ name.setLastName("Flintstone");
+ Parameter parameter = new Parameter();
+ parameter.addName(name);
+
+ List<Map<String, Object>> answer =
+
sqlSession.selectList("org.apache.ibatis.submitted.nested.simpleSelect",
parameter);
+
+ assertEquals(3, answer.size());
+ } finally {
+ sqlSession.close();
+ }
+ }
+
+ @Test
+ @SuppressWarnings("unchecked")
+ public void testNestedSelect() {
+ SqlSession sqlSession = sqlSessionFactory.openSession();
+ try {
+ Name name = new Name();
+ name.setLastName("Flintstone");
+ name.addFirstName("Fred");
+ name.addFirstName("Wilma");
+
+ Parameter parameter = new Parameter();
+ parameter.addName(name);
+
+ List<Map<String, Object>> answer =
+
sqlSession.selectList("org.apache.ibatis.submitted.nested.nestedSelect",
parameter);
+
+ assertEquals(2, answer.size());
+ } finally {
+ sqlSession.close();
+ }
+ }
+}
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/Parameter.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/Parameter.java?rev=789162&view=auto
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/Parameter.java
(added)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/Parameter.java
Sun Jun 28 22:02:35 2009
@@ -0,0 +1,17 @@
+package org.apache.ibatis.submitted.nested;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Parameter {
+ private List<Name> names;
+ public Parameter() {
+ names = new ArrayList<Name>();
+ }
+ public List<Name> getNames() {
+ return names;
+ }
+ public void addName(Name name) {
+ names.add(name);
+ }
+}