@@ -68,18 +68,20 @@ class InstanceSupplierCodeGeneratorTests {
68
68
69
69
private final TestGenerationContext generationContext ;
70
70
71
+ private final DefaultListableBeanFactory beanFactory ;
72
+
71
73
72
74
InstanceSupplierCodeGeneratorTests () {
73
75
this .generationContext = new TestGenerationContext ();
76
+ this .beanFactory = new DefaultListableBeanFactory ();
74
77
}
75
78
76
79
77
80
@ Test
78
81
void generateWhenHasDefaultConstructor () {
79
82
BeanDefinition beanDefinition = new RootBeanDefinition (TestBean .class );
80
- DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory ();
81
- compile (beanFactory , beanDefinition , (instanceSupplier , compiled ) -> {
82
- TestBean bean = getBean (beanFactory , beanDefinition , instanceSupplier );
83
+ compile (beanDefinition , (instanceSupplier , compiled ) -> {
84
+ TestBean bean = getBean (beanDefinition , instanceSupplier );
83
85
assertThat (bean ).isInstanceOf (TestBean .class );
84
86
assertThat (compiled .getSourceFile ())
85
87
.contains ("InstanceSupplier.using(TestBean::new)" );
@@ -91,11 +93,9 @@ void generateWhenHasDefaultConstructor() {
91
93
@ Test
92
94
void generateWhenHasConstructorWithParameter () {
93
95
BeanDefinition beanDefinition = new RootBeanDefinition (InjectionComponent .class );
94
- DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory ();
95
- beanFactory .registerSingleton ("injected" , "injected" );
96
- compile (beanFactory , beanDefinition , (instanceSupplier , compiled ) -> {
97
- InjectionComponent bean = getBean (beanFactory , beanDefinition ,
98
- instanceSupplier );
96
+ this .beanFactory .registerSingleton ("injected" , "injected" );
97
+ compile (beanDefinition , (instanceSupplier , compiled ) -> {
98
+ InjectionComponent bean = getBean (beanDefinition , instanceSupplier );
99
99
assertThat (bean ).isInstanceOf (InjectionComponent .class ).extracting ("bean" )
100
100
.isEqualTo ("injected" );
101
101
});
@@ -107,10 +107,9 @@ void generateWhenHasConstructorWithParameter() {
107
107
void generateWhenHasConstructorWithInnerClassAndDefaultConstructor () {
108
108
RootBeanDefinition beanDefinition = new RootBeanDefinition (
109
109
NoDependencyComponent .class );
110
- DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory ();
111
- beanFactory .registerSingleton ("configuration" , new InnerComponentConfiguration ());
112
- compile (beanFactory , beanDefinition , (instanceSupplier , compiled ) -> {
113
- NoDependencyComponent bean = getBean (beanFactory , beanDefinition ,
110
+ this .beanFactory .registerSingleton ("configuration" , new InnerComponentConfiguration ());
111
+ compile (beanDefinition , (instanceSupplier , compiled ) -> {
112
+ NoDependencyComponent bean = getBean (beanDefinition ,
114
113
instanceSupplier );
115
114
assertThat (bean ).isInstanceOf (NoDependencyComponent .class );
116
115
assertThat (compiled .getSourceFile ()).contains (
@@ -124,11 +123,10 @@ void generateWhenHasConstructorWithInnerClassAndDefaultConstructor() {
124
123
void generateWhenHasConstructorWithInnerClassAndParameter () {
125
124
BeanDefinition beanDefinition = new RootBeanDefinition (
126
125
EnvironmentAwareComponent .class );
127
- DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory ();
128
- beanFactory .registerSingleton ("configuration" , new InnerComponentConfiguration ());
129
- beanFactory .registerSingleton ("environment" , new StandardEnvironment ());
130
- compile (beanFactory , beanDefinition , (instanceSupplier , compiled ) -> {
131
- EnvironmentAwareComponent bean = getBean (beanFactory , beanDefinition ,
126
+ this .beanFactory .registerSingleton ("configuration" , new InnerComponentConfiguration ());
127
+ this .beanFactory .registerSingleton ("environment" , new StandardEnvironment ());
128
+ compile (beanDefinition , (instanceSupplier , compiled ) -> {
129
+ EnvironmentAwareComponent bean = getBean (beanDefinition ,
132
130
instanceSupplier );
133
131
assertThat (bean ).isInstanceOf (EnvironmentAwareComponent .class );
134
132
assertThat (compiled .getSourceFile ()).contains (
@@ -142,10 +140,9 @@ void generateWhenHasConstructorWithInnerClassAndParameter() {
142
140
void generateWhenHasConstructorWithGeneric () {
143
141
BeanDefinition beanDefinition = new RootBeanDefinition (
144
142
NumberHolderFactoryBean .class );
145
- DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory ();
146
- beanFactory .registerSingleton ("number" , 123 );
147
- compile (beanFactory , beanDefinition , (instanceSupplier , compiled ) -> {
148
- NumberHolder <?> bean = getBean (beanFactory , beanDefinition , instanceSupplier );
143
+ this .beanFactory .registerSingleton ("number" , 123 );
144
+ compile (beanDefinition , (instanceSupplier , compiled ) -> {
145
+ NumberHolder <?> bean = getBean (beanDefinition , instanceSupplier );
149
146
assertThat (bean ).isInstanceOf (NumberHolder .class );
150
147
assertThat (bean ).extracting ("number" ).isNull (); // No property actually set
151
148
assertThat (compiled .getSourceFile ()).contains ("NumberHolderFactoryBean::new" );
@@ -158,9 +155,8 @@ void generateWhenHasConstructorWithGeneric() {
158
155
void generateWhenHasPrivateConstructor () {
159
156
BeanDefinition beanDefinition = new RootBeanDefinition (
160
157
TestBeanWithPrivateConstructor .class );
161
- DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory ();
162
- compile (beanFactory , beanDefinition , (instanceSupplier , compiled ) -> {
163
- TestBeanWithPrivateConstructor bean = getBean (beanFactory , beanDefinition ,
158
+ compile (beanDefinition , (instanceSupplier , compiled ) -> {
159
+ TestBeanWithPrivateConstructor bean = getBean (beanDefinition ,
164
160
instanceSupplier );
165
161
assertThat (bean ).isInstanceOf (TestBeanWithPrivateConstructor .class );
166
162
assertThat (compiled .getSourceFile ())
@@ -175,11 +171,10 @@ void generateWhenHasFactoryMethodWithNoArg() {
175
171
BeanDefinition beanDefinition = BeanDefinitionBuilder
176
172
.rootBeanDefinition (String .class )
177
173
.setFactoryMethodOnBean ("stringBean" , "config" ).getBeanDefinition ();
178
- DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory ();
179
- beanFactory .registerBeanDefinition ("config" , BeanDefinitionBuilder
174
+ this .beanFactory .registerBeanDefinition ("config" , BeanDefinitionBuilder
180
175
.genericBeanDefinition (SimpleConfiguration .class ).getBeanDefinition ());
181
- compile (beanFactory , beanDefinition , (instanceSupplier , compiled ) -> {
182
- String bean = getBean (beanFactory , beanDefinition , instanceSupplier );
176
+ compile (beanDefinition , (instanceSupplier , compiled ) -> {
177
+ String bean = getBean (beanDefinition , instanceSupplier );
183
178
assertThat (bean ).isInstanceOf (String .class );
184
179
assertThat (bean ).isEqualTo ("Hello" );
185
180
assertThat (compiled .getSourceFile ()).contains (
@@ -195,11 +190,10 @@ void generateWhenHasPrivateStaticFactoryMethodWithNoArg() {
195
190
.rootBeanDefinition (String .class )
196
191
.setFactoryMethodOnBean ("privateStaticStringBean" , "config" )
197
192
.getBeanDefinition ();
198
- DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory ();
199
- beanFactory .registerBeanDefinition ("config" , BeanDefinitionBuilder
193
+ this .beanFactory .registerBeanDefinition ("config" , BeanDefinitionBuilder
200
194
.genericBeanDefinition (SimpleConfiguration .class ).getBeanDefinition ());
201
- compile (beanFactory , beanDefinition , (instanceSupplier , compiled ) -> {
202
- String bean = getBean (beanFactory , beanDefinition , instanceSupplier );
195
+ compile (beanDefinition , (instanceSupplier , compiled ) -> {
196
+ String bean = getBean (beanDefinition , instanceSupplier );
203
197
assertThat (bean ).isInstanceOf (String .class );
204
198
assertThat (bean ).isEqualTo ("Hello" );
205
199
assertThat (compiled .getSourceFile ())
@@ -215,11 +209,10 @@ void generateWhenHasStaticFactoryMethodWithNoArg() {
215
209
BeanDefinition beanDefinition = BeanDefinitionBuilder
216
210
.rootBeanDefinition (Integer .class )
217
211
.setFactoryMethodOnBean ("integerBean" , "config" ).getBeanDefinition ();
218
- DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory ();
219
- beanFactory .registerBeanDefinition ("config" , BeanDefinitionBuilder
212
+ this .beanFactory .registerBeanDefinition ("config" , BeanDefinitionBuilder
220
213
.genericBeanDefinition (SimpleConfiguration .class ).getBeanDefinition ());
221
- compile (beanFactory , beanDefinition , (instanceSupplier , compiled ) -> {
222
- Integer bean = getBean (beanFactory , beanDefinition , instanceSupplier );
214
+ compile (beanDefinition , (instanceSupplier , compiled ) -> {
215
+ Integer bean = getBean (beanDefinition , instanceSupplier );
223
216
assertThat (bean ).isInstanceOf (Integer .class );
224
217
assertThat (bean ).isEqualTo (42 );
225
218
assertThat (compiled .getSourceFile ())
@@ -236,13 +229,12 @@ void generateWhenHasStaticFactoryMethodWithArg() {
236
229
.setFactoryMethodOnBean ("create" , "config" ).getBeanDefinition ();
237
230
beanDefinition .setResolvedFactoryMethod (ReflectionUtils
238
231
.findMethod (SampleFactory .class , "create" , Number .class , String .class ));
239
- DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory ();
240
- beanFactory .registerBeanDefinition ("config" , BeanDefinitionBuilder
232
+ this .beanFactory .registerBeanDefinition ("config" , BeanDefinitionBuilder
241
233
.genericBeanDefinition (SampleFactory .class ).getBeanDefinition ());
242
- beanFactory .registerSingleton ("number" , 42 );
243
- beanFactory .registerSingleton ("string" , "test" );
244
- compile (beanFactory , beanDefinition , (instanceSupplier , compiled ) -> {
245
- String bean = getBean (beanFactory , beanDefinition , instanceSupplier );
234
+ this . beanFactory .registerSingleton ("number" , 42 );
235
+ this . beanFactory .registerSingleton ("string" , "test" );
236
+ compile (beanDefinition , (instanceSupplier , compiled ) -> {
237
+ String bean = getBean (beanDefinition , instanceSupplier );
246
238
assertThat (bean ).isInstanceOf (String .class );
247
239
assertThat (bean ).isEqualTo ("42test" );
248
240
assertThat (compiled .getSourceFile ()).contains ("SampleFactory.create(" );
@@ -257,11 +249,10 @@ void generateWhenHasStaticFactoryMethodCheckedException() {
257
249
.rootBeanDefinition (Integer .class )
258
250
.setFactoryMethodOnBean ("throwingIntegerBean" , "config" )
259
251
.getBeanDefinition ();
260
- DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory ();
261
- beanFactory .registerBeanDefinition ("config" , BeanDefinitionBuilder
252
+ this .beanFactory .registerBeanDefinition ("config" , BeanDefinitionBuilder
262
253
.genericBeanDefinition (SimpleConfiguration .class ).getBeanDefinition ());
263
- compile (beanFactory , beanDefinition , (instanceSupplier , compiled ) -> {
264
- Integer bean = getBean (beanFactory , beanDefinition , instanceSupplier );
254
+ compile (beanDefinition , (instanceSupplier , compiled ) -> {
255
+ Integer bean = getBean (beanDefinition , instanceSupplier );
265
256
assertThat (bean ).isInstanceOf (Integer .class );
266
257
assertThat (bean ).isEqualTo (42 );
267
258
assertThat (compiled .getSourceFile ()).doesNotContain (") throws Exception {" );
@@ -287,17 +278,15 @@ private ThrowingConsumer<ExecutableHint> hasMode(ExecutableMode mode) {
287
278
}
288
279
289
280
@ SuppressWarnings ("unchecked" )
290
- private <T > T getBean (DefaultListableBeanFactory beanFactory ,
291
- BeanDefinition beanDefinition , InstanceSupplier <?> instanceSupplier ) {
281
+ private <T > T getBean (BeanDefinition beanDefinition , InstanceSupplier <?> instanceSupplier ) {
292
282
((RootBeanDefinition ) beanDefinition ).setInstanceSupplier (instanceSupplier );
293
- beanFactory .registerBeanDefinition ("testBean" , beanDefinition );
294
- return (T ) beanFactory .getBean ("testBean" );
283
+ this . beanFactory .registerBeanDefinition ("testBean" , beanDefinition );
284
+ return (T ) this . beanFactory .getBean ("testBean" );
295
285
}
296
286
297
- private void compile (DefaultListableBeanFactory beanFactory , BeanDefinition beanDefinition ,
298
- BiConsumer <InstanceSupplier <?>, Compiled > result ) {
287
+ private void compile (BeanDefinition beanDefinition , BiConsumer <InstanceSupplier <?>, Compiled > result ) {
299
288
300
- DefaultListableBeanFactory freshBeanFactory = new DefaultListableBeanFactory (beanFactory );
289
+ DefaultListableBeanFactory freshBeanFactory = new DefaultListableBeanFactory (this . beanFactory );
301
290
freshBeanFactory .registerBeanDefinition ("testBean" , beanDefinition );
302
291
RegisteredBean registeredBean = RegisteredBean .of (freshBeanFactory , "testBean" );
303
292
DeferredTypeBuilder typeBuilder = new DeferredTypeBuilder ();
0 commit comments