1
0
mirror of synced 2026-05-22 21:33:16 +00:00

Fix mockito UnnecessaryStubbingException

This commit is contained in:
Rob Winch
2021-07-08 14:52:45 -05:00
parent 2a62c4d976
commit b6ff4d3674
22 changed files with 252 additions and 42 deletions
@@ -176,7 +176,18 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
this.clientRegistrationRepository, this.authorizedClientRepository);
this.authorizedClientManager.setAuthorizedClientProvider(authorizedClientProvider);
this.function = new ServerOAuth2AuthorizedClientExchangeFilterFunction(this.authorizedClientManager);
}
private void setupMocks() {
setupMockSaveAuthorizedClient();
setupMockHeaders();
}
private void setupMockSaveAuthorizedClient() {
given(this.authorizedClientRepository.saveAuthorizedClient(any(), any(), any())).willReturn(Mono.empty());
}
private void setupMockHeaders() {
given(this.exchange.getResponse().headers()).willReturn(mock(ClientResponse.Headers.class));
}
@@ -250,6 +261,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
@Test
public void filterWhenClientCredentialsTokenExpiredThenGetNewToken() {
setupMocks();
// @formatter:off
OAuth2AccessTokenResponse accessTokenResponse = OAuth2AccessTokenResponse
.withToken("new-token")
@@ -314,6 +326,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
@Test
public void filterWhenRefreshRequiredThenRefresh() {
setupMocks();
OAuth2AccessTokenResponse response = OAuth2AccessTokenResponse.withToken("token-1")
.tokenType(OAuth2AccessToken.TokenType.BEARER).expiresIn(3600).refreshToken("refresh-1").build();
given(this.refreshTokenTokenResponseClient.getTokenResponse(any())).willReturn(Mono.just(response));
@@ -353,6 +366,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
@Test
public void filterWhenRefreshRequiredAndEmptyReactiveSecurityContextThenSaved() {
setupMocks();
OAuth2AccessTokenResponse response = OAuth2AccessTokenResponse.withToken("token-1")
.tokenType(OAuth2AccessToken.TokenType.BEARER).expiresIn(3600).refreshToken("refresh-1").build();
given(this.refreshTokenTokenResponseClient.getTokenResponse(any())).willReturn(Mono.just(response));
@@ -427,6 +441,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
@Test
public void filterWhenUnauthorizedThenInvokeFailureHandler() {
setupMockHeaders();
this.function.setAuthorizationFailureHandler(this.authorizationFailureHandler);
PublisherProbe<Void> publisherProbe = PublisherProbe.empty();
given(this.authorizationFailureHandler.onAuthorizationFailure(any(), any(), any()))
@@ -501,6 +516,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
@Test
public void filterWhenForbiddenThenInvokeFailureHandler() {
setupMockHeaders();
this.function.setAuthorizationFailureHandler(this.authorizationFailureHandler);
PublisherProbe<Void> publisherProbe = PublisherProbe.empty();
given(this.authorizationFailureHandler.onAuthorizationFailure(any(), any(), any()))
@@ -636,6 +652,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
@Test
public void filterWhenOtherHttpStatusShouldNotInvokeFailureHandler() {
setupMockHeaders();
this.function.setAuthorizationFailureHandler(this.authorizationFailureHandler);
OAuth2RefreshToken refreshToken = new OAuth2RefreshToken("refresh-token", this.accessToken.getIssuedAt());
OAuth2AuthorizedClient authorizedClient = new OAuth2AuthorizedClient(this.registration, "principalName",
@@ -650,6 +667,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
@Test
public void filterWhenPasswordClientNotAuthorizedThenGetNewToken() {
setupMocks();
TestingAuthenticationToken authentication = new TestingAuthenticationToken("test", "this");
ClientRegistration registration = TestClientRegistrations.password().build();
OAuth2AccessTokenResponse accessTokenResponse = OAuth2AccessTokenResponse.withToken("new-token")
@@ -798,6 +816,7 @@ public class ServerOAuth2AuthorizedClientExchangeFilterFunctionTests {
// gh-7544
@Test
public void filterWhenClientCredentialsClientNotAuthorizedAndOutsideRequestContextThenGetNewToken() {
setupMockHeaders();
// Use UnAuthenticatedServerOAuth2AuthorizedClientRepository when operating
// outside of a request context
ServerOAuth2AuthorizedClientRepository unauthenticatedAuthorizedClientRepository = spy(
@@ -95,8 +95,6 @@ public class OAuth2AuthorizedClientArgumentResolverTests {
this.clientRegistration = TestClientRegistrations.clientRegistration().build();
this.authorizedClient = new OAuth2AuthorizedClient(this.clientRegistration, this.authentication.getName(),
TestOAuth2AccessTokens.noScopes());
given(this.authorizedClientRepository.loadAuthorizedClient(anyString(), any(), any()))
.willReturn(Mono.just(this.authorizedClient));
}
@Test
@@ -146,6 +144,8 @@ public class OAuth2AuthorizedClientArgumentResolverTests {
@Test
public void resolveArgumentWhenRegistrationIdEmptyAndOAuth2AuthenticationThenResolves() {
given(this.authorizedClientRepository.loadAuthorizedClient(anyString(), any(), any()))
.willReturn(Mono.just(this.authorizedClient));
this.authentication = mock(OAuth2AuthenticationToken.class);
given(((OAuth2AuthenticationToken) this.authentication).getAuthorizedClientRegistrationId())
.willReturn("client1");
@@ -155,6 +155,8 @@ public class OAuth2AuthorizedClientArgumentResolverTests {
@Test
public void resolveArgumentWhenParameterTypeOAuth2AuthorizedClientAndCurrentAuthenticationNullThenResolves() {
given(this.authorizedClientRepository.loadAuthorizedClient(anyString(), any(), any()))
.willReturn(Mono.just(this.authorizedClient));
this.authentication = null;
MethodParameter methodParameter = this.getMethodParameter("paramTypeAuthorizedClient",
OAuth2AuthorizedClient.class);
@@ -163,6 +165,10 @@ public class OAuth2AuthorizedClientArgumentResolverTests {
@Test
public void resolveArgumentWhenOAuth2AuthorizedClientFoundThenResolves() {
given(this.authorizedClientRepository.loadAuthorizedClient(anyString(), any(), any()))
.willReturn(Mono.just(this.authorizedClient));
given(this.authorizedClientRepository.loadAuthorizedClient(anyString(), any(), any()))
.willReturn(Mono.just(this.authorizedClient));
MethodParameter methodParameter = this.getMethodParameter("paramTypeAuthorizedClient",
OAuth2AuthorizedClient.class);
assertThat(resolveArgument(methodParameter)).isSameAs(this.authorizedClient);
@@ -72,9 +72,6 @@ public class OAuth2AuthorizationRequestRedirectWebFilterTests {
FilteringWebHandler webHandler = new FilteringWebHandler((e) -> e.getResponse().setComplete(),
Arrays.asList(this.filter));
this.client = WebTestClient.bindToWebHandler(webHandler).build();
given(this.clientRepository.findByRegistrationId(this.registration.getRegistrationId()))
.willReturn(Mono.just(this.registration));
given(this.authzRequestRepository.saveAuthorizationRequest(any(), any())).willReturn(Mono.empty());
}
@Test
@@ -96,6 +93,9 @@ public class OAuth2AuthorizationRequestRedirectWebFilterTests {
@Test
public void filterWhenDoesMatchThenClientRegistrationRepositoryNotSubscribed() {
given(this.clientRepository.findByRegistrationId(this.registration.getRegistrationId()))
.willReturn(Mono.just(this.registration));
given(this.authzRequestRepository.saveAuthorizationRequest(any(), any())).willReturn(Mono.empty());
// @formatter:off
FluxExchangeResult<String> result = this.client.get()
.uri("https://example.com/oauth2/authorization/registration-id")
@@ -116,6 +116,9 @@ public class OAuth2AuthorizationRequestRedirectWebFilterTests {
// gh-5520
@Test
public void filterWhenDoesMatchThenResolveRedirectUriExpandedExcludesQueryString() {
given(this.clientRepository.findByRegistrationId(this.registration.getRegistrationId()))
.willReturn(Mono.just(this.registration));
given(this.authzRequestRepository.saveAuthorizationRequest(any(), any())).willReturn(Mono.empty());
// @formatter:off
FluxExchangeResult<String> result = this.client.get()
.uri("https://example.com/oauth2/authorization/registration-id?foo=bar").exchange().expectStatus()
@@ -137,6 +140,9 @@ public class OAuth2AuthorizationRequestRedirectWebFilterTests {
@Test
public void filterWhenExceptionThenRedirected() {
given(this.clientRepository.findByRegistrationId(this.registration.getRegistrationId()))
.willReturn(Mono.just(this.registration));
given(this.authzRequestRepository.saveAuthorizationRequest(any(), any())).willReturn(Mono.empty());
FilteringWebHandler webHandler = new FilteringWebHandler(
(e) -> Mono.error(new ClientAuthorizationRequiredException(this.registration.getRegistrationId())),
Arrays.asList(this.filter));
@@ -153,6 +159,9 @@ public class OAuth2AuthorizationRequestRedirectWebFilterTests {
@Test
public void filterWhenExceptionThenSaveRequestSessionAttribute() {
given(this.clientRepository.findByRegistrationId(this.registration.getRegistrationId()))
.willReturn(Mono.just(this.registration));
given(this.authzRequestRepository.saveAuthorizationRequest(any(), any())).willReturn(Mono.empty());
this.filter.setRequestCache(this.requestCache);
given(this.requestCache.saveRequest(any())).willReturn(Mono.empty());
FilteringWebHandler webHandler = new FilteringWebHandler(
@@ -172,6 +181,9 @@ public class OAuth2AuthorizationRequestRedirectWebFilterTests {
@Test
public void filterWhenPathMatchesThenRequestSessionAttributeNotSaved() {
given(this.clientRepository.findByRegistrationId(this.registration.getRegistrationId()))
.willReturn(Mono.just(this.registration));
given(this.authzRequestRepository.saveAuthorizationRequest(any(), any())).willReturn(Mono.empty());
this.filter.setRequestCache(this.requestCache);
// @formatter:off
this.client.get()