3131
3232package com .google .auth .oauth2 ;
3333
34+ import static com .google .auth .oauth2 .OAuth2Credentials .DEFAULT_EXPIRATION_MARGIN ;
35+ import static com .google .auth .oauth2 .OAuth2Credentials .DEFAULT_REFRESH_MARGIN ;
3436import static org .junit .Assert .assertEquals ;
3537import static org .junit .Assert .fail ;
3638
39+ import com .google .auth .TestUtils ;
3740import java .io .IOException ;
41+ import java .net .URI ;
42+ import java .time .Duration ;
43+ import java .time .temporal .ChronoUnit ;
3844import java .util .Date ;
45+ import java .util .List ;
46+ import java .util .Map ;
3947import org .junit .Test ;
4048import org .junit .runner .RunWith ;
4149import org .junit .runners .JUnit4 ;
4250
4351/** Tests for {@link OAuth2CredentialsWithRefresh}. */
4452@ RunWith (JUnit4 .class )
4553public class OAuth2CredentialsWithRefreshTest {
46-
4754 private static final AccessToken ACCESS_TOKEN = new AccessToken ("accessToken" , new Date ());
4855
4956 @ Test
@@ -65,6 +72,85 @@ public AccessToken refreshAccessToken() {
6572 assertEquals (refreshHandler , credential .getRefreshHandler ());
6673 }
6774
75+ @ Test
76+ public void builder_withRefreshAndExpirationMargins () {
77+ OAuth2CredentialsWithRefresh .OAuth2RefreshHandler refreshHandler =
78+ new OAuth2CredentialsWithRefresh .OAuth2RefreshHandler () {
79+ @ Override
80+ public AccessToken refreshAccessToken () {
81+ return null ;
82+ }
83+ };
84+
85+ Duration refreshMargin = Duration .of (10 , ChronoUnit .SECONDS );
86+ Duration expirationMargin = Duration .of (12 , ChronoUnit .SECONDS );
87+
88+ OAuth2CredentialsWithRefresh credential =
89+ (OAuth2CredentialsWithRefresh )
90+ OAuth2CredentialsWithRefresh .newBuilder ()
91+ .setAccessToken (ACCESS_TOKEN )
92+ .setRefreshHandler (refreshHandler )
93+ .setRefreshMargin (refreshMargin )
94+ .setExpirationMargin (expirationMargin )
95+ .build ();
96+
97+ assertEquals (ACCESS_TOKEN , credential .getAccessToken ());
98+ assertEquals (refreshMargin , credential .getRefreshMargin ());
99+ assertEquals (expirationMargin , credential .getExpirationMargin ());
100+ assertEquals (refreshHandler , credential .getRefreshHandler ());
101+ }
102+
103+ @ Test
104+ public void builder_onlyRefreshMarginSet () {
105+ OAuth2CredentialsWithRefresh .OAuth2RefreshHandler refreshHandler =
106+ new OAuth2CredentialsWithRefresh .OAuth2RefreshHandler () {
107+ @ Override
108+ public AccessToken refreshAccessToken () {
109+ return null ;
110+ }
111+ };
112+
113+ Duration refreshMargin = Duration .of (10 , ChronoUnit .SECONDS );
114+
115+ OAuth2CredentialsWithRefresh credential =
116+ (OAuth2CredentialsWithRefresh )
117+ OAuth2CredentialsWithRefresh .newBuilder ()
118+ .setAccessToken (ACCESS_TOKEN )
119+ .setRefreshHandler (refreshHandler )
120+ .setRefreshMargin (refreshMargin )
121+ .build ();
122+
123+ assertEquals (ACCESS_TOKEN , credential .getAccessToken ());
124+ assertEquals (refreshMargin , credential .getRefreshMargin ());
125+ assertEquals (DEFAULT_EXPIRATION_MARGIN , credential .getExpirationMargin ());
126+ assertEquals (refreshHandler , credential .getRefreshHandler ());
127+ }
128+
129+ @ Test
130+ public void builder_onlyExpirationMarginSet () {
131+ OAuth2CredentialsWithRefresh .OAuth2RefreshHandler refreshHandler =
132+ new OAuth2CredentialsWithRefresh .OAuth2RefreshHandler () {
133+ @ Override
134+ public AccessToken refreshAccessToken () {
135+ return null ;
136+ }
137+ };
138+
139+ Duration expirationMargin = Duration .of (12 , ChronoUnit .SECONDS );
140+ OAuth2CredentialsWithRefresh credential =
141+ (OAuth2CredentialsWithRefresh )
142+ OAuth2CredentialsWithRefresh .newBuilder ()
143+ .setAccessToken (ACCESS_TOKEN )
144+ .setRefreshHandler (refreshHandler )
145+ .setExpirationMargin (expirationMargin )
146+ .build ();
147+
148+ assertEquals (ACCESS_TOKEN , credential .getAccessToken ());
149+ assertEquals (DEFAULT_REFRESH_MARGIN , credential .getRefreshMargin ());
150+ assertEquals (expirationMargin , credential .getExpirationMargin ());
151+ assertEquals (refreshHandler , credential .getRefreshHandler ());
152+ }
153+
68154 @ Test
69155 public void builder_noAccessToken () {
70156 OAuth2CredentialsWithRefresh .newBuilder ()
@@ -119,4 +205,25 @@ public AccessToken refreshAccessToken() {
119205
120206 assertEquals (refreshedToken , accessToken );
121207 }
208+
209+ @ Test
210+ public void getRequestMetadata () throws IOException {
211+ URI uri = URI .create ("http://googleapis.com/testapi/v1/foo" );
212+ final AccessToken refreshedToken = new AccessToken ("refreshedAccessToken" , new Date ());
213+ OAuth2CredentialsWithRefresh credentials =
214+ OAuth2CredentialsWithRefresh .newBuilder ()
215+ .setAccessToken (ACCESS_TOKEN )
216+ .setRefreshHandler (
217+ new OAuth2CredentialsWithRefresh .OAuth2RefreshHandler () {
218+ @ Override
219+ public AccessToken refreshAccessToken () {
220+ return refreshedToken ;
221+ }
222+ })
223+ .build ();
224+
225+ Map <String , List <String >> metadata = credentials .getRequestMetadata (uri );
226+
227+ TestUtils .assertContainsBearerToken (metadata , refreshedToken .getTokenValue ());
228+ }
122229}
0 commit comments