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 import java.sql.SQLException;
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.AfterAll;
27 import org.junit.jupiter.api.Assertions;
28 import org.junit.jupiter.api.BeforeAll;
29 import org.junit.jupiter.api.BeforeEach;
30 import org.junit.jupiter.api.Test;
31
32
33
34
35 class FooMapperTest {
36
37 private final static String SQL_MAP_CONFIG = "org/apache/ibatis/submitted/overwritingproperties/sqlmap.xml";
38 private static SqlSession session;
39 private static Connection conn;
40
41 @BeforeAll
42 static void setUpBeforeClass() throws Exception {
43 final SqlSessionFactory factory = new SqlSessionFactoryBuilder().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 testOverwriteWithDefault() {
60 final FooMapper mapper = session.getMapper(FooMapper.class);
61 final Barubmitted/overwritingproperties/Bar.html#Bar">Bar bar = new Bar(2L);
62 final Footed/overwritingproperties/Foo.html#Foo">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 try {
90 conn.close();
91 } catch (SQLException e) {
92 Assertions.fail(e.getMessage());
93 }
94 session.close();
95 }
96
97 }