Skip to content

Commit 80e13ba

Browse files
committed
Remove PowerMock from oauth2-client
Issue: gh-6025
1 parent 39933b1 commit 80e13ba

13 files changed

+388
-450
lines changed

oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/OAuth2AuthorizedClientTests.java

+5-8
Original file line numberDiff line numberDiff line change
@@ -17,32 +17,29 @@
1717

1818
import org.junit.Before;
1919
import org.junit.Test;
20-
import org.junit.runner.RunWith;
21-
import org.powermock.core.classloader.annotations.PrepareForTest;
22-
import org.powermock.modules.junit4.PowerMockRunner;
20+
2321
import org.springframework.security.oauth2.client.registration.ClientRegistration;
2422
import org.springframework.security.oauth2.core.OAuth2AccessToken;
2523

2624
import static org.assertj.core.api.Assertions.assertThat;
27-
import static org.mockito.Mockito.mock;
25+
import static org.springframework.security.oauth2.client.registration.TestClientRegistrations.clientRegistration;
26+
import static org.springframework.security.oauth2.core.TestOAuth2AccessTokens.noScopes;
2827

2928
/**
3029
* Tests for {@link OAuth2AuthorizedClient}.
3130
*
3231
* @author Joe Grandja
3332
*/
34-
@RunWith(PowerMockRunner.class)
35-
@PrepareForTest(ClientRegistration.class)
3633
public class OAuth2AuthorizedClientTests {
3734
private ClientRegistration clientRegistration;
3835
private String principalName;
3936
private OAuth2AccessToken accessToken;
4037

4138
@Before
4239
public void setUp() {
43-
this.clientRegistration = mock(ClientRegistration.class);
40+
this.clientRegistration = clientRegistration().build();
4441
this.principalName = "principal";
45-
this.accessToken = mock(OAuth2AccessToken.class);
42+
this.accessToken = noScopes();
4643
}
4744

4845
@Test(expected = IllegalArgumentException.class)

oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/authentication/OAuth2AuthorizationCodeAuthenticationProviderTests.java

+32-42
Original file line numberDiff line numberDiff line change
@@ -15,62 +15,50 @@
1515
*/
1616
package org.springframework.security.oauth2.client.authentication;
1717

18+
import java.util.Collections;
19+
1820
import org.junit.Before;
1921
import org.junit.Test;
20-
import org.junit.runner.RunWith;
21-
import org.powermock.core.classloader.annotations.PrepareForTest;
22-
import org.powermock.modules.junit4.PowerMockRunner;
22+
2323
import org.springframework.security.oauth2.client.endpoint.OAuth2AccessTokenResponseClient;
2424
import org.springframework.security.oauth2.client.endpoint.OAuth2AuthorizationCodeGrantRequest;
2525
import org.springframework.security.oauth2.client.registration.ClientRegistration;
26-
import org.springframework.security.oauth2.core.OAuth2AccessToken;
2726
import org.springframework.security.oauth2.core.OAuth2AuthorizationException;
28-
import org.springframework.security.oauth2.core.OAuth2Error;
2927
import org.springframework.security.oauth2.core.OAuth2ErrorCodes;
30-
import org.springframework.security.oauth2.core.OAuth2RefreshToken;
3128
import org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponse;
3229
import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationExchange;
3330
import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest;
3431
import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationResponse;
3532

36-
import java.util.Collections;
37-
3833
import static org.assertj.core.api.Assertions.assertThat;
3934
import static org.assertj.core.api.Assertions.assertThatThrownBy;
4035
import static org.mockito.ArgumentMatchers.any;
4136
import static org.mockito.Mockito.mock;
4237
import static org.mockito.Mockito.when;
38+
import static org.springframework.security.oauth2.client.registration.TestClientRegistrations.clientRegistration;
39+
import static org.springframework.security.oauth2.core.endpoint.TestOAuth2AccessTokenResponses.accessTokenResponse;
40+
import static org.springframework.security.oauth2.core.endpoint.TestOAuth2AuthorizationRequests.request;
41+
import static org.springframework.security.oauth2.core.endpoint.TestOAuth2AuthorizationResponses.error;
42+
import static org.springframework.security.oauth2.core.endpoint.TestOAuth2AuthorizationResponses.success;
4343

4444
/**
4545
* Tests for {@link OAuth2AuthorizationCodeAuthenticationProvider}.
4646
*
4747
* @author Joe Grandja
4848
*/
49-
@PrepareForTest({ClientRegistration.class, OAuth2AuthorizationRequest.class,
50-
OAuth2AuthorizationResponse.class, OAuth2AccessTokenResponse.class})
51-
@RunWith(PowerMockRunner.class)
5249
public class OAuth2AuthorizationCodeAuthenticationProviderTests {
5350
private ClientRegistration clientRegistration;
5451
private OAuth2AuthorizationRequest authorizationRequest;
55-
private OAuth2AuthorizationResponse authorizationResponse;
56-
private OAuth2AuthorizationExchange authorizationExchange;
5752
private OAuth2AccessTokenResponseClient<OAuth2AuthorizationCodeGrantRequest> accessTokenResponseClient;
5853
private OAuth2AuthorizationCodeAuthenticationProvider authenticationProvider;
5954

6055
@Before
6156
@SuppressWarnings("unchecked")
62-
public void setUp() throws Exception {
63-
this.clientRegistration = mock(ClientRegistration.class);
64-
this.authorizationRequest = mock(OAuth2AuthorizationRequest.class);
65-
this.authorizationResponse = mock(OAuth2AuthorizationResponse.class);
66-
this.authorizationExchange = new OAuth2AuthorizationExchange(this.authorizationRequest, this.authorizationResponse);
57+
public void setUp() {
58+
this.clientRegistration = clientRegistration().build();
59+
this.authorizationRequest = request().build();
6760
this.accessTokenResponseClient = mock(OAuth2AccessTokenResponseClient.class);
6861
this.authenticationProvider = new OAuth2AuthorizationCodeAuthenticationProvider(this.accessTokenResponseClient);
69-
70-
when(this.authorizationRequest.getState()).thenReturn("12345");
71-
when(this.authorizationResponse.getState()).thenReturn("12345");
72-
when(this.authorizationRequest.getRedirectUri()).thenReturn("http://example.com");
73-
when(this.authorizationResponse.getRedirectUri()).thenReturn("http://example.com");
7462
}
7563

7664
@Test
@@ -86,60 +74,62 @@ public void supportsWhenTypeOAuth2AuthorizationCodeAuthenticationTokenThenReturn
8674

8775
@Test
8876
public void authenticateWhenAuthorizationErrorResponseThenThrowOAuth2AuthorizationException() {
89-
when(this.authorizationResponse.statusError()).thenReturn(true);
90-
when(this.authorizationResponse.getError()).thenReturn(new OAuth2Error(OAuth2ErrorCodes.INVALID_REQUEST));
77+
OAuth2AuthorizationResponse authorizationResponse = error().errorCode(OAuth2ErrorCodes.INVALID_REQUEST).build();
78+
OAuth2AuthorizationExchange authorizationExchange = new OAuth2AuthorizationExchange(
79+
this.authorizationRequest, authorizationResponse);
9180

9281
assertThatThrownBy(() -> {
9382
this.authenticationProvider.authenticate(
9483
new OAuth2AuthorizationCodeAuthenticationToken(
95-
this.clientRegistration, this.authorizationExchange));
84+
this.clientRegistration, authorizationExchange));
9685
}).isInstanceOf(OAuth2AuthorizationException.class).hasMessageContaining(OAuth2ErrorCodes.INVALID_REQUEST);
9786
}
9887

9988
@Test
10089
public void authenticateWhenAuthorizationResponseStateNotEqualAuthorizationRequestStateThenThrowOAuth2AuthorizationException() {
101-
when(this.authorizationRequest.getState()).thenReturn("12345");
102-
when(this.authorizationResponse.getState()).thenReturn("67890");
90+
OAuth2AuthorizationResponse authorizationResponse = success().state("67890").build();
91+
OAuth2AuthorizationExchange authorizationExchange = new OAuth2AuthorizationExchange(
92+
this.authorizationRequest, authorizationResponse);
10393

10494
assertThatThrownBy(() -> {
10595
this.authenticationProvider.authenticate(
10696
new OAuth2AuthorizationCodeAuthenticationToken(
107-
this.clientRegistration, this.authorizationExchange));
97+
this.clientRegistration, authorizationExchange));
10898
}).isInstanceOf(OAuth2AuthorizationException.class).hasMessageContaining("invalid_state_parameter");
10999
}
110100

