1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.ibatis.submitted.complex_property;
17
18 import static org.junit.jupiter.api.Assertions.assertNotNull;
19
20 import java.io.Reader;
21 import java.util.Calendar;
22
23 import org.apache.ibatis.BaseDataTest;
24 import org.apache.ibatis.io.Resources;
25 import org.apache.ibatis.session.SqlSession;
26 import org.apache.ibatis.session.SqlSessionFactory;
27 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
28 import org.junit.jupiter.api.BeforeAll;
29 import org.junit.jupiter.api.Test;
30
31 class ComponentTest {
32 private static SqlSessionFactory sqlSessionFactory;
33
34 @BeforeAll
35 static void setup() throws Exception {
36 String resource = "org/apache/ibatis/submitted/complex_property/Configuration.xml";
37 Reader reader = Resources.getResourceAsReader(resource);
38 sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
39
40 BaseDataTest.runScript(sqlSessionFactory.getConfiguration().getEnvironment().getDataSource(),
41 "org/apache/ibatis/submitted/complex_property/db.sql");
42 }
43
44 @Test
45 void shouldInsertNestedPasswordFieldOfComplexType() {
46 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
47
48 User user = new User();
49 user.setId(500000L);
50 user.setPassword(new EncryptedString("secret"));
51 user.setUsername("johnny" + Calendar.getInstance().getTimeInMillis());
52 user.setAdministrator(true);
53
54 sqlSession.insert("User.insert", user);
55
56
57 user = sqlSession.selectOne("User.find", user.getId());
58
59 assertNotNull(user.getId());
60
61 sqlSession.rollback();
62 }
63 }
64
65 }