31
31
32
32
package com .google .auth .oauth2 ;
33
33
34
- import static org .junit .Assert .assertArrayEquals ;
35
34
import static org .junit .Assert .assertEquals ;
36
35
import static org .junit .Assert .assertFalse ;
36
+ import static org .junit .Assert .assertNotSame ;
37
+ import static org .junit .Assert .assertSame ;
37
38
import static org .junit .Assert .assertTrue ;
38
39
39
40
import java .io .IOException ;
41
+ import java .util .ArrayList ;
40
42
import java .util .Arrays ;
41
43
import java .util .Date ;
44
+ import java .util .List ;
42
45
import org .junit .Test ;
43
46
import org .junit .runner .RunWith ;
44
47
import org .junit .runners .JUnit4 ;
@@ -49,15 +52,16 @@ public class AccessTokenTest extends BaseSerializationTest {
49
52
50
53
private static final String TOKEN = "AccessToken" ;
51
54
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" ;
53
57
54
58
@ Test
55
59
public void constructor () {
56
60
AccessToken accessToken = new AccessToken (TOKEN , EXPIRATION_DATE );
57
61
assertEquals (TOKEN , accessToken .getTokenValue ());
58
62
assertEquals (EXPIRATION_DATE , accessToken .getExpirationTime ());
59
63
assertEquals (EXPIRATION_DATE .getTime (), (long ) accessToken .getExpirationTimeMillis ());
60
- assertEquals (null , accessToken .getScopes ());
64
+ assertEquals (new ArrayList <>() , accessToken .getScopes ());
61
65
}
62
66
63
67
@ Test
@@ -66,12 +70,41 @@ public void builder() {
66
70
AccessToken .newBuilder ()
67
71
.setExpirationTime (EXPIRATION_DATE )
68
72
.setTokenValue (TOKEN )
69
- .setScopes (SCOPES )
73
+ .setScopes (SCOPES_STRING )
70
74
.build ();
71
75
assertEquals (TOKEN , accessToken .getTokenValue ());
72
76
assertEquals (EXPIRATION_DATE , accessToken .getExpirationTime ());
73
77
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 ());
75
108
}
76
109
77
110
@ Test
@@ -87,6 +120,7 @@ public void equals_true() throws IOException {
87
120
AccessToken .newBuilder ()
88
121
.setExpirationTime (EXPIRATION_DATE )
89
122
.setTokenValue (TOKEN )
123
+ .setTokenValue (TOKEN )
90
124
.setScopes (SCOPES )
91
125
.build ();
92
126
@@ -107,7 +141,7 @@ public void equals_false_scopes() throws IOException {
107
141
AccessToken .newBuilder ()
108
142
.setExpirationTime (EXPIRATION_DATE )
109
143
.setTokenValue (TOKEN )
110
- .setScopes ("scope1" )
144
+ .setScopes (Arrays . asList ( "scope1" ) )
111
145
.build ();
112
146
113
147
assertFalse (accessToken .equals (otherAccessToken ));
@@ -165,7 +199,7 @@ public void toString_containsFields() {
165
199
String expectedToString =
166
200
String .format (
167
201
"AccessToken{tokenValue=%s, expirationTimeMillis=%d, scopes=%s}" ,
168
- TOKEN , EXPIRATION_DATE .getTime (), Arrays . asList ( SCOPES . split ( " " )) );
202
+ TOKEN , EXPIRATION_DATE .getTime (), SCOPES );
169
203
assertEquals (expectedToString , accessToken .toString ());
170
204
}
171
205
@@ -190,14 +224,27 @@ public void hashCode_equals() throws IOException {
190
224
191
225
@ Test
192
226
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
+
193
240
AccessToken accessToken =
194
241
AccessToken .newBuilder ()
195
242
.setExpirationTime (EXPIRATION_DATE )
196
243
.setTokenValue (TOKEN )
197
244
.setScopes (SCOPES )
198
245
.build ();
199
246
200
- AccessToken deserializedAccessToken = serializeAndDeserialize (accessToken );
247
+ deserializedAccessToken = serializeAndDeserialize (accessToken );
201
248
assertEquals (accessToken , deserializedAccessToken );
202
249
assertEquals (accessToken .hashCode (), deserializedAccessToken .hashCode ());
203
250
assertEquals (accessToken .toString (), deserializedAccessToken .toString ());
0 commit comments