Skip to content

Commit 456cb2d

Browse files
committed
Merge pull request #22261 from izeye
* pr/22261: Replace ReflectionUtils with AssertJ's extracting() Closes gh-22261
2 parents 9894be8 + df34d26 commit 456cb2d

File tree

2 files changed

+20
-30
lines changed

2 files changed

+20
-30
lines changed

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/servlet/SecurityAutoConfigurationTests.java

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,9 @@
1616

1717
package org.springframework.boot.autoconfigure.security.servlet;
1818

19-
import java.util.EnumSet;
20-
2119
import javax.servlet.DispatcherType;
2220

21+
import org.assertj.core.api.InstanceOfAssertFactories;
2322
import org.junit.jupiter.api.Test;
2423

2524
import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -44,7 +43,6 @@
4443
import org.springframework.security.core.AuthenticationException;
4544
import org.springframework.security.data.repository.query.SecurityEvaluationContextExtension;
4645
import org.springframework.security.web.FilterChainProxy;
47-
import org.springframework.test.util.ReflectionTestUtils;
4846

4947
import static org.assertj.core.api.Assertions.assertThat;
5048

@@ -143,11 +141,9 @@ void defaultFilterDispatcherTypes() {
143141
.run((context) -> {
144142
DelegatingFilterProxyRegistrationBean bean = context.getBean("securityFilterChainRegistration",
145143
DelegatingFilterProxyRegistrationBean.class);
146-
@SuppressWarnings("unchecked")
147-
EnumSet<DispatcherType> dispatcherTypes = (EnumSet<DispatcherType>) ReflectionTestUtils
148-
.getField(bean, "dispatcherTypes");
149-
assertThat(dispatcherTypes).containsOnly(DispatcherType.ASYNC, DispatcherType.ERROR,
150-
DispatcherType.REQUEST);
144+
assertThat(bean)
145+
.extracting("dispatcherTypes", InstanceOfAssertFactories.iterable(DispatcherType.class))
146+
.containsOnly(DispatcherType.ASYNC, DispatcherType.ERROR, DispatcherType.REQUEST);
151147
});
152148
}
153149

@@ -157,10 +153,9 @@ void customFilterDispatcherTypes() {
157153
.withConfiguration(AutoConfigurations.of(SecurityFilterAutoConfiguration.class)).run((context) -> {
158154
DelegatingFilterProxyRegistrationBean bean = context.getBean("securityFilterChainRegistration",
159155
DelegatingFilterProxyRegistrationBean.class);
160-
@SuppressWarnings("unchecked")
161-
EnumSet<DispatcherType> dispatcherTypes = (EnumSet<DispatcherType>) ReflectionTestUtils
162-
.getField(bean, "dispatcherTypes");
163-
assertThat(dispatcherTypes).containsOnly(DispatcherType.INCLUDE, DispatcherType.ERROR);
156+
assertThat(bean)
157+
.extracting("dispatcherTypes", InstanceOfAssertFactories.iterable(DispatcherType.class))
158+
.containsOnly(DispatcherType.INCLUDE, DispatcherType.ERROR);
164159
});
165160
}
166161

@@ -170,10 +165,9 @@ void emptyFilterDispatcherTypesDoNotThrowException() {
170165
.withConfiguration(AutoConfigurations.of(SecurityFilterAutoConfiguration.class)).run((context) -> {
171166
DelegatingFilterProxyRegistrationBean bean = context.getBean("securityFilterChainRegistration",
172167
DelegatingFilterProxyRegistrationBean.class);
173-
@SuppressWarnings("unchecked")
174-
EnumSet<DispatcherType> dispatcherTypes = (EnumSet<DispatcherType>) ReflectionTestUtils
175-
.getField(bean, "dispatcherTypes");
176-
assertThat(dispatcherTypes).isEmpty();
168+
assertThat(bean)
169+
.extracting("dispatcherTypes", InstanceOfAssertFactories.iterable(DispatcherType.class))
170+
.isEmpty();
177171
});
178172
}
179173

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/session/SessionAutoConfigurationTests.java

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
package org.springframework.boot.autoconfigure.session;
1818

1919
import java.util.Collections;
20-
import java.util.EnumSet;
2120

2221
import javax.servlet.DispatcherType;
2322

23+
import org.assertj.core.api.InstanceOfAssertFactories;
2424
import org.junit.jupiter.api.Test;
2525
import org.mockito.InOrder;
2626

