|
@@ -94,6 +94,35 @@ public class ReactorContextTestExecutionListenerTests {
|
|
|
assertAuthentication(expectedAuthentication);
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ public void beforeTestMethodWhenCustomContext() throws Exception {
|
|
|
+ TestingAuthenticationToken expectedAuthentication = new TestingAuthenticationToken("user", "password", "ROLE_USER");
|
|
|
+ SecurityContext context = new CustomContext(expectedAuthentication);
|
|
|
+ TestSecurityContextHolder.setContext(context);
|
|
|
+
|
|
|
+ this.listener.beforeTestMethod(this.testContext);
|
|
|
+
|
|
|
+ assertSecurityContext(context);
|
|
|
+ }
|
|
|
+
|
|
|
+ static class CustomContext implements SecurityContext {
|
|
|
+ private Authentication authentication;
|
|
|
+
|
|
|
+ CustomContext(Authentication authentication) {
|
|
|
+ this.authentication = authentication;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Authentication getAuthentication() {
|
|
|
+ return this.authentication;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void setAuthentication(Authentication authentication) {
|
|
|
+ this.authentication = authentication;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Test
|
|
|
public void beforeTestMethodWhenExistingAuthenticationThenReactorContextHasOriginalAuthentication() throws Exception {
|
|
|
TestingAuthenticationToken expectedAuthentication = new TestingAuthenticationToken("user", "password", "ROLE_USER");
|
|
@@ -175,4 +204,13 @@ public class ReactorContextTestExecutionListenerTests {
|
|
|
.expectNext(expected)
|
|
|
.verifyComplete();
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ private void assertSecurityContext(SecurityContext expected) {
|
|
|
+ Mono<SecurityContext> securityContext = ReactiveSecurityContextHolder.getContext();
|
|
|
+
|
|
|
+ StepVerifier.create(securityContext)
|
|
|
+ .expectNext(expected)
|
|
|
+ .verifyComplete();
|
|
|
+ }
|
|
|
}
|