From 060d8689fe9308e616bce12fe1fe1d868dfb29cf Mon Sep 17 00:00:00 2001 From: Rob Winch Date: Wed, 8 Nov 2017 16:07:59 -0600 Subject: [PATCH] Make RedirectServer*Tests less specific Issue: gh-4816 --- ...directServerAuthenticationEntryPointTests.java | 14 ++++++++++---- ...ctServerAuthenticationSuccessHandlerTests.java | 15 ++++++++++----- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/web/src/test/java/org/springframework/security/web/server/authentication/RedirectServerAuthenticationEntryPointTests.java b/web/src/test/java/org/springframework/security/web/server/authentication/RedirectServerAuthenticationEntryPointTests.java index 32d9e92e15..f7adec5cc9 100644 --- a/web/src/test/java/org/springframework/security/web/server/authentication/RedirectServerAuthenticationEntryPointTests.java +++ b/web/src/test/java/org/springframework/security/web/server/authentication/RedirectServerAuthenticationEntryPointTests.java @@ -29,6 +29,8 @@ import org.springframework.security.core.AuthenticationException; import org.springframework.security.web.server.ServerRedirectStrategy; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; +import reactor.test.publisher.PublisherProbe; +import reactor.test.publisher.TestPublisher; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Matchers.any; @@ -62,10 +64,12 @@ public class RedirectServerAuthenticationEntryPointTests { @Test public void commenceWhenNoSubscribersThenNoActions() { + this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build()); this.entryPoint.commence(this.exchange, this.exception); - verifyZeroInteractions(this.exchange); + assertThat(this.exchange.getResponse().getHeaders().getLocation()).isNull(); + assertThat(this.exchange.getSession().block().isStarted()).isFalse(); } @Test @@ -81,12 +85,14 @@ public class RedirectServerAuthenticationEntryPointTests { @Test public void commenceWhenCustomServerRedirectStrategyThenCustomServerRedirectStrategyUsed() { - Mono result = Mono.empty(); - when(this.serverRedirectStrategy.sendRedirect(any(), any())).thenReturn(result); + PublisherProbe redirectResult = PublisherProbe.empty(); + when(this.serverRedirectStrategy.sendRedirect(any(), any())).thenReturn(redirectResult.mono()); this.entryPoint.setServerRedirectStrategy(this.serverRedirectStrategy); this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build()); - assertThat(this.entryPoint.commence(this.exchange, this.exception)).isEqualTo(result); + this.entryPoint.commence(this.exchange, this.exception).block(); + + redirectResult.assertWasSubscribed(); } @Test(expected = IllegalArgumentException.class) diff --git a/web/src/test/java/org/springframework/security/web/server/authentication/RedirectServerAuthenticationSuccessHandlerTests.java b/web/src/test/java/org/springframework/security/web/server/authentication/RedirectServerAuthenticationSuccessHandlerTests.java index 6f6aedbbef..144fd94911 100644 --- a/web/src/test/java/org/springframework/security/web/server/authentication/RedirectServerAuthenticationSuccessHandlerTests.java +++ b/web/src/test/java/org/springframework/security/web/server/authentication/RedirectServerAuthenticationSuccessHandlerTests.java @@ -29,6 +29,7 @@ import org.springframework.security.web.server.WebFilterExchange; import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebFilterChain; import reactor.core.publisher.Mono; +import reactor.test.publisher.PublisherProbe; import java.net.URI; @@ -67,10 +68,13 @@ public class RedirectServerAuthenticationSuccessHandlerTests { @Test public void successWhenNoSubscribersThenNoActions() { + this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build()); + this.handler.onAuthenticationSuccess(new WebFilterExchange(this.exchange, this.chain), this.authentication); - verifyZeroInteractions(this.exchange); + assertThat(this.exchange.getResponse().getHeaders().getLocation()).isNull(); + assertThat(this.exchange.getSession().block().isStarted()).isFalse(); } @Test @@ -87,13 +91,14 @@ public class RedirectServerAuthenticationSuccessHandlerTests { @Test public void successWhenCustomLocationThenCustomLocationUsed() { - Mono result = Mono.empty(); - when(this.serverRedirectStrategy.sendRedirect(any(), any())).thenReturn(result); + PublisherProbe redirectResult = PublisherProbe.empty(); + when(this.serverRedirectStrategy.sendRedirect(any(), any())).thenReturn(redirectResult.mono()); this.handler.setServerRedirectStrategy(this.serverRedirectStrategy); this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build()); - assertThat(this.handler.onAuthenticationSuccess(new WebFilterExchange(this.exchange, - this.chain), this.authentication)).isEqualTo(result); + this.handler.onAuthenticationSuccess(new WebFilterExchange(this.exchange, + this.chain), this.authentication).block(); + redirectResult.assertWasSubscribed(); verify(this.serverRedirectStrategy).sendRedirect(any(), eq(this.location)); }