/*
* *****************************************************************************
* Cloud Foundry
* Copyright (c) [2009-2015] Pivotal Software, Inc. All Rights Reserved.
* This product is licensed to you under the Apache License, Version 2.0 (the "License").
* You may not use this product except in compliance with the License.
*
* This product includes a number of subcomponents with
* separate copyright notices and license terms. Your use of these
* subcomponents is subject to the terms and conditions of the
* subcomponent's license, as noted in the LICENSE file.
* *****************************************************************************
*/
package org.cloudfoundry.identity.client.token;
import org.junit.Before;
import org.junit.Test;
import java.net.URI;
import java.util.Arrays;
import static java.util.Collections.EMPTY_LIST;
import static org.cloudfoundry.identity.client.token.GrantType.AUTHORIZATION_CODE;
import static org.cloudfoundry.identity.client.token.GrantType.AUTHORIZATION_CODE_WITH_TOKEN;
import static org.cloudfoundry.identity.client.token.GrantType.CLIENT_CREDENTIALS;
import static org.cloudfoundry.identity.client.token.GrantType.FETCH_TOKEN_FROM_CODE;
import static org.cloudfoundry.identity.client.token.GrantType.PASSWORD;
import static org.cloudfoundry.identity.client.token.GrantType.PASSWORD_WITH_PASSCODE;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class TokenRequestTest {
private TokenRequest request;
@Before
public void setUp() throws Exception {
URI turi = new URI("http://localhost:8080/uaa/oauth/token");
URI auri = new URI("http://localhost:8080/uaa/oauth/authorize");
request = new TokenRequest(turi, auri);
}
@Test
public void test_is_client_credentials_grant_valid() throws Exception {
assertFalse(request.isValid());
assertFalse(request.setGrantType(CLIENT_CREDENTIALS).isValid());
assertFalse(request.setClientId("client_id").isValid());
assertTrue(request.setClientSecret("client_secret").isValid());
}
@Test
public void test_is_password_grant_valid() throws Exception {
assertFalse(request.isValid());
assertFalse(request.setGrantType(PASSWORD).isValid());
assertFalse(request.setClientId("client_id").isValid());
assertFalse(request.setClientSecret("client_secret").isValid());
assertFalse(request.setUsername("username").isValid());
assertTrue(request.setPassword("password").isValid());
}
@Test
public void test_is_password_with_code_grant_valid() throws Exception {
assertFalse(request.isValid());
assertFalse(request.setGrantType(PASSWORD_WITH_PASSCODE).isValid());
assertFalse(request.setClientId("client_id").isValid());
assertFalse(request.setClientSecret("client_secret").isValid());
assertFalse(request.setUsername("username").isValid());
assertTrue(request.setPasscode("passcode").isValid());
}
@Test
public void test_is_auth_code_grant_valid() throws Exception {
assertFalse(request.isValid());
assertFalse(request.setGrantType(AUTHORIZATION_CODE).isValid());
assertFalse(request.setClientId("client_id").isValid());
assertFalse(request.setClientSecret("client_secret").isValid());
assertFalse(request.setUsername("username").isValid());
assertFalse(request.setPassword("password").isValid());
assertFalse(request.setState("state").isValid());
assertTrue(request.setRedirectUri(new URI("http://localhost:8080/test")).isValid());
}
@Test
public void test_is_fetch_token_from_code_valid() throws Exception {
assertFalse(request.isValid());
assertFalse(request.setGrantType(FETCH_TOKEN_FROM_CODE).isValid());
assertFalse(request.setClientId("client_id").isValid());
assertFalse(request.setClientSecret("client_secret").isValid());
assertFalse(request.setAuthorizationCode("some code").isValid());
assertTrue(request.setRedirectUri(new URI("http://localhost:8080/test")).isValid());
}
@Test
public void test_is_auth_code_grant_api_valid() throws Exception {
assertFalse(request.isValid());
assertFalse(request.setGrantType(AUTHORIZATION_CODE_WITH_TOKEN).isValid());
assertFalse(request.setClientId("client_id").isValid());
assertFalse(request.setClientSecret("client_secret").isValid());
assertFalse(request.setUsername("username").isValid());
assertFalse(request.setPassword("password").isValid());
assertFalse(request.setAuthCodeAPIToken("some token").isValid());
assertFalse(request.setState("state").isValid());
assertTrue(request.setRedirectUri(new URI("http://localhost:8080/test")).isValid());
}
@Test
public void test_is_saml2_bearer_grant_api_valid() throws Exception {
assertFalse(request.isValid());
assertFalse(request.setGrantType(GrantType.SAML2_BEARER).isValid());
assertFalse(request.setClientId("client_id").isValid());
assertFalse(request.setClientSecret("client_secret").isValid());
assertTrue(request.setAuthCodeAPIToken("some token").isValid());
}
@Test
public void test_is_null_function() {
assertTrue(request.hasAnyNullValues(null));
assertFalse(request.hasAnyNullValues(EMPTY_LIST));
assertTrue(request.hasAnyNullValues(Arrays.asList("1", null, "2")));
assertFalse(request.hasAnyNullValues(Arrays.asList("1", "2", "3")));
}
}