111101
@Test
112102
public void authenticateWhenAuthorizationResponseRedirectUriNotEqualAuthorizationRequestRedirectUriThenThrowOAuth2AuthorizationException() {
113-
when(this.authorizationRequest.getRedirectUri()).thenReturn("http://example.com");
114-
when(this.authorizationResponse.getRedirectUri()).thenReturn("http://example2.com");
103+
OAuth2AuthorizationResponse authorizationResponse = success().redirectUri("http://example2.com").build();
104+
OAuth2AuthorizationExchange authorizationExchange = new OAuth2AuthorizationExchange(
105+
this.authorizationRequest, authorizationResponse);
115106

116107
assertThatThrownBy(() -> {
117108
this.authenticationProvider.authenticate(
118109
new OAuth2AuthorizationCodeAuthenticationToken(
119-
this.clientRegistration, this.authorizationExchange));
110+
this.clientRegistration, authorizationExchange));
120111
}).isInstanceOf(OAuth2AuthorizationException.class).hasMessageContaining("invalid_redirect_uri_parameter");
121112
}
122113

123114
@Test
124115
public void authenticateWhenAuthorizationSuccessResponseThenExchangedForAccessToken() {
125-
OAuth2AccessToken accessToken = mock(OAuth2AccessToken.class);
126-
OAuth2RefreshToken refreshToken = mock(OAuth2RefreshToken.class);
127-
OAuth2AccessTokenResponse accessTokenResponse = mock(OAuth2AccessTokenResponse.class);
128-
when(accessTokenResponse.getAccessToken()).thenReturn(accessToken);
129-
when(accessTokenResponse.getRefreshToken()).thenReturn(refreshToken);
116+
OAuth2AccessTokenResponse accessTokenResponse = accessTokenResponse().refreshToken("refresh").build();
130117
when(this.accessTokenResponseClient.getTokenResponse(any())).thenReturn(accessTokenResponse);
131118

119+
OAuth2AuthorizationExchange authorizationExchange = new OAuth2AuthorizationExchange(
120+
this.authorizationRequest, success().build());
132121
OAuth2AuthorizationCodeAuthenticationToken authenticationResult =
133122
(OAuth2AuthorizationCodeAuthenticationToken) this.authenticationProvider.authenticate(
134-
new OAuth2AuthorizationCodeAuthenticationToken(this.clientRegistration, this.authorizationExchange));
123+
new OAuth2AuthorizationCodeAuthenticationToken(this.clientRegistration, authorizationExchange));
135124

