1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.ibatis.submitted.hashmaptypehandler;
17
18 import java.io.Reader;
19 import java.util.HashMap;
20
21 import org.apache.ibatis.BaseDataTest;
22 import org.apache.ibatis.io.Resources;
23 import org.apache.ibatis.session.SqlSession;
24 import org.apache.ibatis.session.SqlSessionFactory;
25 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
26 import org.junit.jupiter.api.Assertions;
27 import org.junit.jupiter.api.BeforeAll;
28 import org.junit.jupiter.api.Test;
29
30 class HashMapTypeHandlerTest {
31
32 private static SqlSessionFactory sqlSessionFactory;
33
34 @BeforeAll
35 static void setUp() throws Exception {
36
37 try (Reader reader = Resources
38 .getResourceAsReader("org/apache/ibatis/submitted/hashmaptypehandler/mybatis-config.xml")) {
39 sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
40 }
41
42
43 BaseDataTest.runScript(sqlSessionFactory.getConfiguration().getEnvironment().getDataSource(),
44 "org/apache/ibatis/submitted/hashmaptypehandler/CreateDB.sql");
45 }
46
47 @Test
48 void shouldNotApplyTypeHandlerToParamMap() {
49 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
50 Mapper mapper = sqlSession.getMapper(Mapper.class);
51 User user = mapper.getUser(1, "User1");
52 Assertions.assertEquals("User1", user.getName());
53 }
54 }
55
56 @Test
57 void shouldNotApplyTypeHandlerToParamMapXml() {
58 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
59 Mapper mapper = sqlSession.getMapper(Mapper.class);
60 User user = mapper.getUserXml(1, "User1");
61 Assertions.assertEquals("User1", user.getName());
62 }
63 }
64
65 @Test
66 void shouldApplyHashMapTypeHandler() {
67 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
68 Mapper mapper = sqlSession.getMapper(Mapper.class);
69 HashMap<String, String> map = new HashMap<>();
70 map.put("name", "User1");
71 User user = mapper.getUserWithTypeHandler(map);
72 Assertions.assertNotNull(user);
73 }
74 }
75
76 @Test
77 void shouldApplyHashMapTypeHandlerXml() {
78 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
79 Mapper mapper = sqlSession.getMapper(Mapper.class);
80 HashMap<String, String> map = new HashMap<>();
81 map.put("name", "User1");
82 map.put("dummy", "NoSuchUser");
83 User user = mapper.getUserWithTypeHandlerXml(map);
84 Assertions.assertNotNull(user);
85 }
86 }
87 }