diff --git a/src/test/java/org/apache/ibatis/submitted/associationtype/AssociationTypeTest.java b/src/test/java/org/apache/ibatis/submitted/associationtype/AssociationTypeTest.java index 0154a776638..14b92a65d02 100644 --- a/src/test/java/org/apache/ibatis/submitted/associationtype/AssociationTypeTest.java +++ b/src/test/java/org/apache/ibatis/submitted/associationtype/AssociationTypeTest.java @@ -21,12 +21,14 @@ import org.apache.ibatis.BaseDataTest; import org.apache.ibatis.io.Resources; +import org.apache.ibatis.session.LocalCacheScope; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; class AssociationTypeTest { @@ -45,14 +47,22 @@ static void setUp() throws Exception { "org/apache/ibatis/submitted/associationtype/CreateDB.sql"); } - @Test - void shouldGetAUser() { + @ParameterizedTest + @EnumSource + void shouldGetAUser(LocalCacheScope localCacheScope) { + sqlSessionFactory.getConfiguration().setLocalCacheScope(localCacheScope); try (SqlSession sqlSession = sqlSessionFactory.openSession()) { - List results = sqlSession.selectList("getUser"); - for (Map r : results) { - Assertions.assertEquals(String.class, r.get("a1").getClass()); - Assertions.assertEquals(String.class, r.get("a2").getClass()); + List> results = sqlSession.selectList("getUser"); + for (Map r : results) { + Object a1 = r.get("a1"); + Object a2 = r.get("a2"); + Assertions.assertEquals(String.class, a1.getClass()); + Assertions.assertEquals(String.class, a2.getClass()); + Assertions.assertSame(a1, a2, "The result should be put into local cache regardless of localCacheScope setting."); } + } finally { + // Reset the scope for other tests + sqlSessionFactory.getConfiguration().setLocalCacheScope(LocalCacheScope.SESSION); } } diff --git a/src/test/java/org/apache/ibatis/submitted/permissions/PermissionsTest.java b/src/test/java/org/apache/ibatis/submitted/permissions/PermissionsTest.java index af96041ebeb..3de556f9665 100644 --- a/src/test/java/org/apache/ibatis/submitted/permissions/PermissionsTest.java +++ b/src/test/java/org/apache/ibatis/submitted/permissions/PermissionsTest.java @@ -20,12 +20,15 @@ import org.apache.ibatis.BaseDataTest; import org.apache.ibatis.io.Resources; +import org.apache.ibatis.session.LocalCacheScope; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; class PermissionsTest { @@ -66,8 +69,10 @@ void checkNestedResultMapLoop() { } } - @Test - void checkNestedSelectLoop() { + @ParameterizedTest + @EnumSource + void checkNestedSelectLoop(LocalCacheScope localCacheScope) { + sqlSessionFactory.getConfiguration().setLocalCacheScope(localCacheScope); try (SqlSession sqlSession = sqlSessionFactory.openSession()) { final PermissionsMapper mapper = sqlSession.getMapper(PermissionsMapper.class); @@ -93,6 +98,9 @@ void checkNestedSelectLoop() { if (!readFound) { Assertions.fail(); } + } finally { + // Reset the scope for other tests + sqlSessionFactory.getConfiguration().setLocalCacheScope(LocalCacheScope.SESSION); } }