136125
assertThat(authenticationResult.isAuthenticated()).isTrue();
137126
assertThat(authenticationResult.getPrincipal()).isEqualTo(this.clientRegistration.getClientId());
138-
assertThat(authenticationResult.getCredentials()).isEqualTo(accessToken.getTokenValue());
127+
assertThat(authenticationResult.getCredentials())
128+
.isEqualTo(accessTokenResponse.getAccessToken().getTokenValue());
139129
assertThat(authenticationResult.getAuthorities()).isEqualTo(Collections.emptyList());
140130
assertThat(authenticationResult.getClientRegistration()).isEqualTo(this.clientRegistration);
141-
assertThat(authenticationResult.getAuthorizationExchange()).isEqualTo(this.authorizationExchange);
142-
assertThat(authenticationResult.getAccessToken()).isEqualTo(accessToken);
143-
assertThat(authenticationResult.getRefreshToken()).isEqualTo(refreshToken);
131+
assertThat(authenticationResult.getAuthorizationExchange()).isEqualTo(authorizationExchange);
132+
assertThat(authenticationResult.getAccessToken()).isEqualTo(accessTokenResponse.getAccessToken());
133+
assertThat(authenticationResult.getRefreshToken()).isEqualTo(accessTokenResponse.getRefreshToken());
144134
}
145135
}

oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/authentication/OAuth2AuthorizationCodeAuthenticationTokenTests.java

+11-17
Original file line numberDiff line numberDiff line change
@@ -15,40 +15,38 @@
1515
*/
1616
package org.springframework.security.oauth2.client.authentication;
1717

18+
import java.util.Collections;
19+
1820
import org.junit.Before;
1921
import org.junit.Test;
20-
import org.junit.runner.RunWith;
21-
import org.powermock.core.classloader.annotations.PrepareForTest;
22-
import org.powermock.modules.junit4.PowerMockRunner;
22+
2323
import org.springframework.security.oauth2.client.registration.ClientRegistration;
2424
import org.springframework.security.oauth2.core.OAuth2AccessToken;
2525
import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationExchange;
26-
import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationResponse;
27-
28-
import java.util.Collections;
2926

3027
import static org.assertj.core.api.Assertions.assertThat;
3128
import static org.assertj.core.api.Assertions.assertThatThrownBy;
32-
import static org.mockito.Mockito.mock;
33-
import static org.mockito.Mockito.when;
29+
import static org.springframework.security.oauth2.client.registration.TestClientRegistrations.clientRegistration;
30+
import static org.springframework.security.oauth2.core.TestOAuth2AccessTokens.noScopes;
31+
import static org.springframework.security.oauth2.core.endpoint.TestOAuth2AuthorizationRequests.request;
32+
import static org.springframework.security.oauth2.core.endpoint.TestOAuth2AuthorizationResponses.success;
3433

3534
/**
3635
* Tests for {@link OAuth2AuthorizationCodeAuthenticationToken}.
3736
*
3837
* @author Joe Grandja
3938
*/
40-
@RunWith(PowerMockRunner.class)
41-
@PrepareForTest({ClientRegistration.class, OAuth2AuthorizationExchange.class, OAuth2AuthorizationResponse.class})
4239
public class OAuth2AuthorizationCodeAuthenticationTokenTests {
4340
private ClientRegistration clientRegistration;
4441
private OAuth2AuthorizationExchange authorizationExchange;
4542
private OAuth2AccessToken accessToken;
4643

4744
@Before
4845
public void setUp() {
49-
this.clientRegistration = mock(ClientRegistration.class);
50-
this.authorizationExchange = mock(OAuth2AuthorizationExchange.class);
51-
this.accessToken = mock(OAuth2AccessToken.class);
46+
this.clientRegistration = clientRegistration().build();
47+
this.authorizationExchange = new OAuth2AuthorizationExchange(request().build(),
48+
success().code("code").build());
49+
this.accessToken = noScopes();
5250
}
5351

5452
@Test
@@ -65,10 +63,6 @@ public void constructorAuthorizationRequestResponseWhenAuthorizationExchangeIsNu
6563

6664
@Test
6765
public void constructorAuthorizationRequestResponseWhenAllParametersProvidedAndValidThenCreated() {
68-
OAuth2AuthorizationResponse authorizationResponse = mock(OAuth2AuthorizationResponse.class);
69-
when(authorizationResponse.getCode()).thenReturn("code");
70-
when(this.authorizationExchange.getAuthorizationResponse()).thenReturn(authorizationResponse);
71-
7266
OAuth2AuthorizationCodeAuthenticationToken authentication =
7367
new OAuth2AuthorizationCodeAuthenticationToken(this.clientRegistration, this.authorizationExchange);
7468

0 commit comments

Comments
 (0)