@@ -51,6 +51,20 @@ public void GetAlibabaCloudClientCredentialWithException()
5151 Assert . Equal ( "There is no credential chain can use." , exception . Message ) ;
5252 }
5353
54+ [ Fact ]
55+ public void GetCredentialWithException ( )
56+ {
57+ var provider = new Mock < DefaultCredentialProvider > ( ) ;
58+ var defaultProvider = provider . Object ;
59+
60+ var exception = Assert . Throws < ClientException > ( ( ) =>
61+ {
62+ var credential = defaultProvider . GetCredentials ( ) ;
63+ } ) ;
64+
65+ Assert . Equal ( "There is no credential chain can use." , exception . Message ) ;
66+ }
67+
5468 /*
5569 Case: Test Credential File With default Client Name and file exist with ak value and type
5670 Result: should return AccessKeyCredential
@@ -59,6 +73,14 @@ Use credential chains
5973 [ Fact ]
6074 public void GetCredentialFileAlibabaCloudCredentialWithAKType ( )
6175 {
76+ var cacheRoleArn = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" ) ;
77+ var cacheProviderArn = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" ) ;
78+ var cacheFile = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" ) ;
79+
80+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" , null ) ;
81+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" , null ) ;
82+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" , null ) ;
83+
6284 var profile = DefaultProfile . GetProfile ( ) ;
6385 profile . DefaultClientName = "default" ;
6486 var defaultCredentialProvider = new DefaultCredentialProvider ( profile , null ) ;
@@ -71,6 +93,9 @@ public void GetCredentialFileAlibabaCloudCredentialWithAKType()
7193 Assert . NotNull ( credential ) ;
7294 Assert . NotNull ( credential . GetAccessKeyId ( ) ) ;
7395 Assert . NotNull ( credential . GetAccessKeySecret ( ) ) ;
96+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" , cacheRoleArn ) ;
97+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" , cacheProviderArn ) ;
98+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" , cacheFile ) ;
7499 }
75100
76101 /*
@@ -81,6 +106,10 @@ Use credential chains
81106 [ Fact ]
82107 public void GetCredentialFileAlibabaCloudCredentialWithAKTypeButAKIsEmpty ( )
83108 {
109+ var cacheRoleArn = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" ) ;
110+ var cacheProviderArn = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" ) ;
111+ var cacheFile = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" ) ;
112+
84113 Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" , null ) ;
85114 Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" , null ) ;
86115 Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" , null ) ;
@@ -97,12 +126,23 @@ public void GetCredentialFileAlibabaCloudCredentialWithAKTypeButAKIsEmpty()
97126
98127 TestHelper . DeleteIniFile ( ) ;
99128
100- Assert . Equal ( "Missing required variable option for 'default Client'" , exception . Message ) ;
129+ Assert . Equal ( "Access key ID cannot be null." , exception . Message ) ;
130+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" , cacheRoleArn ) ;
131+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" , cacheProviderArn ) ;
132+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" , cacheFile ) ;
101133 }
102134
103135 [ Fact ]
104136 public void GetCredentialFileAlibabaCloudCredentialWithDefaultSection ( )
105137 {
138+ var cacheRoleArn = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" ) ;
139+ var cacheProviderArn = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" ) ;
140+ var cacheFile = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" ) ;
141+
142+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" , null ) ;
143+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" , null ) ;
144+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" , null ) ;
145+
106146 TestHelper . CreateIniFileWithDefaultSection ( ) ;
107147
108148 var profile = DefaultProfile . GetProfile ( ) ;
@@ -115,6 +155,37 @@ public void GetCredentialFileAlibabaCloudCredentialWithDefaultSection()
115155 TestHelper . DeleteIniFile ( ) ;
116156 Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_CREDENTIALS_FILE" , null ) ;
117157 Assert . NotNull ( credential ) ;
158+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" , cacheRoleArn ) ;
159+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" , cacheProviderArn ) ;
160+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" , cacheFile ) ;
161+
162+ }
163+
164+ [ Fact ]
165+ public void GetOIDCAlibabaCloudCredentialTest ( )
166+ {
167+ var cacheRoleArn = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" ) ;
168+ var cacheProviderArn = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" ) ;
169+ var cacheFile = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" ) ;
170+ var cacheRegionId = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_REGION_ID" ) ;
171+
172+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" , "test" ) ;
173+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" , "test" ) ;
174+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" , TestHelper . GetOIDCTokenFilePath ( ) ) ;
175+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_REGION_ID" , "us-west-1" ) ;
176+ var profile = DefaultProfile . GetProfile ( ) ;
177+ profile . DefaultClientName = "default" ;
178+ var defaultCredentialProvider = new DefaultCredentialProvider ( profile , null ) ;
179+ var exception = Assert . Throws < ClientException > ( ( ) =>
180+ {
181+ var credential = defaultCredentialProvider . GetAlibabaCloudClientCredential ( ) ;
182+ } ) ;
183+ Assert . Contains ( "Parameter OIDCProviderArn is not valid" , exception . Message ) ;
184+
185+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" , cacheRoleArn ) ;
186+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" , cacheProviderArn ) ;
187+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" , cacheFile ) ;
188+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_REGION_ID" , cacheRegionId ) ;
118189 }
119190
120191 /*
@@ -125,6 +196,14 @@ Use credential chains
125196 [ Fact ]
126197 public void GetCredentialFileAlibabaCloudCredentialWithEcsRamRole ( )
127198 {
199+ var cacheRoleArn = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" ) ;
200+ var cacheProviderArn = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" ) ;
201+ var cacheFile = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" ) ;
202+
203+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" , null ) ;
204+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" , null ) ;
205+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" , null ) ;
206+
128207 var ecsRamRoleCredential =
129208 new InstanceProfileCredentials ( "fakeak" , "fakeaks" , "fakesession" , DateTime . UtcNow . ToString ( ) , 4000 ) ;
130209 var mockHomePath = EnvironmentUtil . GetHomePath ( ) ;
@@ -144,6 +223,10 @@ public void GetCredentialFileAlibabaCloudCredentialWithEcsRamRole()
144223
145224 TestHelper . DeleteIniFile ( ) ;
146225 Assert . NotNull ( credential ) ;
226+
227+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" , cacheRoleArn ) ;
228+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" , cacheProviderArn ) ;
229+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" , cacheFile ) ;
147230 }
148231
149232 /*
@@ -161,11 +244,9 @@ public void GetCredentialFileAlibabaCloudCredentialWithFileAndAkExist()
161244
162245 var defaultCredentialProvider = new DefaultCredentialProvider ( profile , null ) ;
163246
164- var credential = ( BasicCredentials ) defaultCredentialProvider . GetCredentialFileAlibabaCloudCredential ( ) ;
165-
247+ var ex = Assert . Throws < ClientException > ( ( ) => ( BasicCredentials ) defaultCredentialProvider . GetCredentialFileAlibabaCloudCredential ( ) ) ;
248+ Assert . Equal ( "The configured client type is empty" , ex . Message ) ;
166249 TestHelper . DeleteIniFile ( ) ;
167- Assert . NotNull ( credential ) ;
168- Assert . Equal ( "foo" , credential . GetAccessKeyId ( ) ) ;
169250 }
170251
171252 /*
@@ -182,10 +263,10 @@ public void GetCredentialFileAlibabaCloudCredentialWithFileAndAkExistNotDefault(
182263
183264 var defaultCredentialProvider = new DefaultCredentialProvider ( profile , null ) ;
184265
185- var credential = defaultCredentialProvider . GetCredentialFileAlibabaCloudCredential ( ) ;
266+ var ex = Assert . Throws < ClientException > ( ( ) => defaultCredentialProvider . GetCredentialFileAlibabaCloudCredential ( ) ) ;
267+ Assert . Equal ( "The configured client type is empty" , ex . Message ) ;
186268
187269 TestHelper . DeleteIniFile ( ) ;
188- Assert . Null ( credential ) ;
189270 }
190271
191272 /*
@@ -328,15 +409,15 @@ public void GetInstanceRamRoleAlibabaCloudCredential()
328409 defaultCredentialProvider . GetInstanceRamRoleAlibabaCloudCredential ( ) ;
329410 } ) ;
330411
331- Assert . Equal ( "RegionID cannot be null or empty. " , exception . Message ) ;
412+ Assert . Equal ( "Environment variable roleName('ALIBABA_CLOUD_ECS_METADATA') cannot be empty" , exception . Message ) ;
332413
333414 Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_REGION_ID" , "region_id" ) ;
334415 profile . DefaultClientName = "test" ;
335416 defaultCredentialProvider = new DefaultCredentialProvider ( profile , null ) ;
336- var credentialProvider = defaultCredentialProvider . GetInstanceRamRoleAlibabaCloudCredential ( ) ;
417+ var ex = Assert . Throws < ClientException > ( ( ) => defaultCredentialProvider . GetInstanceRamRoleAlibabaCloudCredential ( ) ) ;
337418
338419 Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_REGION_ID" , null ) ;
339- Assert . Null ( credentialProvider ) ;
420+ Assert . Equal ( "Environment variable roleName('ALIBABA_CLOUD_ECS_METADATA') cannot be empty" , exception . Message ) ;
340421 }
341422
342423 [ Fact ]
@@ -369,13 +450,13 @@ public void GetInstanceRamRoleAlibabaCloudCredential3()
369450 Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_REGION_ID" , "region_id" ) ;
370451 profile . DefaultClientName = "default" ;
371452 var defaultCredentialProvider = new DefaultCredentialProvider ( profile , null ) ;
372- var exception = Assert . Throws < ArgumentNullException > ( ( ) =>
453+ var exception = Assert . Throws < ClientException > ( ( ) =>
373454 {
374455 var credentialProvider = defaultCredentialProvider . GetInstanceRamRoleAlibabaCloudCredential ( ) ;
375456 } ) ;
376457
377458 Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_REGION_ID" , null ) ;
378- Assert . Equal ( "You must specifiy a valid role name. ", exception . ParamName ) ;
459+ Assert . StartsWith ( "Environment variable roleName('ALIBABA_CLOUD_ECS_METADATA') cannot be empty ", exception . Message ) ;
379460 }
380461
381462 [ Fact ]
@@ -465,11 +546,10 @@ public void GetRsaKeyPairAlibabaCloudCredential()
465546 var defaultCredentialProvider =
466547 new DefaultCredentialProvider ( profile , "publicKeyId" , "privateKeyFile" , rsaProvider ) ;
467548
468- var actualCredentil = defaultCredentialProvider . GetRsaKeyPairAlibabaCloudCredential ( ) ;
549+ var ex = Assert . Throws < ClientException > ( ( ) => defaultCredentialProvider . GetRsaKeyPairAlibabaCloudCredential ( ) ) ;
469550
470551 Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_REGION_ID" , null ) ;
471- Assert . NotNull ( actualCredentil ) ;
472- Assert . Equal ( "aks" , actualCredentil . GetAccessKeySecret ( ) ) ;
552+ Assert . Equal ( "The configured public_key_id or private_key_file is empty" , ex . Message ) ;
473553 }
474554
475555 [ Fact ]
@@ -496,6 +576,14 @@ public void GetRsaKeyPairAlibabaCloudCredential2()
496576 [ Fact ]
497577 public void GetRsaKeyPairAlibabaCloudCredentialWithException ( )
498578 {
579+ var cacheRoleArn = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" ) ;
580+ var cacheProviderArn = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" ) ;
581+ var cacheFile = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" ) ;
582+
583+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" , null ) ;
584+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" , null ) ;
585+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" , null ) ;
586+
499587 var profile = DefaultProfile . GetProfile ( ) ;
500588 var defaultCredentialProvider = new DefaultCredentialProvider ( profile , null ) ;
501589
@@ -504,12 +592,23 @@ public void GetRsaKeyPairAlibabaCloudCredentialWithException()
504592 var credential = defaultCredentialProvider . GetRsaKeyPairAlibabaCloudCredential ( ) ;
505593 } ) ;
506594
507- Assert . Equal ( "Missing required variable option for 'default Client'" , exception . Message ) ;
595+ Assert . Equal ( "The configured private_key_file is empty" , exception . Message ) ;
596+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" , cacheRoleArn ) ;
597+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" , cacheProviderArn ) ;
598+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" , cacheFile ) ;
508599 }
509600
510601 [ Fact ]
511602 public void GetOIDCAlibabaCloudCredential ( )
512603 {
604+ var cacheRoleArn = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" ) ;
605+ var cacheProviderArn = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" ) ;
606+ var cacheFile = Environment . GetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" ) ;
607+
608+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" , null ) ;
609+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" , null ) ;
610+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" , null ) ;
611+
513612 var profile = DefaultProfile . GetProfile ( ) ;
514613 var defaultCredentialProvider = new DefaultCredentialProvider ( profile , null ) ;
515614 Assert . Null ( defaultCredentialProvider . GetOIDCAlibabaCloudCredential ( ) ) ;
@@ -529,9 +628,9 @@ public void GetOIDCAlibabaCloudCredential()
529628 Assert . Equal ( "fakesessiontoken" , credential . GetSessionToken ( ) ) ;
530629 Assert . False ( credential . WillSoonExpire ( ) ) ;
531630
532- Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" , null ) ;
533- Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" , null ) ;
534- Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" , null ) ;
631+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_ROLE_ARN" , cacheRoleArn ) ;
632+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_PROVIDER_ARN" , cacheProviderArn ) ;
633+ Environment . SetEnvironmentVariable ( "ALIBABA_CLOUD_OIDC_TOKEN_FILE" , cacheFile ) ;
535634 }
536635 }
537636}
0 commit comments