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.getResourceAsReader("org/apache/ibatis/submitted/associationtest/mybatis-config.xml")) {
38 sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
39 }
40
41
42 BaseDataTest.runScript(sqlSessionFactory.getConfiguration().getEnvironment().getDataSource(),
43 "org/apache/ibatis/submitted/associationtest/CreateDB.sql");
44 }
45
46 @Test
47 void shouldGetAllCars() {
48 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
49 Mapper mapper = sqlSession.getMapper(Mapper.class);
50 List<Car> cars = mapper.getCars();
51 Assertions.assertEquals(4, cars.size());
52 Assertions.assertEquals("VW", cars.get(0).getType());
53 Assertions.assertNotNull(cars.get(0).getEngine());
54 Assertions.assertNull(cars.get(0).getBrakes());
55 Assertions.assertEquals("Opel", cars.get(1).getType());
56 Assertions.assertNull(cars.get(1).getEngine());
57 Assertions.assertNotNull(cars.get(1).getBrakes());
58 }
59 }
60
61 @Test
62 void shouldGetOneCarWithOneEngineAndBrakes() {
63 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
64 Mapper mapper = sqlSession.getMapper(Mapper.class);
65 List<Car> cars = mapper.getCars2();
66 Assertions.assertEquals(1, cars.size());
67 Assertions.assertNotNull(cars.get(0).getEngine());
68 Assertions.assertNotNull(cars.get(0).getBrakes());
69 }
70 }
71
72 @Test
73 void shouldGetAllCarsNonUnique() {
74
75
76 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
77 Mapper mapper = sqlSession.getMapper(Mapper.class);
78 List<Car> cars = mapper.getCars2();
79 Assertions.assertEquals(1, cars.size());
80 }
81 }
82
83 @Test
84 void shouldGetAllCarsAndDetectAssociationType() {
85 try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
86 Mapper mapper = sqlSession.getMapper(Mapper.class);
87 List<Car> cars = mapper.getCarsAndDetectAssociationType();
88 Assertions.assertEquals(4, cars.size());
89 Assertions.assertEquals("VW", cars.get(0).getType());
90 Assertions.assertNotNull(cars.get(0).getEngine());
91 Assertions.assertNull(cars.get(0).getBrakes());
92 Assertions.assertEquals("Opel", cars.get(1).getType());
93 Assertions.assertNull(cars.get(1).getEngine());
94 Assertions.assertNotNull(cars.get(1).getBrakes());
95 }
96 }
97
98 }