|
30 | 30 | import static org.assertj.core.api.Assertions.assertThat; |
31 | 31 | import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; |
32 | 32 |
|
33 | | - |
34 | 33 | /** |
35 | 34 | * Tests for {@link ScopedProxyUtils}. |
36 | 35 | * |
37 | 36 | * @author Sam Brannen |
| 37 | + * @author Juergen Hoeller |
38 | 38 | * @since 5.1.10 |
39 | 39 | */ |
40 | 40 | class ScopedProxyUtilsTests { |
@@ -63,78 +63,79 @@ void getOriginalBeanNameAndIsScopedTarget() { |
63 | 63 | @Test |
64 | 64 | void getOriginalBeanNameForNullTargetBean() { |
65 | 65 | assertThatIllegalArgumentException() |
66 | | - .isThrownBy(() -> ScopedProxyUtils.getOriginalBeanName(null)) |
67 | | - .withMessage("bean name 'null' does not refer to the target of a scoped proxy"); |
| 66 | + .isThrownBy(() -> ScopedProxyUtils.getOriginalBeanName(null)) |
| 67 | + .withMessage("bean name 'null' does not refer to the target of a scoped proxy"); |
68 | 68 | } |
69 | 69 |
|
70 | 70 | @Test |
71 | 71 | void getOriginalBeanNameForNonScopedTarget() { |
72 | 72 | assertThatIllegalArgumentException() |
73 | | - .isThrownBy(() -> ScopedProxyUtils.getOriginalBeanName("myBean")) |
74 | | - .withMessage("bean name 'myBean' does not refer to the target of a scoped proxy"); |
| 73 | + .isThrownBy(() -> ScopedProxyUtils.getOriginalBeanName("myBean")) |
| 74 | + .withMessage("bean name 'myBean' does not refer to the target of a scoped proxy"); |
75 | 75 | } |
76 | 76 |
|
77 | 77 | @Test |
78 | | - void createScopedProxyTargetOvertakesAutowireSettingsToProxyBeanDefinition() { |
79 | | - final AbstractBeanDefinition targetDefinition = new GenericBeanDefinition(); |
| 78 | + void createScopedProxyTargetAppliesAutowireSettingsToProxyBeanDefinition() { |
| 79 | + AbstractBeanDefinition targetDefinition = new GenericBeanDefinition(); |
80 | 80 | // Opposite of defaults |
81 | 81 | targetDefinition.setAutowireCandidate(false); |
82 | 82 | targetDefinition.setDefaultCandidate(false); |
83 | 83 | targetDefinition.setPrimary(true); |
| 84 | + targetDefinition.setFallback(true); |
84 | 85 |
|
85 | | - final BeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry(); |
86 | | - final BeanDefinitionHolder proxyHolder = ScopedProxyUtils.createScopedProxy(new BeanDefinitionHolder(targetDefinition, "myBean"), registry, false); |
87 | | - assertThat(proxyHolder).isNotNull(); |
88 | | - final BeanDefinition proxyBeanDefinition = proxyHolder.getBeanDefinition(); |
89 | | - assertThat(proxyBeanDefinition).isNotNull(); |
90 | | - assertThat(proxyBeanDefinition).isInstanceOf(RootBeanDefinition.class); |
| 86 | + BeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry(); |
| 87 | + BeanDefinitionHolder proxyHolder = ScopedProxyUtils.createScopedProxy( |
| 88 | + new BeanDefinitionHolder(targetDefinition, "myBean"), registry, false); |
| 89 | + AbstractBeanDefinition proxyBeanDefinition = (AbstractBeanDefinition) proxyHolder.getBeanDefinition(); |
91 | 90 |
|
92 | 91 | assertThat(proxyBeanDefinition.isAutowireCandidate()).isFalse(); |
| 92 | + assertThat(proxyBeanDefinition.isDefaultCandidate()).isFalse(); |
93 | 93 | assertThat(proxyBeanDefinition.isPrimary()).isTrue(); |
94 | | - assertThat(((RootBeanDefinition)proxyBeanDefinition).isDefaultCandidate()).isFalse(); |
| 94 | + assertThat(proxyBeanDefinition.isFallback()).isTrue(); |
95 | 95 | } |
96 | 96 |
|
97 | 97 | @Test |
98 | | - void createScopedProxyTargetOvertakesBeanAttributesToProxyBeanDefinition() { |
99 | | - final GenericBeanDefinition targetDefinition = new GenericBeanDefinition(); |
| 98 | + void createScopedProxyTargetAppliesBeanAttributesToProxyBeanDefinition() { |
| 99 | + GenericBeanDefinition targetDefinition = new GenericBeanDefinition(); |
100 | 100 | // Opposite of defaults |
101 | 101 | targetDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); |
102 | 102 | targetDefinition.setSource("theSource"); |
103 | 103 | targetDefinition.addQualifier(new AutowireCandidateQualifier("myQualifier")); |
104 | 104 |
|
105 | | - final BeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry(); |
106 | | - final BeanDefinitionHolder proxyHolder = ScopedProxyUtils.createScopedProxy(new BeanDefinitionHolder(targetDefinition, "myBean"), registry, false); |
107 | | - assertThat(proxyHolder).isNotNull(); |
108 | | - final BeanDefinition proxyBeanDefinition = proxyHolder.getBeanDefinition(); |
109 | | - assertThat(proxyBeanDefinition).isNotNull(); |
| 105 | + BeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry(); |
| 106 | + BeanDefinitionHolder proxyHolder = ScopedProxyUtils.createScopedProxy( |
| 107 | + new BeanDefinitionHolder(targetDefinition, "myBean"), registry, false); |
| 108 | + BeanDefinition proxyBeanDefinition = proxyHolder.getBeanDefinition(); |
110 | 109 |
|
111 | 110 | assertThat(proxyBeanDefinition.getRole()).isEqualTo(BeanDefinition.ROLE_INFRASTRUCTURE); |
112 | 111 | assertThat(proxyBeanDefinition).isInstanceOf(RootBeanDefinition.class); |
113 | 112 | assertThat(proxyBeanDefinition.getPropertyValues()).hasSize(2); |
114 | 113 | assertThat(proxyBeanDefinition.getPropertyValues().get("proxyTargetClass")).isEqualTo(false); |
115 | | - assertThat(proxyBeanDefinition.getPropertyValues().get("targetBeanName")).isEqualTo(ScopedProxyUtils.getTargetBeanName("myBean")); |
| 114 | + assertThat(proxyBeanDefinition.getPropertyValues().get("targetBeanName")).isEqualTo( |
| 115 | + ScopedProxyUtils.getTargetBeanName("myBean")); |
116 | 116 |
|
117 | | - final RootBeanDefinition rootBeanDefinition = (RootBeanDefinition) proxyBeanDefinition; |
| 117 | + RootBeanDefinition rootBeanDefinition = (RootBeanDefinition) proxyBeanDefinition; |
118 | 118 | assertThat(rootBeanDefinition.getQualifiers()).hasSize(1); |
119 | 119 | assertThat(rootBeanDefinition.hasQualifier("myQualifier")).isTrue(); |
120 | 120 | assertThat(rootBeanDefinition.getSource()).isEqualTo("theSource"); |
121 | 121 | } |
122 | 122 |
|
123 | 123 | @Test |
124 | 124 | void createScopedProxyTargetCleansAutowireSettingsInTargetDefinition() { |
125 | | - final AbstractBeanDefinition targetDefinition = new GenericBeanDefinition(); |
| 125 | + AbstractBeanDefinition targetDefinition = new GenericBeanDefinition(); |
126 | 126 | targetDefinition.setAutowireCandidate(true); |
127 | 127 | targetDefinition.setDefaultCandidate(true); |
128 | 128 | targetDefinition.setPrimary(true); |
| 129 | + targetDefinition.setFallback(true); |
129 | 130 |
|
130 | | - final BeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry(); |
131 | | - final BeanDefinitionHolder proxyHolder = ScopedProxyUtils.createScopedProxy(new BeanDefinitionHolder(targetDefinition, "myBean"), registry, false); |
132 | | - assertThat(proxyHolder).isNotNull(); |
133 | | - final BeanDefinition proxyBeanDefinition = proxyHolder.getBeanDefinition(); |
134 | | - assertThat(proxyBeanDefinition).isNotNull(); |
| 131 | + BeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry(); |
| 132 | + ScopedProxyUtils.createScopedProxy( |
| 133 | + new BeanDefinitionHolder(targetDefinition, "myBean"), registry, false); |
135 | 134 |
|
136 | 135 | assertThat(targetDefinition.isAutowireCandidate()).isFalse(); |
137 | 136 | assertThat(targetDefinition.isDefaultCandidate()).isFalse(); |
138 | 137 | assertThat(targetDefinition.isPrimary()).isFalse(); |
| 138 | + assertThat(targetDefinition.isFallback()).isFalse(); |
139 | 139 | } |
| 140 | + |
140 | 141 | } |
0 commit comments