diff options
Diffstat (limited to 'javatests/com/google/gerrit/server/auth/oauth/OAuthTokenCacheTest.java')
-rw-r--r-- | javatests/com/google/gerrit/server/auth/oauth/OAuthTokenCacheTest.java | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/javatests/com/google/gerrit/server/auth/oauth/OAuthTokenCacheTest.java b/javatests/com/google/gerrit/server/auth/oauth/OAuthTokenCacheTest.java new file mode 100644 index 0000000000..81fd6d7157 --- /dev/null +++ b/javatests/com/google/gerrit/server/auth/oauth/OAuthTokenCacheTest.java @@ -0,0 +1,75 @@ +package com.google.gerrit.server.auth.oauth; + +import static com.google.common.truth.Truth.assertThat; +import static com.google.common.truth.extensions.proto.ProtoTruth.assertThat; +import static com.google.gerrit.server.cache.testing.SerializedClassSubject.assertThatSerializedClass; + +import com.google.common.collect.ImmutableMap; +import com.google.gerrit.extensions.auth.oauth.OAuthToken; +import com.google.gerrit.server.cache.proto.Cache.OAuthTokenProto; +import com.google.gerrit.server.cache.serialize.CacheSerializer; +import java.lang.reflect.Type; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +@RunWith(JUnit4.class) +public final class OAuthTokenCacheTest { + @Test + public void oAuthTokenSerializer() throws Exception { + OAuthToken token = new OAuthToken("token", "secret", "raw", 12345L, "provider"); + CacheSerializer<OAuthToken> s = new OAuthTokenCache.Serializer(); + byte[] serialized = s.serialize(token); + assertThat(OAuthTokenProto.parseFrom(serialized)) + .isEqualTo( + OAuthTokenProto.newBuilder() + .setToken("token") + .setSecret("secret") + .setRaw("raw") + .setExpiresAt(12345L) + .setProviderId("provider") + .build()); + assertThat(s.deserialize(serialized)).isEqualTo(token); + } + + @Test + public void oAuthTokenSerializerWithNullProvider() throws Exception { + OAuthToken tokenWithNull = new OAuthToken("token", "secret", "raw", 12345L, null); + CacheSerializer<OAuthToken> s = new OAuthTokenCache.Serializer(); + OAuthTokenProto expectedProto = + OAuthTokenProto.newBuilder() + .setToken("token") + .setSecret("secret") + .setRaw("raw") + .setExpiresAt(12345L) + .setProviderId("") + .build(); + + byte[] serializedWithNull = s.serialize(tokenWithNull); + assertThat(OAuthTokenProto.parseFrom(serializedWithNull)).isEqualTo(expectedProto); + assertThat(s.deserialize(serializedWithNull)).isEqualTo(tokenWithNull); + + OAuthToken tokenWithEmptyString = new OAuthToken("token", "secret", "raw", 12345L, ""); + assertThat(tokenWithEmptyString).isEqualTo(tokenWithNull); + byte[] serializedWithEmptyString = s.serialize(tokenWithEmptyString); + assertThat(OAuthTokenProto.parseFrom(serializedWithEmptyString)).isEqualTo(expectedProto); + assertThat(s.deserialize(serializedWithEmptyString)).isEqualTo(tokenWithNull); + } + + /** + * See {@link com.google.gerrit.server.cache.testing.SerializedClassSubject} for background and + * what to do if this test fails. + */ + @Test + public void oAuthTokenFields() throws Exception { + assertThatSerializedClass(OAuthToken.class) + .hasFields( + ImmutableMap.<String, Type>builder() + .put("token", String.class) + .put("secret", String.class) + .put("raw", String.class) + .put("expiresAt", long.class) + .put("providerId", String.class) + .build()); + } +} |