3131
3232package com .google .auth .oauth2 ;
3333
34- import static org .junit .Assert .assertArrayEquals ;
3534import static org .junit .Assert .assertEquals ;
3635import static org .junit .Assert .assertFalse ;
36+ import static org .junit .Assert .assertNotSame ;
37+ import static org .junit .Assert .assertSame ;
3738import static org .junit .Assert .assertTrue ;
3839
3940import java .io .IOException ;
41+ import java .util .ArrayList ;
4042import java .util .Arrays ;
4143import java .util .Date ;
44+ import java .util .List ;
4245import org .junit .Test ;
4346import org .junit .runner .RunWith ;
4447import org .junit .runners .JUnit4 ;
@@ -49,15 +52,16 @@ public class AccessTokenTest extends BaseSerializationTest {
4952
5053 private static final String TOKEN = "AccessToken" ;
5154 private static final Date EXPIRATION_DATE = new Date ();
52- private static final String SCOPES = "scope1 scope2" ;
55+ private static final List <String > SCOPES = Arrays .asList ("scope1" , "scope2" );
56+ private static final String SCOPES_STRING = "scope1 scope2" ;
5357
5458 @ Test
5559 public void constructor () {
5660 AccessToken accessToken = new AccessToken (TOKEN , EXPIRATION_DATE );
5761 assertEquals (TOKEN , accessToken .getTokenValue ());
5862 assertEquals (EXPIRATION_DATE , accessToken .getExpirationTime ());
5963 assertEquals (EXPIRATION_DATE .getTime (), (long ) accessToken .getExpirationTimeMillis ());
60- assertEquals (null , accessToken .getScopes ());
64+ assertEquals (new ArrayList <>() , accessToken .getScopes ());
6165 }
6266
6367 @ Test
@@ -66,12 +70,41 @@ public void builder() {
6670 AccessToken .newBuilder ()
6771 .setExpirationTime (EXPIRATION_DATE )
6872 .setTokenValue (TOKEN )
69- .setScopes (SCOPES )
73+ .setScopes (SCOPES_STRING )
7074 .build ();
7175 assertEquals (TOKEN , accessToken .getTokenValue ());
7276 assertEquals (EXPIRATION_DATE , accessToken .getExpirationTime ());
7377 assertEquals (EXPIRATION_DATE .getTime (), (long ) accessToken .getExpirationTimeMillis ());
74- assertArrayEquals (SCOPES .split (" " ), accessToken .getScopes ().toArray ());
78+ assertEquals (SCOPES , accessToken .getScopes ());
79+ assertNotSame (SCOPES , accessToken .getScopes ());
80+
81+ // scopes list
82+ accessToken =
83+ AccessToken .newBuilder ()
84+ .setExpirationTime (EXPIRATION_DATE )
85+ .setTokenValue (TOKEN )
86+ .setScopes (SCOPES )
87+ .build ();
88+ assertEquals (SCOPES , accessToken .getScopes ());
89+ assertSame (SCOPES , accessToken .getScopes ());
90+
91+ // single scope
92+ accessToken =
93+ AccessToken .newBuilder ()
94+ .setExpirationTime (EXPIRATION_DATE )
95+ .setTokenValue (TOKEN )
96+ .setScopes ("dummy" )
97+ .build ();
98+ assertEquals (Arrays .asList ("dummy" ), accessToken .getScopes ());
99+
100+ // empty scope
101+ accessToken =
102+ AccessToken .newBuilder ()
103+ .setExpirationTime (EXPIRATION_DATE )
104+ .setTokenValue (TOKEN )
105+ .setScopes (" " )
106+ .build ();
107+ assertEquals (new ArrayList <>(), accessToken .getScopes ());
75108 }
76109
77110 @ Test
@@ -87,6 +120,7 @@ public void equals_true() throws IOException {
87120 AccessToken .newBuilder ()
88121 .setExpirationTime (EXPIRATION_DATE )
89122 .setTokenValue (TOKEN )
123+ .setTokenValue (TOKEN )
90124 .setScopes (SCOPES )
91125 .build ();
92126
@@ -107,7 +141,7 @@ public void equals_false_scopes() throws IOException {
107141 AccessToken .newBuilder ()
108142 .setExpirationTime (EXPIRATION_DATE )
109143 .setTokenValue (TOKEN )
110- .setScopes ("scope1" )
144+ .setScopes (Arrays . asList ( "scope1" ) )
111145 .build ();
112146
113147 assertFalse (accessToken .equals (otherAccessToken ));
@@ -165,7 +199,7 @@ public void toString_containsFields() {
165199 String expectedToString =
166200 String .format (
167201 "AccessToken{tokenValue=%s, expirationTimeMillis=%d, scopes=%s}" ,
168- TOKEN , EXPIRATION_DATE .getTime (), Arrays . asList ( SCOPES . split ( " " )) );
202+ TOKEN , EXPIRATION_DATE .getTime (), SCOPES );
169203 assertEquals (expectedToString , accessToken .toString ());
170204 }
171205
@@ -190,14 +224,27 @@ public void hashCode_equals() throws IOException {
190224
191225 @ Test
192226 public void serialize () throws IOException , ClassNotFoundException {
227+ AccessToken emptyScopes =
228+ AccessToken .newBuilder ()
229+ .setExpirationTime (EXPIRATION_DATE )
230+ .setTokenValue (TOKEN )
231+ .setScopes ("" )
232+ .build ();
233+
234+ AccessToken deserializedAccessToken = serializeAndDeserialize (emptyScopes );
235+ assertEquals (emptyScopes , deserializedAccessToken );
236+ assertEquals (emptyScopes .hashCode (), deserializedAccessToken .hashCode ());
237+ assertEquals (emptyScopes .toString (), deserializedAccessToken .toString ());
238+ assertEquals (new ArrayList <>(), deserializedAccessToken .getScopes ());
239+
193240 AccessToken accessToken =
194241 AccessToken .newBuilder ()
195242 .setExpirationTime (EXPIRATION_DATE )
196243 .setTokenValue (TOKEN )
197244 .setScopes (SCOPES )
198245 .build ();
199246
200- AccessToken deserializedAccessToken = serializeAndDeserialize (accessToken );
247+ deserializedAccessToken = serializeAndDeserialize (accessToken );
201248 assertEquals (accessToken , deserializedAccessToken );
202249 assertEquals (accessToken .hashCode (), deserializedAccessToken .hashCode ());
203250 assertEquals (accessToken .toString (), deserializedAccessToken .toString ());
0 commit comments