1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.ibatis.submitted.associationtest;
17
18 import java.io.Reader;
19 import java.util.List;
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.Assertions;
27 import org.junit.jupiter.api.BeforeAll;
28 import org.junit.jupiter.api.Test;
29
30 class AssociationTest {
31
32 private static SqlSessionFactory sqlSessionFactory;
33
34 @BeforeAll
35 static void setUp() throws Exception {
36
37 try (Reader reader = Resources
38 .getResourceAsReader("org/apache/ibatis/submitted/associationtest/mybatis-config.xml")) {
39 sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
40 }
41
42
43 BaseDataTest.runScript(sqlSessionFactory.getConfiguration().getEnvironment().getDataSource(),
44 "org/apache/ibatis/submitted/associationtest/CreateDB.sql");
45 }
46
47 @Test
48 void shouldGetAllCars() {
49 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
50 Mapper mapper = sqlSession.getMapper(Mapper.class);
51 List<Car> cars = mapper.getCars();
52 Assertions.assertEquals(4, cars.size());
53 Assertions.assertEquals("VW", cars.get(0).getType());
54 Assertions.assertNotNull(cars.get(0).getEngine());
55 Assertions.assertNull(cars.get(0).getBrakes());
56 Assertions.assertEquals("Opel", cars.get(1).getType());
57 Assertions.assertNull(cars.get(1).getEngine());
58 Assertions.assertNotNull(cars.get(1).getBrakes());
59 }
60 }
61
62 @Test
63 void shouldGetOneCarWithOneEngineAndBrakes() {
64 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
65 Mapper mapper = sqlSession.getMapper(Mapper.class);
66 List<Car> cars = mapper.getCars2();
67 Assertions.assertEquals(1, cars.size());
68 Assertions.assertNotNull(cars.get(0).getEngine());
69 Assertions.assertNotNull(cars.get(0).getBrakes());
70 }
71 }
72
73 @Test
74 void shouldGetAllCarsNonUnique() {
75
76
77 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
78 Mapper mapper = sqlSession.getMapper(Mapper.class);
79 List<Car> cars = mapper.getCars2();
80 Assertions.assertEquals(1, cars.size());
81 }
82 }
83
84 @Test
85 void shouldGetAllCarsAndDetectAssociationType() {
86 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
87 Mapper mapper = sqlSession.getMapper(Mapper.class);
88 List<Car> cars = mapper.getCarsAndDetectAssociationType();
89 Assertions.assertEquals(4, cars.size());
90 Assertions.assertEquals("VW", cars.get(0).getType());
91 Assertions.assertNotNull(cars.get(0).getEngine());
92 Assertions.assertNull(cars.get(0).getBrakes());
93 Assertions.assertEquals("Opel", cars.get(1).getType());
94 Assertions.assertNull(cars.get(1).getEngine());
95 Assertions.assertNotNull(cars.get(1).getBrakes());
96 }
97 }
98
99 }