15
15
*/
16
16
package org .mybatis .spring .filter ;
17
17
18
+ import static org .assertj .core .api .Assertions .assertThat ;
19
+ import static org .junit .jupiter .api .Assertions .assertThrows ;
20
+
18
21
import com .mockrunner .mock .jdbc .MockDataSource ;
22
+
19
23
import org .junit .jupiter .api .Test ;
20
24
import org .mybatis .spring .SqlSessionFactoryBean ;
21
25
import org .mybatis .spring .filter .config .AppConfig ;
22
26
import org .springframework .beans .factory .support .GenericBeanDefinition ;
23
27
import org .springframework .context .annotation .AnnotationConfigApplicationContext ;
24
28
25
- import static org .assertj .core .api .Assertions .assertThat ;
26
- import static org .junit .jupiter .api .Assertions .assertThrows ;
27
-
28
29
/**
29
30
* test the function of excludeFilters in @MapperScan
30
31
*/
31
32
public class ScanFilterTest {
32
33
33
34
private AnnotationConfigApplicationContext applicationContext ;
34
35
35
-
36
36
@ Test
37
37
void testCustomScanFilter () {
38
38
startContext (AppConfig .CustomFilterConfig .class );
39
- // use org.mybatis.spring.scan.filter.datasource as basePackages and exclude package datasource2 by MapperScan.excludeFilters
39
+ // use org.mybatis.spring.scan.filter.datasource as basePackages and exclude package datasource2 by
40
+ // MapperScan.excludeFilters
40
41
// mapper in package datasource2 will not be registered to beanFactory
41
- assertThat (applicationContext .containsBean ("dataSource2Mapper" )).isEqualTo ( false );
42
+ assertThat (applicationContext .containsBean ("dataSource2Mapper" )).isFalse ( );
42
43
43
44
// mapper in package datasource except datasource2 will be registered to beanFactory correctly.
44
- assertThat (applicationContext .containsBean ("commonDataSourceMapper" )).isEqualTo ( true );
45
- assertThat (applicationContext .containsBean ("dataSource1Mapper" )).isEqualTo ( true );
45
+ assertThat (applicationContext .containsBean ("commonDataSourceMapper" )).isTrue ( );
46
+ assertThat (applicationContext .containsBean ("dataSource1Mapper" )).isTrue ( );
46
47
}
47
48
48
49
@ Test
49
50
void testAnnoScanFilter () {
50
51
startContext (AppConfig .AnnoFilterConfig .class );
51
52
52
53
// use @AnnoTypeFilter to exclude mapper
53
- assertThat (applicationContext .containsBean ("annoExcludeMapper" )).isEqualTo ( false );
54
+ assertThat (applicationContext .containsBean ("annoExcludeMapper" )).isFalse ( );
54
55
55
56
// mapper in package datasource except datasource2 will be registered to beanFactory correctly.
56
- assertThat (applicationContext .containsBean ("commonDataSourceMapper" )).isEqualTo ( true );
57
- assertThat (applicationContext .containsBean ("dataSource1Mapper" )).isEqualTo ( true );
58
- assertThat (applicationContext .containsBean ("dataSource2Mapper" )).isEqualTo ( true );
57
+ assertThat (applicationContext .containsBean ("commonDataSourceMapper" )).isTrue ( );
58
+ assertThat (applicationContext .containsBean ("dataSource1Mapper" )).isTrue ( );
59
+ assertThat (applicationContext .containsBean ("dataSource2Mapper" )).isTrue ( );
59
60
}
60
61
61
-
62
62
@ Test
63
63
void testAssignableScanFilter () {
64
64
startContext (AppConfig .AssignableFilterConfig .class );
65
65
66
66
// exclude AssignableMapper by AssignableFilter
67
- assertThat (applicationContext .containsBean ("assignableMapper" )).isEqualTo ( false );
67
+ assertThat (applicationContext .containsBean ("assignableMapper" )).isFalse ( );
68
68
69
69
// mapper in package datasource except datasource2 will be registered to beanFactory correctly.
70
- assertThat (applicationContext .containsBean ("commonDataSourceMapper" )).isEqualTo ( true );
71
- assertThat (applicationContext .containsBean ("dataSource1Mapper" )).isEqualTo ( true );
72
- assertThat (applicationContext .containsBean ("dataSource2Mapper" )).isEqualTo ( true );
70
+ assertThat (applicationContext .containsBean ("commonDataSourceMapper" )).isTrue ( );
71
+ assertThat (applicationContext .containsBean ("dataSource1Mapper" )).isTrue ( );
72
+ assertThat (applicationContext .containsBean ("dataSource2Mapper" )).isTrue ( );
73
73
}
74
74
75
75
@ Test
76
76
void testRegexScanFilter () {
77
77
startContext (AppConfig .RegexFilterConfig .class );
78
78
79
79
// exclude package datasource1 by Regex
80
- assertThat (applicationContext .containsBean ("dataSource1Mapper" )).isEqualTo ( false );
80
+ assertThat (applicationContext .containsBean ("dataSource1Mapper" )).isFalse ( );
81
81
82
82
// mapper in package datasource except datasource1 will be registered to beanFactory correctly.
83
- assertThat (applicationContext .containsBean ("commonDataSourceMapper" )).isEqualTo ( true );
84
- assertThat (applicationContext .containsBean ("dataSource2Mapper" )).isEqualTo ( true );
83
+ assertThat (applicationContext .containsBean ("commonDataSourceMapper" )).isTrue ( );
84
+ assertThat (applicationContext .containsBean ("dataSource2Mapper" )).isTrue ( );
85
85
}
86
86
87
87
@ Test
@@ -90,42 +90,40 @@ void testAspectJScanFilter() {
90
90
startContext (AppConfig .AspectJFilterConfig .class );
91
91
92
92
// exclude dataSource1Mapper by AspectJ
93
- assertThat (applicationContext .containsBean ("dataSource1Mapper" )).isEqualTo ( false );
93
+ assertThat (applicationContext .containsBean ("dataSource1Mapper" )).isFalse ( );
94
94
95
95
// mapper in package datasource except datasource1 will be registered to beanFactory correctly.
96
- assertThat (applicationContext .containsBean ("commonDataSourceMapper" )).isEqualTo ( true );
97
- assertThat (applicationContext .containsBean ("dataSource2Mapper" )).isEqualTo ( true );
96
+ assertThat (applicationContext .containsBean ("commonDataSourceMapper" )).isTrue ( );
97
+ assertThat (applicationContext .containsBean ("dataSource2Mapper" )).isTrue ( );
98
98
}
99
99
100
-
101
100
@ Test
102
101
void combinedScanFilter () {
103
102
// combined filter with Custom and Annotation
104
103
startContext (AppConfig .CombinedFilterConfig .class );
105
104
106
105
// exclude datasource2.DataSource2Mapper by CustomTypeFilter
107
- assertThat (applicationContext .containsBean ("dataSource2Mapper" )).isEqualTo ( false );
106
+ assertThat (applicationContext .containsBean ("dataSource2Mapper" )).isFalse ( );
108
107
// exclude datasource1.MapperWithAnnoFilter by AnnoTypeFilter
109
- assertThat (applicationContext .containsBean ("mapperWithAnnoFilter" )).isEqualTo ( false );
108
+ assertThat (applicationContext .containsBean ("mapperWithAnnoFilter" )).isFalse ( );
110
109
111
110
// other mapper could be registered to beanFactory correctly.
112
- assertThat (applicationContext .containsBean ("commonDataSourceMapper" )).isEqualTo ( true );
113
- assertThat (applicationContext .containsBean ("dataSource1Mapper" )).isEqualTo ( true );
111
+ assertThat (applicationContext .containsBean ("commonDataSourceMapper" )).isTrue ( );
112
+ assertThat (applicationContext .containsBean ("dataSource1Mapper" )).isTrue ( );
114
113
}
115
114
116
-
117
115
@ Test
118
116
void multiPatternRegexScanFilter () {
119
117
// multi pattern regex filter
120
118
startContext (AppConfig .MultiPatternRegexFilterConfig .class );
121
119
122
120
// exclude datasource1 by pattern[0]
123
- assertThat (applicationContext .containsBean ("dataSource1Mapper" )).isEqualTo ( false );
121
+ assertThat (applicationContext .containsBean ("dataSource1Mapper" )).isFalse ( );
124
122
// exclude datasource2 by pattern[1]
125
- assertThat (applicationContext .containsBean ("dataSource2Mapper" )).isEqualTo ( false );
123
+ assertThat (applicationContext .containsBean ("dataSource2Mapper" )).isFalse ( );
126
124
127
125
// other mapper could be registered to beanFactory correctly.
128
- assertThat (applicationContext .containsBean ("commonDataSourceMapper" )).isEqualTo ( true );
126
+ assertThat (applicationContext .containsBean ("commonDataSourceMapper" )).isTrue ( );
129
127
}
130
128
131
129
@ Test
@@ -134,36 +132,32 @@ void multiPatternAspectJScanFilter() {
134
132
startContext (AppConfig .MultiPatternAspectJFilterConfig .class );
135
133
136
134
// exclude datasource1 by pattern[0]
137
- assertThat (applicationContext .containsBean ("dataSource1Mapper" )).isEqualTo ( false );
135
+ assertThat (applicationContext .containsBean ("dataSource1Mapper" )).isFalse ( );
138
136
// exclude datasource2 by pattern[1]
139
- assertThat (applicationContext .containsBean ("dataSource2Mapper" )).isEqualTo ( false );
137
+ assertThat (applicationContext .containsBean ("dataSource2Mapper" )).isFalse ( );
140
138
141
139
// other mapper could be registered to beanFactory correctly.
142
- assertThat (applicationContext .containsBean ("commonDataSourceMapper" )).isEqualTo ( true );
143
- assertThat (applicationContext .containsBean ("dataSource2Mapper1" )).isEqualTo ( true );
140
+ assertThat (applicationContext .containsBean ("commonDataSourceMapper" )).isTrue ( );
141
+ assertThat (applicationContext .containsBean ("dataSource2Mapper1" )).isTrue ( );
144
142
}
145
143
146
-
147
144
@ Test
148
145
void invalidTypeFilter () {
149
146
// invalid value using Annotation type filter
150
- assertThrows (IllegalArgumentException .class ,
151
- () -> startContext (AppConfig .InvalidFilterTypeConfig .class ));
147
+ assertThrows (IllegalArgumentException .class , () -> startContext (AppConfig .InvalidFilterTypeConfig .class ));
152
148
}
153
149
154
150
@ Test
155
151
void invalidPropertyPattern () {
156
- assertThrows (IllegalArgumentException .class ,
157
- () -> startContext (AppConfig .AnnoTypeWithPatternPropertyConfig .class ));
152
+ assertThrows (IllegalArgumentException .class , () -> startContext (AppConfig .AnnoTypeWithPatternPropertyConfig .class ));
158
153
}
159
154
160
155
@ Test
161
156
void invalidPropertyClasses () {
162
157
assertThrows (IllegalArgumentException .class ,
163
- () -> startContext (AppConfig .RegexTypeWithClassesPropertyConfig .class ));
158
+ () -> startContext (AppConfig .RegexTypeWithClassesPropertyConfig .class ));
164
159
}
165
160
166
-
167
161
private void startContext (Class <?> config ) {
168
162
applicationContext = new AnnotationConfigApplicationContext ();
169
163
// use @MapperScan with excludeFilters in AppConfig.class
@@ -173,7 +167,6 @@ private void startContext(Class<?> config) {
173
167
applicationContext .start ();
174
168
}
175
169
176
-
177
170
private void setupSqlSessionFactory (String name ) {
178
171
GenericBeanDefinition definition = new GenericBeanDefinition ();
179
172
definition .setBeanClass (SqlSessionFactoryBean .class );
0 commit comments