Skip to content

Commit

Permalink
chore: migrate tests in oauth2_http module from JUnit4 to JUnit5 - fi…
Browse files Browse the repository at this point in the history
…fth iteration (#756) (#767)
  • Loading branch information
Captain1653 committed Oct 13, 2021
1 parent d7edc45 commit 59dfb35
Show file tree
Hide file tree
Showing 7 changed files with 226 additions and 267 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@

/** Mock thread-less executor. */
public final class MockExecutor implements Executor {
private LinkedList<Runnable> tasks = new LinkedList<Runnable>();
private LinkedList<Runnable> tasks = new LinkedList<>();

@Override
public void execute(Runnable task) {
Expand All @@ -45,7 +45,7 @@ public void execute(Runnable task) {

int runTasks() {
LinkedList<Runnable> savedTasks = tasks;
tasks = new LinkedList<Runnable>();
tasks = new LinkedList<>();
for (Runnable task : savedTasks) {
task.run();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ public LowLevelHttpResponse execute() throws IOException {
}

// https://cloud.google.com/compute/docs/instances/verifying-instance-identity#token_format
Map<String, String> queryPairs = new HashMap<String, String>();
Map<String, String> queryPairs = new HashMap<>();
String query = (new URL(url)).getQuery();
String[] pairs = query.split("&");
for (String pair : pairs) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,10 @@ public class MockTokenServerTransport extends MockHttpTransport {
static final String EXPECTED_GRANT_TYPE = "urn:ietf:params:oauth:grant-type:jwt-bearer";
static final JsonFactory JSON_FACTORY = new GsonFactory();
int buildRequestCount;
final Map<String, String> clients = new HashMap<String, String>();
final Map<String, String> refreshTokens = new HashMap<String, String>();
final Map<String, String> serviceAccounts = new HashMap<String, String>();
final Map<String, String> codes = new HashMap<String, String>();
final Map<String, String> clients = new HashMap<>();
final Map<String, String> refreshTokens = new HashMap<>();
final Map<String, String> serviceAccounts = new HashMap<>();
final Map<String, String> codes = new HashMap<>();
URI tokenServerUri = OAuth2Utils.TOKEN_SERVER_URI;
private IOException error;
private final Queue<Future<LowLevelHttpResponse>> responseSequence = new ArrayDeque<>();
Expand Down Expand Up @@ -106,7 +106,7 @@ public void setError(IOException error) {

public void addResponseErrorSequence(IOException... errors) {
for (IOException error : errors) {
responseSequence.add(Futures.<LowLevelHttpResponse>immediateFailedFuture(error));
responseSequence.add(Futures.immediateFailedFuture(error));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,13 @@
package com.google.auth.oauth2;

import static java.util.concurrent.TimeUnit.HOURS;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertSame;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;

import com.google.api.client.util.Clock;
import com.google.auth.TestClock;
Expand Down Expand Up @@ -69,16 +68,12 @@
import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.function.ThrowingRunnable;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

/** Test case for {@link OAuth2Credentials}. */
@RunWith(JUnit4.class)
public class OAuth2CredentialsTest extends BaseSerializationTest {
class OAuth2CredentialsTest extends BaseSerializationTest {

private static final String CLIENT_SECRET = "jakuaL9YyieakhECKL2SwZcu";
private static final String CLIENT_ID = "ya29.1.AADtN_UtlxN3PuGAxrN2XQnZTVRvDyVWnYq4I6dws";
Expand All @@ -88,25 +83,25 @@ public class OAuth2CredentialsTest extends BaseSerializationTest {

private ExecutorService realExecutor;

@Before
public void setUp() {
@BeforeEach
void setUp() {
realExecutor = Executors.newCachedThreadPool();
}

@After
public void tearDown() {
@AfterEach
void tearDown() {
realExecutor.shutdown();
}

@Test
public void constructor_storesAccessToken() {
void constructor_storesAccessToken() {
OAuth2Credentials credentials =
OAuth2Credentials.newBuilder().setAccessToken(new AccessToken(ACCESS_TOKEN, null)).build();
assertEquals(credentials.getAccessToken().getTokenValue(), ACCESS_TOKEN);
assertEquals(ACCESS_TOKEN, credentials.getAccessToken().getTokenValue());
}

@Test
public void constructor_overrideMargin() throws Throwable {
void constructor_overrideMargin() throws Throwable {
Duration staleMargin = Duration.ofMinutes(3);
Duration expirationMargin = Duration.ofMinutes(2);

Expand Down Expand Up @@ -187,18 +182,18 @@ public AccessToken refreshAccessToken() throws IOException {
}

@Test
public void getAuthenticationType_returnsOAuth2() {
void getAuthenticationType_returnsOAuth2() {
OAuth2Credentials credentials =
UserCredentials.newBuilder()
.setClientId(CLIENT_ID)
.setClientSecret(CLIENT_SECRET)
.setRefreshToken(REFRESH_TOKEN)
.build();
assertEquals(credentials.getAuthenticationType(), "OAuth2");
assertEquals("OAuth2", credentials.getAuthenticationType());
}

@Test
public void hasRequestMetadata_returnsTrue() {
void hasRequestMetadata_returnsTrue() {
OAuth2Credentials credentials =
UserCredentials.newBuilder()
.setClientId(CLIENT_ID)
Expand All @@ -209,7 +204,7 @@ public void hasRequestMetadata_returnsTrue() {
}

@Test
public void hasRequestMetadataOnly_returnsTrue() {
void hasRequestMetadataOnly_returnsTrue() {
OAuth2Credentials credentials =
UserCredentials.newBuilder()
.setClientId(CLIENT_ID)
Expand All @@ -220,7 +215,7 @@ public void hasRequestMetadataOnly_returnsTrue() {
}

@Test
public void addChangeListener_notifiesOnRefresh() throws IOException {
void addChangeListener_notifiesOnRefresh() throws IOException {
final String accessToken1 = "1/MkSJoj1xsli0AccessToken_NKPY2";
final String accessToken2 = "2/MkSJoj1xsli0AccessToken_NKPY2";
MockTokenServerTransportFactory transportFactory = new MockTokenServerTransportFactory();
Expand Down Expand Up @@ -258,7 +253,7 @@ public void addChangeListener_notifiesOnRefresh() throws IOException {
}

@Test
public void removeChangeListener_unregisters_observer() throws IOException {
void removeChangeListener_unregisters_observer() throws IOException {
final String accessToken1 = "1/MkSJoj1xsli0AccessToken_NKPY2";
final String accessToken2 = "2/MkSJoj1xsli0AccessToken_NKPY2";
MockTokenServerTransportFactory transportFactory = new MockTokenServerTransportFactory();
Expand Down Expand Up @@ -295,7 +290,7 @@ public void removeChangeListener_unregisters_observer() throws IOException {
}

@Test
public void getRequestMetadata_blocking_cachesExpiringToken() throws IOException {
void getRequestMetadata_blocking_cachesExpiringToken() throws IOException {
final String accessToken1 = "1/MkSJoj1xsli0AccessToken_NKPY2";
final String accessToken2 = "2/MkSJoj1xsli0AccessToken_NKPY2";
MockTokenServerTransportFactory transportFactory = new MockTokenServerTransportFactory();
Expand Down Expand Up @@ -333,13 +328,11 @@ public void getRequestMetadata_blocking_cachesExpiringToken() throws IOException
clock.addToCurrentTime(60 * 60 * 1000);
assertEquals(0, transportFactory.transport.buildRequestCount);

try {
credentials.getRequestMetadata(CALL_URI);
fail("Should throw");
} catch (IOException e) {
assertSame(error, e);
assertEquals(1, transportFactory.transport.buildRequestCount--);
}
IOException exception =
assertThrows(
IOException.class, () -> credentials.getRequestMetadata(CALL_URI), "Should throw");
assertSame(error, exception);
assertEquals(1, transportFactory.transport.buildRequestCount--);

// Reset the error and try again
transportFactory.transport.setError(null);
Expand All @@ -349,7 +342,7 @@ public void getRequestMetadata_blocking_cachesExpiringToken() throws IOException
}

@Test
public void getRequestMetadata_async() throws IOException {
void getRequestMetadata_async() {
final String accessToken1 = "1/MkSJoj1xsli0AccessToken_NKPY2";
final String accessToken2 = "2/MkSJoj1xsli0AccessToken_NKPY2";
MockTokenServerTransportFactory transportFactory = new MockTokenServerTransportFactory();
Expand Down Expand Up @@ -419,8 +412,7 @@ public void getRequestMetadata_async() throws IOException {
}

@Test
public void getRequestMetadata_async_refreshRace()
throws ExecutionException, InterruptedException {
void getRequestMetadata_async_refreshRace() throws ExecutionException, InterruptedException {
final String accessToken1 = "1/MkSJoj1xsli0AccessToken_NKPY2";
MockTokenServerTransportFactory transportFactory = new MockTokenServerTransportFactory();
transportFactory.transport.addClient(CLIENT_ID, CLIENT_SECRET);
Expand Down Expand Up @@ -478,7 +470,7 @@ public Map<String, List<String>> call() throws Exception {
}

@Test
public void getRequestMetadata_temporaryToken_hasToken() throws IOException {
void getRequestMetadata_temporaryToken_hasToken() throws IOException {
OAuth2Credentials credentials =
OAuth2Credentials.newBuilder().setAccessToken(new AccessToken(ACCESS_TOKEN, null)).build();

Expand All @@ -488,7 +480,7 @@ public void getRequestMetadata_temporaryToken_hasToken() throws IOException {
}

@Test
public void getRequestMetadata_staleTemporaryToken() throws IOException, InterruptedException {
void getRequestMetadata_staleTemporaryToken() throws IOException, InterruptedException {
Instant actualExpiration = Instant.now();
Instant clientStale = actualExpiration.minus(OAuth2Credentials.DEFAULT_REFRESH_MARGIN);

Expand Down Expand Up @@ -558,7 +550,7 @@ public AccessToken refreshAccessToken() {
}

@Test
public void getRequestMetadata_staleTemporaryToken_expirationWaits() throws Throwable {
void getRequestMetadata_staleTemporaryToken_expirationWaits() throws Throwable {
Instant actualExpiration = Instant.now();
Instant clientStale = actualExpiration.minus(OAuth2Credentials.DEFAULT_REFRESH_MARGIN);
Instant clientExpired = actualExpiration.minus(OAuth2Credentials.DEFAULT_EXPIRATION_MARGIN);
Expand Down Expand Up @@ -627,7 +619,7 @@ public AccessToken refreshAccessToken() {
}

@Test
public void getRequestMetadata_singleFlightErrorSharing() {
void getRequestMetadata_singleFlightErrorSharing() {
Instant actualExpiration = Instant.now();
Instant clientStale = actualExpiration.minus(OAuth2Credentials.DEFAULT_REFRESH_MARGIN);
Instant clientExpired = actualExpiration.minus(OAuth2Credentials.DEFAULT_EXPIRATION_MARGIN);
Expand Down Expand Up @@ -671,32 +663,17 @@ public Map<String, List<String>> call() throws Exception {

// Get the error that getRequestMetadata(uri) created
Throwable actualBlockingError =
assertThrows(
ExecutionException.class,
new ThrowingRunnable() {
@Override
public void run() throws Throwable {
blockingCall.get();
}
})
.getCause();
assertThrows(ExecutionException.class, blockingCall::get).getCause();

assertEquals(error, actualBlockingError);

RuntimeException actualAsyncError =
assertThrows(
RuntimeException.class,
new ThrowingRunnable() {
@Override
public void run() throws Throwable {
callback1.awaitResult();
}
});
assertThrows(RuntimeException.class, callback1::awaitResult);
assertEquals(error, actualAsyncError);
}

@Test
public void getRequestMetadata_syncErrorsIncludeCallingStackframe() {
void getRequestMetadata_syncErrorsIncludeCallingStackframe() {
final OAuth2Credentials creds =
new OAuth2Credentials() {
@Override
Expand Down Expand Up @@ -726,7 +703,7 @@ public AccessToken refreshAccessToken() {
}

@Test
public void refresh_refreshesToken() throws IOException {
void refresh_refreshesToken() throws IOException {
final String accessToken1 = "1/MkSJoj1xsli0AccessToken_NKPY2";
final String accessToken2 = "2/MkSJoj1xsli0AccessToken_NKPY2";
MockTokenServerTransportFactory transportFactory = new MockTokenServerTransportFactory();
Expand Down Expand Up @@ -762,7 +739,7 @@ public void refresh_refreshesToken() throws IOException {
}

@Test
public void refreshIfExpired_refreshesToken() throws IOException {
void refreshIfExpired_refreshesToken() throws IOException {
final String accessToken1 = "1/MkSJoj1xsli0AccessToken_NKPY2";
final String accessToken2 = "2/MkSJoj1xsli0AccessToken_NKPY2";
MockTokenServerTransportFactory transportFactory = new MockTokenServerTransportFactory();
Expand Down Expand Up @@ -805,15 +782,21 @@ public void refreshIfExpired_refreshesToken() throws IOException {
assertEquals(1, transportFactory.transport.buildRequestCount--);
}

@Test(expected = IllegalStateException.class)
public void refresh_temporaryToken_throws() throws IOException {
OAuth2Credentials credentials =
OAuth2Credentials.newBuilder().setAccessToken(new AccessToken(ACCESS_TOKEN, null)).build();
credentials.refresh();
@Test
void refresh_temporaryToken_throws() {
assertThrows(
IllegalStateException.class,
() -> {
OAuth2Credentials credentials =
OAuth2Credentials.newBuilder()
.setAccessToken(new AccessToken(ACCESS_TOKEN, null))
.build();
credentials.refresh();
});
}

@Test
public void equals_true() throws IOException {
void equals_true() {
final String accessToken1 = "1/MkSJoj1xsli0AccessToken_NKPY2";
OAuth2Credentials credentials =
OAuth2Credentials.newBuilder().setAccessToken(new AccessToken(accessToken1, null)).build();
Expand All @@ -824,7 +807,7 @@ public void equals_true() throws IOException {
}

@Test
public void equals_false_accessToken() throws IOException {
void equals_false_accessToken() {
final String accessToken1 = "1/MkSJoj1xsli0AccessToken_NKPY2";
final String accessToken2 = "2/MkSJoj1xsli0AccessToken_NKPY2";
OAuth2Credentials credentials =
Expand All @@ -836,7 +819,7 @@ public void equals_false_accessToken() throws IOException {
}

@Test
public void toString_containsFields() throws IOException {
void toString_containsFields() {
AccessToken accessToken = new AccessToken("1/MkSJoj1xsli0AccessToken_NKPY2", null);
OAuth2Credentials credentials =
OAuth2Credentials.newBuilder().setAccessToken(accessToken).build();
Expand All @@ -851,7 +834,7 @@ public void toString_containsFields() throws IOException {
}

@Test
public void hashCode_equals() throws IOException {
void hashCode_equals() throws IOException {
final String accessToken = "1/MkSJoj1xsli0AccessToken_NKPY2";
OAuth2Credentials credentials =
OAuth2Credentials.newBuilder().setAccessToken(new AccessToken(accessToken, null)).build();
Expand All @@ -861,7 +844,7 @@ public void hashCode_equals() throws IOException {
}

@Test
public void serialize() throws IOException, ClassNotFoundException {
void serialize() throws IOException, ClassNotFoundException {
final String accessToken = "1/MkSJoj1xsli0AccessToken_NKPY2";
OAuth2Credentials credentials =
OAuth2Credentials.newBuilder().setAccessToken(new AccessToken(accessToken, null)).build();
Expand Down

0 comments on commit 59dfb35

Please sign in to comment.