Skip to content

Commit a28c677

Browse files
Aanuoluwapo Otitoolarwinch
Aanuoluwapo Otitoola
authored andcommitted
ReactorContextTestExecutionListener should use named hooks
Fixes: gh-6075
1 parent 18594ef commit a28c677

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

test/src/main/java/org/springframework/security/test/context/support/ReactorContextTestExecutionListener.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public class ReactorContextTestExecutionListener
4444
extends DelegatingTestExecutionListener {
4545

4646
private static final String HOOKS_CLASS_NAME = "reactor.core.publisher.Hooks";
47+
private static final String CONTEXT_OPERATOR_KEY = SecurityContext.class.getName();
4748

4849
public ReactorContextTestExecutionListener() {
4950
super(createDelegate());
@@ -59,12 +60,12 @@ private static class DelegateTestExecutionListener extends AbstractTestExecution
5960
@Override
6061
public void beforeTestMethod(TestContext testContext) throws Exception {
6162
SecurityContext securityContext = TestSecurityContextHolder.getContext();
62-
Hooks.onLastOperator(Operators.lift((s, sub) -> new SecuritySubContext<>(sub, securityContext)));
63+
Hooks.onLastOperator(CONTEXT_OPERATOR_KEY, Operators.lift((s, sub) -> new SecuritySubContext<>(sub, securityContext)));
6364
}
6465

6566
@Override
6667
public void afterTestMethod(TestContext testContext) throws Exception {
67-
Hooks.resetOnLastOperator();
68+
Hooks.resetOnLastOperator(CONTEXT_OPERATOR_KEY);
6869
}
6970

7071
private static class SecuritySubContext<T> implements CoreSubscriber<T> {

test/src/test/java/org/springframework/security/test/context/support/ReactorContextTestExecutionListenerTests.java

+10
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,16 @@ public void afterTestMethodWhenSetupThenReactorContextNull() throws Exception {
174174
assertThat(Mono.subscriberContext().block().isEmpty()).isTrue();
175175
}
176176

177+
@Test
178+
public void afterTestMethodWhenDifferentHookIsRegistered() throws Exception {
179+
Object obj = new Object();
180+
181+
Hooks.onLastOperator("CUSTOM_HOOK", p -> Mono.just(obj));
182+
this.listener.afterTestMethod(this.testContext);
183+
184+
assertThat(Mono.subscriberContext().block()).isEqualTo(obj);
185+
}
186+
177187
@Test
178188
public void orderWhenComparedToWithSecurityContextTestExecutionListenerIsAfter() {
179189
OrderComparator comparator = new OrderComparator();

0 commit comments

Comments
 (0)