1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.ibatis.submitted.multidb;
17
18 import static org.junit.jupiter.api.Assertions.assertEquals;
19
20 import java.io.Reader;
21
22 import org.apache.ibatis.BaseDataTest;
23 import org.apache.ibatis.io.Resources;
24 import org.apache.ibatis.session.SqlSession;
25 import org.apache.ibatis.session.SqlSessionFactory;
26 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
27 import org.junit.jupiter.api.BeforeAll;
28 import org.junit.jupiter.api.Test;
29
30 class MultiDbTest {
31
32 protected static SqlSessionFactory sqlSessionFactory;
33 protected static SqlSessionFactory sqlSessionFactory2;
34
35 @BeforeAll
36 static void setUp() throws Exception {
37 try (Reader reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/multidb/MultiDbConfig.xml")) {
38 sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
39 }
40
41 BaseDataTest.runScript(sqlSessionFactory.getConfiguration().getEnvironment().getDataSource(),
42 "org/apache/ibatis/submitted/multidb/CreateDB.sql");
43 }
44
45 @Test
46 void shouldExecuteHsqlQuery() {
47 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
48 MultiDbMapper mapper = sqlSession.getMapper(MultiDbMapper.class);
49 String answer = mapper.select1(1);
50 assertEquals("hsql", answer);
51 }
52 }
53
54 @Test
55 void shouldExecuteCommonQuery() {
56 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
57 MultiDbMapper mapper = sqlSession.getMapper(MultiDbMapper.class);
58 String answer = mapper.select2(1);
59 assertEquals("common", answer);
60 }
61 }
62
63 @Test
64 void shouldExecuteHsqlQueryWithDynamicIf() {
65 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
66 MultiDbMapper mapper = sqlSession.getMapper(MultiDbMapper.class);
67 String answer = mapper.select3(1);
68 assertEquals("hsql", answer);
69 }
70 }
71
72 @Test
73 void shouldExecuteHsqlQueryWithInclude() {
74 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
75 MultiDbMapper mapper = sqlSession.getMapper(MultiDbMapper.class);
76 String answer = mapper.select4(1);
77 assertEquals("hsql", answer);
78 }
79 }
80
81 @Test
82 void shouldInsertInCommonWithSelectKey() {
83 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
84 MultiDbMapper mapper = sqlSession.getMapper(MultiDbMapper.class);
85 mapper.insert(new User(2, "test"));
86 String answer = mapper.select2(1);
87 assertEquals("common", answer);
88 }
89 }
90
91 @Test
92 void shouldInsertInCommonWithSelectKey2() {
93 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
94 MultiDbMapper mapper = sqlSession.getMapper(MultiDbMapper.class);
95 mapper.insert2(new User(2, "test"));
96 String answer = mapper.select2(1);
97 assertEquals("common", answer);
98 }
99 }
100
101 }