@@ -25,10 +25,70 @@ import (
2525)
2626
2727func TestGetRegionFromKMSARN (t * testing.T ) {
28- g := NewWithT (t )
29-
30- arn := "arn:aws:kms:us-east-1:211125720409:key/mrk-3179bb7e88bc42ffb1a27d5038ceea25"
31-
32- region := awskms .GetRegionFromKMSARN (arn )
33- g .Expect (region ).To (Equal ("us-east-1" ))
28+ for _ , tt := range []struct {
29+ arn string
30+ expected string
31+ }{
32+ {
33+ arn : "arn:aws:kms:us-west-2:107501996527:key/612d5f0p-p1l3-45e6-aca6-a5b005693a48" ,
34+ expected : "us-west-2" ,
35+ },
36+ {
37+ arn : "arn:aws-cn:kms:cn-north-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" ,
38+ expected : "cn-north-1" ,
39+ },
40+ {
41+ arn : "arn:aws-us-gov:kms:us-gov-west-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" ,
42+ expected : "us-gov-west-1" ,
43+ },
44+ {
45+ arn : "arn:aws:kms:us-west-2:107501996527:alias/my-key-alias" ,
46+ expected : "us-west-2" ,
47+ },
48+ {
49+ arn : "arn:aws:kms:us-west-2:107501996527:key/" ,
50+ expected : "" ,
51+ },
52+ {
53+ arn : "arn:aws:kms:us-west-2:107501996527:alias/" ,
54+ expected : "" ,
55+ },
56+ {
57+ arn : "not-an-arn" ,
58+ expected : "" ,
59+ },
60+ {
61+ arn : "arn:aws:s3:::my-bucket" ,
62+ expected : "" ,
63+ },
64+ {
65+ arn : "arn:aws:ec2:us-west-2:123456789012:instance/i-1234567890abcdef0" ,
66+ expected : "" ,
67+ },
68+ {
69+ arn : "arn:aws:iam::123456789012:user/David" ,
70+ expected : "" ,
71+ },
72+ {
73+ arn : "arn:aws:lambda:us-west-2:123456789012:function:my-function" ,
74+ expected : "" ,
75+ },
76+ {
77+ arn : "arn:aws:dynamodb:us-west-2:123456789012:table/my-table" ,
78+ expected : "" ,
79+ },
80+ {
81+ arn : "arn:aws:rds:us-west-2:123456789012:db:my-database" ,
82+ expected : "" ,
83+ },
84+ {
85+ arn : "arn:aws:sns:us-west-2:123456789012:my-topic" ,
86+ expected : "" ,
87+ },
88+ } {
89+ t .Run (tt .arn , func (t * testing.T ) {
90+ g := NewWithT (t )
91+ g .Expect (awskms .GetRegionFromKMSARN (tt .arn )).To (Equal (tt .expected ))
92+ })
93+ }
3494}
0 commit comments