@@ -252,11 +252,11 @@ func TestIMDSAcquireTokenReturnsTokenSuccess(t *testing.T) {
252252 miType ID
253253 apiVersion string
254254 }{
255- {resource : resource , miType : SystemAssigned (), apiVersion : imdsAPIVersion },
256- {resource : resourceDefaultSuffix , miType : SystemAssigned (), apiVersion : imdsAPIVersion },
257- {resource : resource , miType : UserAssignedClientID ("clientId" ), apiVersion : imdsAPIVersion },
258- {resource : resourceDefaultSuffix , miType : UserAssignedResourceID ("resourceId" ), apiVersion : imdsAPIVersion },
259- {resource : resourceDefaultSuffix , miType : UserAssignedObjectID ("objectId" ), apiVersion : imdsAPIVersion },
255+ {resource : resource , miType : SystemAssigned ()},
256+ {resource : resourceDefaultSuffix , miType : SystemAssigned ()},
257+ {resource : resource , miType : UserAssignedClientID ("clientId" )},
258+ {resource : resourceDefaultSuffix , miType : UserAssignedResourceID ("resourceId" )},
259+ {resource : resourceDefaultSuffix , miType : UserAssignedObjectID ("objectId" )},
260260 }
261261 for _ , testCase := range testCases {
262262 t .Run (string (DefaultToIMDS )+ "-" + testCase .miType .value (), func (t * testing.T ) {
@@ -295,8 +295,8 @@ func TestIMDSAcquireTokenReturnsTokenSuccess(t *testing.T) {
295295
296296 query := localUrl .Query ()
297297
298- if query .Get (apiVersionQueryParameterName ) != testCase . apiVersion {
299- t .Fatalf ("api-version not on %s got %s" , testCase . apiVersion , query .Get (apiVersionQueryParameterName ))
298+ if query .Get (apiVersionQueryParameterName ) != imdsAPIVersion {
299+ t .Fatalf ("api-version not on %s got %s" , imdsAPIVersion , query .Get (apiVersionQueryParameterName ))
300300 }
301301 if query .Get (resourceQueryParameterName ) != strings .TrimSuffix (testCase .resource , "/.default" ) {
302302 t .Fatal ("suffix /.default was not removed." )
@@ -354,49 +354,48 @@ func TestAzureArcAcquireTokenReturnsToken(t *testing.T) {
354354 shouldFail bool
355355 }
356356 testCases := []struct {
357- resource string
358- miType ID
359- apiVersion string
360- request ArcRequest
357+ resource string
358+ miType ID
359+ request ArcRequest
361360 }{
362- {resource : resource , miType : SystemAssigned (), apiVersion : azureArcAPIVersion , request : ArcRequest {
361+ {resource : resource , miType : SystemAssigned (), request : ArcRequest {
363362 name : "No www-authenticate header" ,
364363 headers : map [string ]string {},
365364 expectedError : "response has no www-authenticate header" ,
366365 platform : runtime .GOOS ,
367366 shouldFail : true ,
368367 }},
369- {resource : resource , miType : SystemAssigned (), apiVersion : azureArcAPIVersion , request : ArcRequest {
368+ {resource : resource , miType : SystemAssigned (), request : ArcRequest {
370369 name : "Basic realm= not found" ,
371370 headers : map [string ]string {wwwAuthenticateHeaderName : "Basic " },
372371 expectedError : "basic realm= not found in the string, instead found: Basic " ,
373372 platform : runtime .GOOS ,
374373 shouldFail : true ,
375374 }},
376- {resource : resource , miType : SystemAssigned (), apiVersion : azureArcAPIVersion , request : ArcRequest {
375+ {resource : resource , miType : SystemAssigned (), request : ArcRequest {
377376 name : "Platform not supported" ,
378377 headers : map [string ]string {wwwAuthenticateHeaderName : "Basic realm=/path/to/secret.key" },
379378 expectedError : "platform not supported, expected linux or windows" ,
380379 platform : "freebsd" ,
381380 shouldFail : true ,
382381 }},
383- {resource : resource , miType : SystemAssigned (), apiVersion : azureArcAPIVersion , request : ArcRequest {
382+ {resource : resource , miType : SystemAssigned (), request : ArcRequest {
384383 name : "Invalid file extension" ,
385384 headers : map [string ]string {wwwAuthenticateHeaderName : "Basic realm=/path/to/secret.txt" },
386385 expectedError : "invalid file extension, expected .key, got .txt" ,
387386 platform : runtime .GOOS ,
388387 createMockFile : true ,
389388 shouldFail : true ,
390389 }},
391- {resource : resource , miType : SystemAssigned (), apiVersion : azureArcAPIVersion , request : ArcRequest {
390+ {resource : resource , miType : SystemAssigned (), request : ArcRequest {
392391 name : "Invalid file path" ,
393392 headers : map [string ]string {wwwAuthenticateHeaderName : "Basic realm=" + filepath .Join ("path" , "to" , "secret.key" )},
394393 expectedError : "invalid file path, expected " + testCaseFilePath + ", got " + filepath .Join ("path" , "to" ),
395394 platform : runtime .GOOS ,
396395 createMockFile : true ,
397396 shouldFail : true ,
398397 }},
399- {resource : resource , miType : SystemAssigned (), apiVersion : azureArcAPIVersion , request : ArcRequest {
398+ {resource : resource , miType : SystemAssigned (), request : ArcRequest {
400399 name : "Unable to get file info" ,
401400 headers : map [string ]string {wwwAuthenticateHeaderName : basicRealm + filepath .Join (testCaseFilePath , wrongSecretKey )},
402401 expectedError : func () string {
@@ -409,15 +408,15 @@ func TestAzureArcAcquireTokenReturnsToken(t *testing.T) {
409408 createMockFile : true ,
410409 shouldFail : true ,
411410 }},
412- {resource : resource , miType : SystemAssigned (), apiVersion : azureArcAPIVersion , request : ArcRequest {
411+ {resource : resource , miType : SystemAssigned (), request : ArcRequest {
413412 name : "Invalid secret file size" ,
414413 headers : map [string ]string {wwwAuthenticateHeaderName : basicRealm + filepath .Join (testCaseFilePath , secretKey )},
415414 expectedError : "invalid secret file size, expected 4096, file size was 5000" ,
416415 platform : runtime .GOOS ,
417416 createMockFile : true ,
418417 shouldFail : true ,
419418 }},
420- {resource : resourceDefaultSuffix , miType : SystemAssigned (), apiVersion : azureArcAPIVersion ,
419+ {resource : resourceDefaultSuffix , miType : SystemAssigned (),
421420 request : ArcRequest {
422421 name : "success" ,
423422 headers : map [string ]string {wwwAuthenticateHeaderName : basicRealm + filepath .Join (testCaseFilePath , secretKey )},
@@ -426,6 +425,15 @@ func TestAzureArcAcquireTokenReturnsToken(t *testing.T) {
426425 createMockFile : true ,
427426 shouldFail : false ,
428427 }},
428+ {resource : resourceDefaultSuffix , miType : UserAssignedClientID ("Clientid" ),
429+ request : ArcRequest {
430+ name : "Platform not supported" ,
431+ headers : map [string ]string {wwwAuthenticateHeaderName : basicRealm + filepath .Join (testCaseFilePath , secretKey )},
432+ expectedError : "azure Arc doesn't support user assigned managed identities" ,
433+ platform : runtime .GOOS ,
434+ createMockFile : true ,
435+ shouldFail : true ,
436+ }},
429437 }
430438
431439 for _ , testCase := range testCases {
@@ -477,7 +485,13 @@ func TestAzureArcAcquireTokenReturnsToken(t *testing.T) {
477485
478486 client , err := New (testCase .miType , WithHTTPClient (& mockClient ))
479487 if err != nil {
480- t .Fatal (err )
488+ if testCase .request .shouldFail {
489+ if err .Error () != testCase .request .expectedError {
490+ t .Fatalf (`expected error: "%v" got error: "%v"` , testCase .request .expectedError , err )
491+ }
492+ } else {
493+ t .Fatal (err )
494+ }
481495 }
482496
483497 result , err := client .AcquireToken (context .Background (), testCase .resource )
@@ -499,8 +513,8 @@ func TestAzureArcAcquireTokenReturnsToken(t *testing.T) {
499513
500514 query := localUrl .Query ()
501515
502- if query .Get (apiVersionQueryParameterName ) != testCase . apiVersion {
503- t .Fatalf ("api-version not on %s got %s" , testCase . apiVersion , query .Get (apiVersionQueryParameterName ))
516+ if query .Get (apiVersionQueryParameterName ) != azureArcAPIVersion {
517+ t .Fatalf ("api-version not on %s got %s" , azureArcAPIVersion , query .Get (apiVersionQueryParameterName ))
504518 }
505519 if query .Get (resourceQueryParameterName ) != strings .TrimSuffix (testCase .resource , "/.default" ) {
506520 t .Fatal ("suffix /.default was not removed." )
0 commit comments