Skip to content

Commit 232ae0a

Browse files
committed
Close #411 with a test case. See the previous commit [263b47e] .
1 parent 656cb58 commit 232ae0a

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

src/test/java/org/apache/ibatis/submitted/foreach/ForEachTest.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,28 @@
1818
import java.io.Reader;
1919
import java.sql.Connection;
2020
import java.util.ArrayList;
21+
import java.util.Arrays;
2122
import java.util.List;
2223

24+
import org.apache.ibatis.exceptions.PersistenceException;
2325
import org.apache.ibatis.io.Resources;
2426
import org.apache.ibatis.jdbc.ScriptRunner;
2527
import org.apache.ibatis.session.SqlSession;
2628
import org.apache.ibatis.session.SqlSessionFactory;
2729
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
2830
import org.junit.Assert;
2931
import org.junit.BeforeClass;
32+
import org.junit.Rule;
3033
import org.junit.Test;
34+
import org.junit.rules.ExpectedException;
3135

3236
public class ForEachTest {
3337

3438
private static SqlSessionFactory sqlSessionFactory;
3539

40+
@Rule
41+
public ExpectedException ex = ExpectedException.none();
42+
3643
@BeforeClass
3744
public static void setUp() throws Exception {
3845
// create a SqlSessionFactory
@@ -124,4 +131,18 @@ public void nullItemInContext() {
124131
}
125132
}
126133

134+
@Test
135+
public void shouldReportMissingPropertyName() {
136+
ex.expect(PersistenceException.class);
137+
ex.expectMessage("There is no getter for property named 'idd' in 'class org.apache.ibatis.submitted.foreach.User'");
138+
139+
SqlSession sqlSession = sqlSessionFactory.openSession();
140+
try {
141+
Mapper mapper = sqlSession.getMapper(Mapper.class);
142+
mapper.typoInItemProperty(Arrays.asList(new User()));
143+
} finally {
144+
sqlSession.close();
145+
}
146+
}
147+
127148
}

src/test/java/org/apache/ibatis/submitted/foreach/Mapper.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,5 @@ public interface Mapper {
2727

2828
String selectWithNullItemCheck(List<User> users);
2929

30+
int typoInItemProperty(List<User> users);
3031
}

src/test/java/org/apache/ibatis/submitted/foreach/Mapper.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,11 @@
6262
</where>
6363
</select>
6464

65+
<insert id="typoInItemProperty">
66+
insert into users (id, name) values
67+
<foreach item="item" collection="list" separator=",">
68+
(#{item.idd}, #{item.name})
69+
</foreach>
70+
</insert>
71+
6572
</mapper>

0 commit comments

Comments
 (0)