@@ -190,6 +190,66 @@ public void buildTokenUrlWithScopes_defaultScopes() {
190190 assertEquals ("bar" , scopes .toArray ()[1 ]);
191191 }
192192
193+ @ Test
194+ public void buildTokenUrlSoftMtlsBound_mtls_transport () {
195+ ComputeEngineCredentials credentials =
196+ ComputeEngineCredentials .newBuilder ().setTransport ("mtls" ).build ();
197+ String softBoundTokenUrl = credentials .createTokenUrlWithScopes ();
198+
199+ assertEquals (TOKEN_URL + "?transport=mtls" , softBoundTokenUrl );
200+ }
201+
202+ @ Test
203+ public void buildTokenUrlSoftMtlsBound_iam_enforcement () {
204+ ComputeEngineCredentials credentials =
205+ ComputeEngineCredentials .newBuilder ().setBindingEnforcement ("iam-policy" ).build ();
206+ String softBoundTokenUrl = credentials .createTokenUrlWithScopes ();
207+
208+ assertEquals (TOKEN_URL + "?binding-enforcement=iam-policy" , softBoundTokenUrl );
209+ }
210+
211+ @ Test
212+ public void buildTokenUrlSoftMtlsBound_mtls_transport_iam_enforcement () {
213+ ComputeEngineCredentials credentials =
214+ ComputeEngineCredentials .newBuilder ()
215+ .setTransport ("mtls" )
216+ .setBindingEnforcement ("iam-policy" )
217+ .build ();
218+ String softBoundTokenUrl = credentials .createTokenUrlWithScopes ();
219+
220+ assertEquals (TOKEN_URL + "?transport=mtls&binding-enforcement=iam-policy" , softBoundTokenUrl );
221+ }
222+
223+ @ Test
224+ public void buildTokenUrlHardMtlsBound_always_enforced () {
225+ ComputeEngineCredentials credentials =
226+ ComputeEngineCredentials .newBuilder ().setBindingEnforcement ("on" ).build ();
227+ String softBoundTokenUrl = credentials .createTokenUrlWithScopes ();
228+
229+ assertEquals (TOKEN_URL + "?binding-enforcement=on" , softBoundTokenUrl );
230+ }
231+
232+ @ Test
233+ public void buildTokenUrlHardMtlsBound_mtls_transport_always_enforced () {
234+ ComputeEngineCredentials credentials =
235+ ComputeEngineCredentials .newBuilder ()
236+ .setTransport ("mtls" )
237+ .setBindingEnforcement ("on" )
238+ .build ();
239+ String softBoundTokenUrl = credentials .createTokenUrlWithScopes ();
240+
241+ assertEquals (TOKEN_URL + "?transport=mtls&binding-enforcement=on" , softBoundTokenUrl );
242+ }
243+
244+ @ Test
245+ public void buildTokenUrlHardDirectPathBound_alts_transport () {
246+ ComputeEngineCredentials credentials =
247+ ComputeEngineCredentials .newBuilder ().setTransport ("alts" ).build ();
248+ String softBoundTokenUrl = credentials .createTokenUrlWithScopes ();
249+
250+ assertEquals (TOKEN_URL + "?transport=alts" , softBoundTokenUrl );
251+ }
252+
193253 @ Test
194254 public void buildScoped_scopesPresent () throws IOException {
195255 ComputeEngineCredentials credentials =
0 commit comments