mirror of
				https://github.com/spring-projects/spring-security.git
				synced 2025-10-30 22:28:46 +00:00 
			
		
		
		
	ReactorContextTestExecutionListener should use named hooks
Fixes: gh-6075
This commit is contained in:
		
							parent
							
								
									18594ef4e9
								
							
						
					
					
						commit
						a28c677f88
					
				| @ -44,6 +44,7 @@ public class ReactorContextTestExecutionListener | ||||
| 	extends DelegatingTestExecutionListener { | ||||
| 
 | ||||
| 	private static final String HOOKS_CLASS_NAME = "reactor.core.publisher.Hooks"; | ||||
| 	private static final String CONTEXT_OPERATOR_KEY = SecurityContext.class.getName(); | ||||
| 
 | ||||
| 	public ReactorContextTestExecutionListener() { | ||||
| 		super(createDelegate()); | ||||
| @ -59,12 +60,12 @@ public class ReactorContextTestExecutionListener | ||||
| 		@Override | ||||
| 		public void beforeTestMethod(TestContext testContext) throws Exception { | ||||
| 			SecurityContext securityContext = TestSecurityContextHolder.getContext(); | ||||
| 			Hooks.onLastOperator(Operators.lift((s, sub) -> new SecuritySubContext<>(sub, securityContext))); | ||||
| 			Hooks.onLastOperator(CONTEXT_OPERATOR_KEY, Operators.lift((s, sub) -> new SecuritySubContext<>(sub, securityContext))); | ||||
| 		} | ||||
| 
 | ||||
| 		@Override | ||||
| 		public void afterTestMethod(TestContext testContext) throws Exception { | ||||
| 			Hooks.resetOnLastOperator(); | ||||
| 			Hooks.resetOnLastOperator(CONTEXT_OPERATOR_KEY); | ||||
| 		} | ||||
| 
 | ||||
| 		private static class SecuritySubContext<T> implements CoreSubscriber<T> { | ||||
|  | ||||
| @ -174,6 +174,16 @@ public class ReactorContextTestExecutionListenerTests { | ||||
| 		assertThat(Mono.subscriberContext().block().isEmpty()).isTrue(); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void afterTestMethodWhenDifferentHookIsRegistered() throws Exception { | ||||
| 		Object obj = new Object(); | ||||
| 
 | ||||
| 		Hooks.onLastOperator("CUSTOM_HOOK", p -> Mono.just(obj)); | ||||
| 		this.listener.afterTestMethod(this.testContext); | ||||
| 
 | ||||
| 		assertThat(Mono.subscriberContext().block()).isEqualTo(obj); | ||||
| 	} | ||||
| 
 | ||||
| 	@Test | ||||
| 	public void orderWhenComparedToWithSecurityContextTestExecutionListenerIsAfter() { | ||||
| 		OrderComparator comparator = new OrderComparator(); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user