From d95dc4daf1a08712936386d356bd5eb664d6080d Mon Sep 17 00:00:00 2001 From: Kazuki Shimizu Date: Fri, 20 Mar 2020 01:08:41 +0900 Subject: [PATCH] Add test for Configuration#useActualParamName is false Related with gh-1237 --- .../ActualParamNameTest.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/test/java/org/apache/ibatis/submitted/param_name_resolve/ActualParamNameTest.java b/src/test/java/org/apache/ibatis/submitted/param_name_resolve/ActualParamNameTest.java index 2d0af704a4d..dc321c13a6b 100644 --- a/src/test/java/org/apache/ibatis/submitted/param_name_resolve/ActualParamNameTest.java +++ b/src/test/java/org/apache/ibatis/submitted/param_name_resolve/ActualParamNameTest.java @@ -16,6 +16,7 @@ package org.apache.ibatis.submitted.param_name_resolve; import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.exceptions.PersistenceException; import org.apache.ibatis.io.Resources; import org.apache.ibatis.jdbc.ScriptRunner; import org.apache.ibatis.session.SqlSession; @@ -30,6 +31,7 @@ import java.util.List; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; class ActualParamNameTest { @@ -56,6 +58,7 @@ static void setUp() throws Exception { @Test void testSingleListParameterWhenUseActualParamNameIsTrue() { + sqlSessionFactory.getConfiguration().setUseActualParamName(true); try (SqlSession sqlSession = sqlSessionFactory.openSession()) { Mapper mapper = sqlSession.getMapper(Mapper.class); // use actual name @@ -78,6 +81,7 @@ void testSingleListParameterWhenUseActualParamNameIsTrue() { @Test void testSingleArrayParameterWhenUseActualParamNameIsTrue() { + sqlSessionFactory.getConfiguration().setUseActualParamName(true); try (SqlSession sqlSession = sqlSessionFactory.openSession()) { Mapper mapper = sqlSession.getMapper(Mapper.class); // use actual name @@ -93,6 +97,33 @@ void testSingleArrayParameterWhenUseActualParamNameIsTrue() { } } + @Test + void testSingleListParameterWhenUseActualParamNameIsFalse() { + sqlSessionFactory.getConfiguration().setUseActualParamName(false); + try (SqlSession sqlSession = sqlSessionFactory.openSession()) { + Mapper mapper = sqlSession.getMapper(Mapper.class); + // use actual name -> no available and index parameter("0") is not available too + { + try { + mapper.getUserCountUsingList(Arrays.asList(1, 2)); + fail(); + } catch (PersistenceException e) { + assertEquals("Parameter 'ids' not found. Available parameters are [collection, list]", e.getCause().getMessage()); + } + } + // use 'collection' as alias + { + long count = mapper.getUserCountUsingListWithAliasIsCollection(Arrays.asList(1, 2)); + assertEquals(2, count); + } + // use 'list' as alias + { + long count = mapper.getUserCountUsingListWithAliasIsList(Arrays.asList(1, 2)); + assertEquals(2, count); + } + } + } + interface Mapper { @Select({ "