1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.ibatis.submitted.multipleresultsetswithassociation;
17
18 import java.io.Reader;
19 import java.sql.Connection;
20 import java.util.List;
21
22 import org.apache.ibatis.io.Resources;
23 import org.apache.ibatis.jdbc.ScriptRunner;
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.Assertions;
28 import org.junit.jupiter.api.BeforeAll;
29 import org.junit.jupiter.api.Test;
30
31
32
33
34
35
36 class MultipleResultSetTest {
37
38 private static SqlSessionFactory sqlSessionFactory;
39
40 @BeforeAll
41 static void setUp() throws Exception {
42 try (Reader reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/multipleresultsetswithassociation/mybatis-config.xml")) {
43 sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
44 }
45
46
47
48
49 try (SqlSession session = sqlSessionFactory.openSession();
50 Connection conn = session.getConnection()) {
51 try (Reader reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/multipleresultsetswithassociation/CreateDB1.sql")) {
52 runReaderScript(conn, reader);
53 }
54 try (Reader reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/multipleresultsetswithassociation/CreateDB2.sql")) {
55 runReaderScript(conn, reader);
56 }
57 try (Reader reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/multipleresultsetswithassociation/CreateDB3.sql")) {
58 runReaderScript(conn, reader);
59 }
60 }
61 }
62
63 private static void runReaderScript(Connection conn, Reader reader) {
64 ScriptRunner runner = new ScriptRunner(conn);
65 runner.setLogWriter(null);
66 runner.setSendFullScript(true);
67 runner.setAutoCommit(true);
68 runner.setStopOnError(false);
69 runner.runScript(reader);
70 }
71
72 @Test
73 void shouldGetOrderDetailsEachHavingAnOrderHeader() {
74 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
75 Mapper mapper = sqlSession.getMapper(Mapper.class);
76 List<OrderDetail> orderDetails = mapper.getOrderDetailsWithHeaders();
77
78
79
80 Assertions.assertEquals(6, orderDetails.size());
81
82
83
84 for(OrderDetail orderDetail : orderDetails){
85 Assertions.assertNotNull(orderDetail.getOrderHeader());
86 }
87 }
88 }
89
90 @Test
91 void shouldGetOrderDetailsEachHavingAnOrderHeaderAnnotationBased() {
92 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
93 Mapper mapper = sqlSession.getMapper(Mapper.class);
94 List<OrderDetail> orderDetails = mapper.getOrderDetailsWithHeadersAnnotationBased();
95
96
97
98 Assertions.assertEquals(6, orderDetails.size());
99
100
101
102 for(OrderDetail orderDetail : orderDetails){
103 Assertions.assertNotNull(orderDetail.getOrderHeader());
104 }
105 }
106 }
107
108 }