blob: a9cf635c63dd888684cb3c18b8cb72dc681e9e6b [file] [log] [blame]
// Copyright (C) 2015 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.googlesource.gerrit.plugins.cfoauth;
import static com.googlesource.gerrit.plugins.cfoauth.AccessToken.UNDEFINED;
import static com.googlesource.gerrit.plugins.cfoauth.TestUtils.*;
import static org.junit.Assert.*;
import org.junit.Test;
public class AccessTokenTest {
private static final String TOKEN_VALUE = "tokenvalue";
private static final String ANOTHER_TOKEN_VALUE = "anothertokenvalue";
private static final long EXPIRES_AT = 4711L;
private static final AccessToken TOKEN =
new AccessToken(TOKEN_VALUE, FOO, BAR, EXPIRES_AT);
private static AccessToken TOKEN_DIFFERENT_VALUE =
new AccessToken(ANOTHER_TOKEN_VALUE, FOO, BAR, EXPIRES_AT);
private static AccessToken TOKEN_DIFFERENT_NAME =
new AccessToken(TOKEN_VALUE, ANOTHER_FOO, BAR, EXPIRES_AT);
private static AccessToken TOKEN_DIFFERENT_EMAIL =
new AccessToken(TOKEN_VALUE, FOO, ANOTHER_BAR, EXPIRES_AT);
private static final AccessToken TOKEN_DIFFERENT_EXPIRES =
new AccessToken(TOKEN_VALUE, FOO, BAR, EXPIRES_AT + 1);
@Test
public void testCreateAccessToken() throws Exception {
assertAccessToken(TOKEN, FOO, BAR, null, TOKEN_VALUE, EXPIRES_AT);
}
@Test
public void testUndefined() throws Exception {
assertAccessToken(UNDEFINED, "", "", "", "", 0);
assertTrue(UNDEFINED.isExpired());
}
@Test
public void testExpiresAt() throws Exception {
assertTrue(TOKEN.isExpired());
assertFalse(new AccessToken(TOKEN_VALUE, FOO, BAR,
System.currentTimeMillis() + 10).isExpired());
}
@Test
public void testEquals() throws Exception {
assertTrue(TOKEN.equals(TOKEN));
assertFalse(TOKEN.equals(TOKEN_DIFFERENT_VALUE));
assertFalse(TOKEN_DIFFERENT_VALUE.equals(TOKEN));
assertFalse(TOKEN.equals(TOKEN_DIFFERENT_NAME));
assertFalse(TOKEN_DIFFERENT_NAME.equals(TOKEN));
assertFalse(TOKEN.equals(TOKEN_DIFFERENT_EMAIL));
assertFalse(TOKEN_DIFFERENT_EXPIRES.equals(TOKEN));
assertFalse(TOKEN.equals(TOKEN_DIFFERENT_EXPIRES));
assertFalse(TOKEN.equals(null));
assertFalse(TOKEN.equals(MR_FOO));
}
@Test(expected=IllegalArgumentException.class)
public void testMissingValue() throws Exception {
new AccessToken(null, FOO, BAR, EXPIRES_AT);
}
private void assertAccessToken(AccessToken accessToken, String username,
String emailAddress, String displayName, String value, long expiresAt) {
assertUserInfo(accessToken.getUserInfo(), username,
emailAddress, displayName);
assertEquals(value, accessToken.getValue());
assertEquals(expiresAt, accessToken.getExpiresAt());
assertTrue(accessToken.isExpired());
}
}