diff --git a/src/test/java/org/apache/ibatis/submitted/param_name_resolve/CreateDB.sql b/src/test/java/org/apache/ibatis/submitted/param_name_resolve/CreateDB.sql new file mode 100644 index 00000000000..d5b2c1ea6e9 --- /dev/null +++ b/src/test/java/org/apache/ibatis/submitted/param_name_resolve/CreateDB.sql @@ -0,0 +1,25 @@ +-- +-- Copyright 2009-2016 the original author or authors. +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- + +drop table users if exists; + +create table users ( + id int, + name varchar(20) +); + +insert into users (id, name) values +(1, 'User1'), (2, 'User2'), (3, 'User3'); diff --git a/src/test/java/org/apache/ibatis/submitted/param_name_resolve/Mapper.java b/src/test/java/org/apache/ibatis/submitted/param_name_resolve/Mapper.java new file mode 100644 index 00000000000..7f12c11cd2d --- /dev/null +++ b/src/test/java/org/apache/ibatis/submitted/param_name_resolve/Mapper.java @@ -0,0 +1,7 @@ +package org.apache.ibatis.submitted.param_name_resolve; + +import java.util.List; + +public interface Mapper { + Long getUserCount(List ids); +} diff --git a/src/test/java/org/apache/ibatis/submitted/param_name_resolve/Mapper.xml b/src/test/java/org/apache/ibatis/submitted/param_name_resolve/Mapper.xml new file mode 100644 index 00000000000..fa2dea6dac4 --- /dev/null +++ b/src/test/java/org/apache/ibatis/submitted/param_name_resolve/Mapper.xml @@ -0,0 +1,35 @@ + + + + + + + + + + diff --git a/src/test/java/org/apache/ibatis/submitted/param_name_resolve/ParamNameResolveTest.java b/src/test/java/org/apache/ibatis/submitted/param_name_resolve/ParamNameResolveTest.java new file mode 100644 index 00000000000..1d8c0bd951b --- /dev/null +++ b/src/test/java/org/apache/ibatis/submitted/param_name_resolve/ParamNameResolveTest.java @@ -0,0 +1,50 @@ +package org.apache.ibatis.submitted.param_name_resolve; + +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; + +import java.io.Reader; +import java.sql.Connection; +import java.util.Arrays; + +import static org.junit.Assert.assertEquals; + +public class ParamNameResolveTest { + private static SqlSessionFactory sqlSessionFactory; + + @BeforeClass + public static void setUp() throws Exception { + // create an SqlSessionFactory + Reader reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/param_name_resolve/mybatis-config.xml"); + sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); + reader.close(); + + // populate in-memory database + SqlSession session = sqlSessionFactory.openSession(); + Connection conn = session.getConnection(); + reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/param_name_resolve/CreateDB.sql"); + ScriptRunner runner = new ScriptRunner(conn); + runner.setLogWriter(null); + runner.runScript(reader); + conn.close(); + reader.close(); + session.close(); + } + + @Test + public void testSingleParameter() { + SqlSession sqlSession = sqlSessionFactory.openSession(); + try { + Mapper mapper = sqlSession.getMapper(Mapper.class); + long count = mapper.getUserCount(Arrays.asList(1, 2)); + assertEquals(2, count); + } finally { + sqlSession.close(); + } + } +} diff --git a/src/test/java/org/apache/ibatis/submitted/param_name_resolve/User.java b/src/test/java/org/apache/ibatis/submitted/param_name_resolve/User.java new file mode 100644 index 00000000000..fb95f8075b5 --- /dev/null +++ b/src/test/java/org/apache/ibatis/submitted/param_name_resolve/User.java @@ -0,0 +1,22 @@ +package org.apache.ibatis.submitted.param_name_resolve; + +public class User { + private int id; + private String name; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/src/test/java/org/apache/ibatis/submitted/param_name_resolve/mybatis-config.xml b/src/test/java/org/apache/ibatis/submitted/param_name_resolve/mybatis-config.xml new file mode 100644 index 00000000000..45512c05fed --- /dev/null +++ b/src/test/java/org/apache/ibatis/submitted/param_name_resolve/mybatis-config.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + +