@@ -14,7 +14,16 @@ import (
1414)
1515
1616const (
17- SECRET_MANAGER_ARN = "arn:aws:secretsmanager:eu-west-3:111111111111:secret:secret-name-mlNvrF"
17+ VOLUME_MANAGER_ARN = "arn:aws:fsx:eu-west-3:111111111111:volume/111111111/111111111"
18+ VOLUME_MANAGER_ARN_CN = "arn:aws-cn:fsx:eu-west-3:111111111111:volume/111111111/111111111"
19+ VOLUME_MANAGER_ARN_US = "arn:aws-us-gov:fsx:eu-west-3:111111111111:volume/111111111/111111111"
20+ VOLUME_MANAGER_ARN_INVALID_PARTITION = "arn:aws-us-gov1:fsx:eu-west-3:111111111111:volume/111111111/111111111"
21+ VOLUME_MANAGER_ARN_INVALID_FILESYSTEM = "arn:aws-us-gov:fsx:eu-west-3:111111111111:volume//111111111"
22+ SECRET_MANAGER_ARN = "arn:aws:secretsmanager:eu-west-3:111111111111:secret:secret-name-mlNvrF"
23+ SECRET_MANAGER_ARN_CN = "arn:aws-cn:secretsmanager:cn-west-3:111111111111:secret:secret-name-mlNvrF"
24+ SECRET_MANAGER_ARN_US = "arn:aws-us-gov:secretsmanager:us-west-3:111111111111:secret:secret-name-mlNvrF"
25+ SECRET_MANAGER_ARN_INVALID_PARTITION = "arn:awsaws-cn:secretsmanager:eu-west-3:111111111111:secret:secret-name-mlNvrF"
26+ SECRET_MANAGER_ARN_INVALID_SECRET = "arn:aws-cn:secmanagers:eu-west-3:111111111111:secret:secret-name-mlNvrF"
1827)
1928
2029func TestFSxFilesystemValidation_Error (t * testing.T ) {
@@ -301,3 +310,65 @@ func TestSvmCredentials(t *testing.T) {
301310 })
302311 }
303312}
313+
314+ func TestParseSecretARN (t * testing.T ) {
315+ secretArn := SECRET_MANAGER_ARN
316+ secretArn_cn := SECRET_MANAGER_ARN_CN
317+ secretArn_invalid_partition := SECRET_MANAGER_ARN_INVALID_PARTITION
318+ secretArn_invalid_secret := SECRET_MANAGER_ARN_INVALID_SECRET
319+ secretArn_us := SECRET_MANAGER_ARN_US
320+ tests := []struct {
321+ name string
322+ userName string
323+ error string
324+ }{
325+ {"Invalid secret ARN partition value" , secretArn_invalid_partition , "secret ARN " + secretArn_invalid_partition + " is invalid" },
326+ {"Invalid secret fomrat" , secretArn_invalid_secret , "secret ARN " + secretArn_invalid_secret + " is invalid" },
327+ {"valid aws us secret" , secretArn_us , "" },
328+ {"valid aws cn secret" , secretArn_cn , "" },
329+ {"valid aws cn secret" , secretArn , "" },
330+ }
331+ for _ , test := range tests {
332+ t .Run (test .name , func (t * testing.T ) {
333+ secretARN := test .userName
334+
335+ _ , _ , _ , err := awsapi .ParseSecretARN (secretARN )
336+ if test .error == "" {
337+ assert .Nil (t , err )
338+ } else {
339+ assert .Equal (t , err .Error (), test .error )
340+ }
341+ })
342+ }
343+ }
344+
345+ func TestParseVolumeARN (t * testing.T ) {
346+ volumeArn := VOLUME_MANAGER_ARN
347+ volumeArn_cn := VOLUME_MANAGER_ARN_CN
348+ volumeArn_invalid_filesystem := VOLUME_MANAGER_ARN_INVALID_FILESYSTEM
349+ volumeArn_invalid_partition := VOLUME_MANAGER_ARN_INVALID_PARTITION
350+ volumeArn_us := VOLUME_MANAGER_ARN_US
351+ tests := []struct {
352+ name string
353+ userName string
354+ error string
355+ }{
356+ {"Invalid volume ARN parition value" , volumeArn_invalid_partition , "volume ARN " + volumeArn_invalid_partition + " is invalid" },
357+ {"Invalid volume ARN filesystem value" , volumeArn_invalid_filesystem , "volume ARN " + volumeArn_invalid_filesystem + " is invalid" },
358+ {"valid volume us secret" , volumeArn_us , "" },
359+ {"valid volume cn secret" , volumeArn_cn , "" },
360+ {"valid volume secret" , volumeArn , "" },
361+ }
362+ for _ , test := range tests {
363+ t .Run (test .name , func (t * testing.T ) {
364+ volumeARN := test .userName
365+
366+ _ , _ , _ , _ , err := awsapi .ParseVolumeARN (volumeARN )
367+ if test .error == "" {
368+ assert .Nil (t , err )
369+ } else {
370+ assert .Equal (t , err .Error (), test .error )
371+ }
372+ })
373+ }
374+ }
0 commit comments