@@ -41,7 +41,6 @@
4141
import org.springframework.session.web.http.HeaderHttpSessionIdResolver;
4242
import org.springframework.session.web.http.HttpSessionIdResolver;
4343
import org.springframework.session.web.http.SessionRepositoryFilter;
44-
import org.springframework.test.util.ReflectionTestUtils;
4544

4645
import static org.assertj.core.api.Assertions.assertThat;
4746
import static org.mockito.ArgumentMatchers.any;
@@ -112,13 +111,13 @@ void autoConfigWhenSpringSessionTimeoutIsNotSetShouldUseServerSessionTimeout() {
112111
.run((context) -> assertThat(context.getBean(SessionProperties.class).getTimeout()).hasSeconds(3));
113112
}
114113

115-
@SuppressWarnings("unchecked")
116114
@Test
117115
void filterIsRegisteredWithAsyncErrorAndRequestDispatcherTypes() {
118116
this.contextRunner.withUserConfiguration(SessionRepositoryConfiguration.class).run((context) -> {
119117
FilterRegistrationBean<?> registration = context.getBean(FilterRegistrationBean.class);
120118
assertThat(registration.getFilter()).isSameAs(context.getBean(SessionRepositoryFilter.class));
121-
assertThat((EnumSet<DispatcherType>) ReflectionTestUtils.getField(registration, "dispatcherTypes"))
119+
assertThat(registration)
120+
.extracting("dispatcherTypes", InstanceOfAssertFactories.iterable(DispatcherType.class))
122121
.containsOnly(DispatcherType.ASYNC, DispatcherType.ERROR, DispatcherType.REQUEST);
123122
});
124123
}
@@ -132,25 +131,25 @@ void filterOrderCanBeCustomizedWithCustomStore() {
132131
});
133132
}
134133

135-
@SuppressWarnings("unchecked")
136134
@Test
137135
void filterDispatcherTypesCanBeCustomized() {
138136
this.contextRunner.withUserConfiguration(SessionRepositoryConfiguration.class)
139137
.withPropertyValues("spring.session.servlet.filter-dispatcher-types=error, request").run((context) -> {
140138
FilterRegistrationBean<?> registration = context.getBean(FilterRegistrationBean.class);
141-
assertThat((EnumSet<DispatcherType>) ReflectionTestUtils.getField(registration, "dispatcherTypes"))
139+
assertThat(registration)
140+
.extracting("dispatcherTypes", InstanceOfAssertFactories.iterable(DispatcherType.class))
142141
.containsOnly(DispatcherType.ERROR, DispatcherType.REQUEST);
143142
});
144143
}
145144

146-
@SuppressWarnings("unchecked")
147145
@Test
148146
void emptyFilterDispatcherTypesDoNotThrowException() {
149147
this.contextRunner.withUserConfiguration(SessionRepositoryConfiguration.class)
150148
.withPropertyValues("spring.session.servlet.filter-dispatcher-types=").run((context) -> {
151149
FilterRegistrationBean<?> registration = context.getBean(FilterRegistrationBean.class);
152-
Object dispatcherTypes = ReflectionTestUtils.getField(registration, "dispatcherTypes");
153-
assertThat((EnumSet<DispatcherType>) dispatcherTypes).isEmpty();
150+
assertThat(registration)
151+
.extracting("dispatcherTypes", InstanceOfAssertFactories.iterable(DispatcherType.class))
152+
.isEmpty();
154153
});
155154
}
156155

@@ -177,11 +176,8 @@ void autoConfiguredCookieSerializerIsUsedBySessionRepositoryFilter() {
177176
this.contextRunner.withUserConfiguration(SessionRepositoryConfiguration.class)
178177
.withPropertyValues("server.port=0").run((context) -> {
179178
SessionRepositoryFilter<?> filter = context.getBean(SessionRepositoryFilter.class);
180-
CookieHttpSessionIdResolver sessionIdResolver = (CookieHttpSessionIdResolver) ReflectionTestUtils
181-
.getField(filter, "httpSessionIdResolver");
182-
DefaultCookieSerializer cookieSerializer = (DefaultCookieSerializer) ReflectionTestUtils
183-
.getField(sessionIdResolver, "cookieSerializer");
184-
assertThat(cookieSerializer).isSameAs(context.getBean(DefaultCookieSerializer.class));
179+
assertThat(filter).extracting("httpSessionIdResolver").extracting("cookieSerializer")
180+
.isSameAs(context.getBean(DefaultCookieSerializer.class));
185181
});
186182
}
187183

0 commit comments

Comments
 (0)