1414
1515package net .openid .appauth ;
1616
17- import static net .openid .appauth .TestValues .TEST_APP_REDIRECT_URI ;
18- import static net .openid .appauth .TestValues .TEST_AUTH_CODE ;
19- import static net .openid .appauth .TestValues .TEST_CLIENT_ID ;
20- import static net .openid .appauth .TestValues .getTestServiceConfig ;
21-
22- import java .util .Collections ;
17+ import org .json .JSONException ;
2318import org .junit .Before ;
2419import org .junit .Test ;
2520import org .junit .runner .RunWith ;
2621import org .robolectric .RobolectricTestRunner ;
2722import org .robolectric .annotation .Config ;
2823
24+ import java .util .Arrays ;
25+ import java .util .Collections ;
26+ import java .util .HashSet ;
27+ import java .util .Set ;
28+
29+ import static junit .framework .Assert .assertEquals ;
30+ import static junit .framework .Assert .assertNotNull ;
31+ import static junit .framework .Assert .assertNull ;
32+ import static net .openid .appauth .TestValues .TEST_APP_REDIRECT_URI ;
33+ import static net .openid .appauth .TestValues .TEST_AUTH_CODE ;
34+ import static net .openid .appauth .TestValues .TEST_CLIENT_ID ;
35+ import static net .openid .appauth .TestValues .getTestServiceConfig ;
36+ import static net .openid .appauth .TokenResponse .KEY_ACCESS_TOKEN ;
37+ import static net .openid .appauth .TokenResponse .KEY_EXPIRES_AT ;
38+ import static net .openid .appauth .TokenResponse .KEY_ID_TOKEN ;
39+ import static net .openid .appauth .TokenResponse .KEY_REFRESH_TOKEN ;
40+ import static net .openid .appauth .TokenResponse .KEY_SCOPE ;
41+ import static net .openid .appauth .TokenResponse .KEY_TOKEN_TYPE ;
42+ import static org .hamcrest .Matchers .equalTo ;
43+ import static org .hamcrest .Matchers .is ;
44+ import static org .hamcrest .Matchers .isEmptyOrNullString ;
45+ import static org .junit .Assert .assertThat ;
46+
2947@ RunWith (RobolectricTestRunner .class )
3048@ Config (constants = BuildConfig .class , sdk =16 )
3149public class TokenResponseTest {
50+ private static final String TEST_KEY_TOKEN_TYPE = "Bearer" ;
51+ private static final String TEST_KEY_ACCESS_TOKEN = "pAstudrU6axaw#Da355eseTu6ugufrev" ;
52+ private static final Long TEST_KEY_KEY_EXPIRES_AT = 1481304561609L ;
53+ private static final String TEST_KEY_REFRESH_TOKEN = "T#xapeva#Rux3steh3fazuvak4seN#S?" ;
54+ private static final String TEST_KEY_ID_TOKEN = "5-=5eW5eGe3wE7A$WA+waph7S#FRedat" ;
55+ private static final String TEST_KEY_SCOPE_1 = "Scope01" ;
56+ private static final String TEST_KEY_SCOPE_2 = "Scope02" ;
57+ private static final String TEST_KEY_SCOPE_3 = "Scope03" ;
58+ private static final String TEST_KEY_SCOPES = TEST_KEY_SCOPE_1 + " " + TEST_KEY_SCOPE_2 + " " + TEST_KEY_SCOPE_3 ;
59+
60+ private static String TEST_JSON_WITH_SCOPE = "{\n " +
61+ " \" " + KEY_ACCESS_TOKEN + "\" : \" " + TEST_KEY_ACCESS_TOKEN + "\" ,\n " +
62+ " \" " + KEY_TOKEN_TYPE + "\" : \" " + TEST_KEY_TOKEN_TYPE + "\" ,\n " +
63+ " \" " + KEY_REFRESH_TOKEN + "\" : \" " + TEST_KEY_REFRESH_TOKEN + "\" ,\n " +
64+ " \" " + KEY_ID_TOKEN + "\" : \" " + TEST_KEY_ID_TOKEN + "\" ,\n " +
65+ " \" " + KEY_EXPIRES_AT + "\" : " + TEST_KEY_KEY_EXPIRES_AT + ",\n " +
66+ " \" " + KEY_SCOPE + "\" : \" " + TEST_KEY_SCOPES + "\" \n " +
67+ "}" ;
68+
69+ private static String TEST_JSON_WITHOUT_SCOPE = "{\n " +
70+ " \" " + KEY_ACCESS_TOKEN + "\" : \" " + TEST_KEY_ACCESS_TOKEN + "\" ,\n " +
71+ " \" " + KEY_TOKEN_TYPE + "\" : \" " + TEST_KEY_TOKEN_TYPE + "\" ,\n " +
72+ " \" " + KEY_REFRESH_TOKEN + "\" : \" " + TEST_KEY_REFRESH_TOKEN + "\" ,\n " +
73+ " \" " + KEY_ID_TOKEN + "\" : \" " + TEST_KEY_ID_TOKEN + "\" ,\n " +
74+ " \" " + KEY_EXPIRES_AT + "\" : " + TEST_KEY_KEY_EXPIRES_AT + ",\n " +
75+ " \" " + KEY_SCOPE + "\" :\" \" \n " +
76+ "}" ;
77+ private static String TEST_JSON_WITHOUT_SCOPE_FIELD = "{\n " +
78+ " \" " + KEY_ACCESS_TOKEN + "\" : \" " + TEST_KEY_ACCESS_TOKEN + "\" ,\n " +
79+ " \" " + KEY_TOKEN_TYPE + "\" : \" " + TEST_KEY_TOKEN_TYPE + "\" ,\n " +
80+ " \" " + KEY_REFRESH_TOKEN + "\" : \" " + TEST_KEY_REFRESH_TOKEN + "\" ,\n " +
81+ " \" " + KEY_ID_TOKEN + "\" : \" " + TEST_KEY_ID_TOKEN + "\" ,\n " +
82+ " \" " + KEY_EXPIRES_AT + "\" : " + TEST_KEY_KEY_EXPIRES_AT + "\n " +
83+ "}" ;
3284
3385 private TokenResponse .Builder mMinimalBuilder ;
3486
@@ -46,4 +98,55 @@ public void testBuilder_setAdditionalParams_withBuiltInParam() {
4698 mMinimalBuilder .setAdditionalParameters (
4799 Collections .singletonMap (TokenRequest .PARAM_SCOPE , "scope" ));
48100 }
49- }
101+
102+ @ Test
103+ public void testBuilder_fromResponseJsonStringWithScope () throws JSONException {
104+ System .out .println (TEST_JSON_WITH_SCOPE );
105+ TokenResponse tokenResponse = mMinimalBuilder .fromResponseJsonString (TEST_JSON_WITH_SCOPE ).build ();
106+
107+ assertNotNull (tokenResponse );
108+
109+ assertEquals (TEST_KEY_ACCESS_TOKEN , tokenResponse .accessToken );
110+ assertEquals (TEST_KEY_TOKEN_TYPE , tokenResponse .tokenType );
111+ assertEquals (TEST_KEY_REFRESH_TOKEN , tokenResponse .refreshToken );
112+ assertEquals (TEST_KEY_ID_TOKEN , tokenResponse .idToken );
113+ assertEquals (TEST_KEY_KEY_EXPIRES_AT , tokenResponse .accessTokenExpirationTime );
114+
115+ assertEquals (TEST_KEY_SCOPES , tokenResponse .scope );
116+ assertThat (tokenResponse .getScopeSet (), is (equalTo ((Set ) new HashSet <>(Arrays .asList (TEST_KEY_SCOPE_1 , TEST_KEY_SCOPE_2 , TEST_KEY_SCOPE_3 )))));
117+ }
118+
119+ @ Test
120+ public void testBuilder_fromResponseJsonStringWithoutScope () throws JSONException {
121+ System .out .println (TEST_JSON_WITHOUT_SCOPE );
122+ TokenResponse tokenResponse = mMinimalBuilder .fromResponseJsonString (TEST_JSON_WITHOUT_SCOPE ).build ();
123+
124+ assertNotNull (tokenResponse );
125+
126+ assertEquals (TEST_KEY_ACCESS_TOKEN , tokenResponse .accessToken );
127+ assertEquals (TEST_KEY_TOKEN_TYPE , tokenResponse .tokenType );
128+ assertEquals (TEST_KEY_REFRESH_TOKEN , tokenResponse .refreshToken );
129+ assertEquals (TEST_KEY_ID_TOKEN , tokenResponse .idToken );
130+ assertEquals (TEST_KEY_KEY_EXPIRES_AT , tokenResponse .accessTokenExpirationTime );
131+
132+ assertThat (tokenResponse .scope , isEmptyOrNullString ());
133+ assertNull (tokenResponse .getScopeSet ());
134+ }
135+
136+ @ Test
137+ public void testBuilder_fromResponseJsonStringWithoutScopeField () throws JSONException {
138+ System .out .println (TEST_JSON_WITHOUT_SCOPE_FIELD );
139+ TokenResponse tokenResponse = mMinimalBuilder .fromResponseJsonString (TEST_JSON_WITHOUT_SCOPE_FIELD ).build ();
140+
141+ assertNotNull (tokenResponse );
142+
143+ assertEquals (TEST_KEY_ACCESS_TOKEN , tokenResponse .accessToken );
144+ assertEquals (TEST_KEY_TOKEN_TYPE , tokenResponse .tokenType );
145+ assertEquals (TEST_KEY_REFRESH_TOKEN , tokenResponse .refreshToken );
146+ assertEquals (TEST_KEY_ID_TOKEN , tokenResponse .idToken );
147+ assertEquals (TEST_KEY_KEY_EXPIRES_AT , tokenResponse .accessTokenExpirationTime );
148+
149+ assertThat (tokenResponse .scope , isEmptyOrNullString ());
150+ assertNull (tokenResponse .getScopeSet ());
151+ }
152+ }
0 commit comments