1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.ibatis.submitted.overwritingproperties;
17
18 import java.sql.Connection;
19
20 import org.apache.ibatis.BaseDataTest;
21 import org.apache.ibatis.io.Resources;
22 import org.apache.ibatis.session.SqlSession;
23 import org.apache.ibatis.session.SqlSessionFactory;
24 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
25 import org.junit.jupiter.api.AfterAll;
26 import org.junit.jupiter.api.Assertions;
27 import org.junit.jupiter.api.BeforeAll;
28 import org.junit.jupiter.api.BeforeEach;
29 import org.junit.jupiter.api.Test;
30
31
32
33
34 class FooMapperTest {
35
36 private static final String SQL_MAP_CONFIG = "org/apache/ibatis/submitted/overwritingproperties/sqlmap.xml";
37 private static SqlSession session;
38 private static Connection conn;
39
40 @BeforeAll
41 static void setUpBeforeClass() throws Exception {
42 final SqlSessionFactory factory = new SqlSessionFactoryBuilder()
43 .build(Resources.getResourceAsReader(SQL_MAP_CONFIG));
44 session = factory.openSession();
45 conn = session.getConnection();
46
47 BaseDataTest.runScript(factory.getConfiguration().getEnvironment().getDataSource(),
48 "org/apache/ibatis/submitted/overwritingproperties/create-schema-mysql.sql");
49 }
50
51 @BeforeEach
52 void setUp() {
53 final FooMapper mapper = session.getMapper(FooMapper.class);
54 mapper.deleteAllFoo();
55 session.commit();
56 }
57
58 @Test
59 void overwriteWithDefault() {
60 final FooMapper mapper = session.getMapper(FooMapper.class);
61 final Bar bar = new Bar(2L);
62 final Foo inserted = new Foo(1L, bar, 3, 4);
63 mapper.insertFoo(inserted);
64
65 final Foo selected = mapper.selectFoo();
66
67
68
69 Assertions.assertEquals(inserted.getField1(), selected.getField1());
70
71
72
73 Assertions.assertEquals(inserted.getField3(), selected.getField4());
74
75
76
77 Assertions.assertEquals(inserted.getField4(), selected.getField3());
78
79
80
81
82
83
84 Assertions.assertEquals(inserted.getField2().getField1(), selected.getField2().getField1());
85 }
86
87 @AfterAll
88 static void tearDownAfterClass() {
89 Assertions.assertDoesNotThrow(() -> {
90 conn.close();
91 });
92 session.close();
93 }
94
95 }