AuthorizationCodeGrantTypeHandlerTest.java revision 73c26b2cdf320b53fe8467cc81228e04e3c540c0
/*
* The contents of this file are subject to the terms of the Common Development and
* Distribution License (the License). You may not use this file except in compliance with the
* License.
*
* You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
* specific language governing permission and limitations under the License.
*
* When distributing Covered Software, include this CDDL Header Notice in each file and include
* the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
* Header, with the fields enclosed by brackets [] replaced by your own identifying
* information: "Portions copyright [year] [name of copyright owner]".
*
* Copyright 2014 ForgeRock AS.
*/
/**
* @since 12.0.0
*/
public class AuthorizationCodeGrantTypeHandlerTest {
private ClientAuthenticator clientAuthenticator;
private TokenStore tokenStore;
private ScopeValidator scopeValidator;
private RedirectUriValidator redirectUriValidator;
private TokenInvalidator tokenInvalidator;
public void setUp() {
}
@Test
public void shouldFailToCreateAccessTokenWhenAuthorizationCodeDoesNotExist() throws InvalidGrantException,
InvalidCodeException, UnauthorizedClientException, RedirectUriMismatchException, InvalidRequestException,
//Given
final AuthorizationCodeAccessTokenRequest accessTokenRequest = mock(AuthorizationCodeAccessTokenRequest.class);
given(clientAuthenticator.authenticate(eq(clientCredentials), anyMapOf(String.class, Object.class)))
//When
try {
fail();
} catch (InvalidRequestException e) {
//Then
}
}
@Test
public void shouldFailToCreateAccessTokenWhenAuthorizationCodeHasAlreadyBeenIssued() throws InvalidGrantException,
InvalidCodeException, UnauthorizedClientException, RedirectUriMismatchException, InvalidRequestException,
//Given
final AuthorizationCodeAccessTokenRequest accessTokenRequest = mock(AuthorizationCodeAccessTokenRequest.class);
given(clientAuthenticator.authenticate(eq(clientCredentials), anyMapOf(String.class, Object.class)))
//When
try {
fail();
} catch (InvalidGrantException e) {
//Then
}
}
public void shouldFailToCreateAccessTokenWhenRedirectUriDoesNotMatch() throws InvalidGrantException,
InvalidCodeException, UnauthorizedClientException, RedirectUriMismatchException, InvalidRequestException,
//Given
final AuthorizationCodeAccessTokenRequest accessTokenRequest = mock(AuthorizationCodeAccessTokenRequest.class);
given(clientAuthenticator.authenticate(eq(clientCredentials), anyMapOf(String.class, Object.class)))
//When
//Then
}
public void shouldFailToCreateAccessTokenWhenClientIdDoesNotMatch() throws InvalidGrantException,
InvalidCodeException, UnauthorizedClientException, RedirectUriMismatchException, InvalidRequestException,
//Given
final AuthorizationCodeAccessTokenRequest accessTokenRequest = mock(AuthorizationCodeAccessTokenRequest.class);
given(clientAuthenticator.authenticate(eq(clientCredentials), anyMapOf(String.class, Object.class)))
//When
//Then
}
@Test
public void shouldFailToCreateAccessTokenWhenAuthorizationCodeHasExpired() throws InvalidGrantException,
InvalidCodeException, UnauthorizedClientException, RedirectUriMismatchException, InvalidRequestException,
//Given
final AuthorizationCodeAccessTokenRequest accessTokenRequest = mock(AuthorizationCodeAccessTokenRequest.class);
given(clientAuthenticator.authenticate(eq(clientCredentials), anyMapOf(String.class, Object.class)))
//When
try {
fail();
} catch (InvalidCodeException e) {
//Then
}
}
@Test
public void shouldCreateAccessTokenWithoutRefreshToken() throws InvalidGrantException,
InvalidCodeException, UnauthorizedClientException, RedirectUriMismatchException, InvalidRequestException,
//Given
final AuthorizationCodeAccessTokenRequest accessTokenRequest = mock(AuthorizationCodeAccessTokenRequest.class);
given(clientAuthenticator.authenticate(eq(clientCredentials), anyMapOf(String.class, Object.class)))
given(tokenStore.createAccessToken(eq(AUTHORIZATION_CODE), eq("RESOURCE_OWNER_ID"), eq(clientRegistration),
//When
//Then
}
@Test
public void shouldCreateAccessTokenWithoutRefreshTokenAndScope() throws InvalidGrantException, InvalidCodeException,
UnauthorizedClientException, RedirectUriMismatchException, InvalidRequestException, InvalidClientException {
//Given
final AuthorizationCodeAccessTokenRequest accessTokenRequest = mock(AuthorizationCodeAccessTokenRequest.class);
given(clientAuthenticator.authenticate(eq(clientCredentials), anyMapOf(String.class, Object.class)))
given(tokenStore.createAccessToken(eq(AUTHORIZATION_CODE), eq("RESOURCE_OWNER_ID"), eq(clientRegistration),
//When
//Then
}
@Test
public void shouldCreateAccessTokenWithRefreshToken() throws InvalidGrantException, InvalidCodeException,
UnauthorizedClientException, RedirectUriMismatchException, InvalidRequestException, InvalidClientException {
//Given
final AuthorizationCodeAccessTokenRequest accessTokenRequest = mock(AuthorizationCodeAccessTokenRequest.class);
given(clientAuthenticator.authenticate(eq(clientCredentials), anyMapOf(String.class, Object.class)))
given(tokenStore.createAccessToken(eq(AUTHORIZATION_CODE), eq("RESOURCE_OWNER_ID"), eq(clientRegistration),
//When
//Then
}
}