1 package awsrulesfn
2
3 import (
4 "testing"
5 )
6
7 var mockPartitions = []Partition{
8 {
9 ID: "aws",
10 RegionRegex: "^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$",
11 DefaultConfig: PartitionConfig{
12 Name: "aws",
13 DnsSuffix: "amazonaws.com",
14 DualStackDnsSuffix: "api.aws",
15 SupportsFIPS: true,
16 SupportsDualStack: true,
17 },
18 Regions: map[string]RegionOverrides{
19 "af-south-1": {
20 Name: nil,
21 DnsSuffix: nil,
22 DualStackDnsSuffix: nil,
23 SupportsFIPS: nil,
24 SupportsDualStack: nil,
25 },
26 "us-west-2": {
27 Name: nil,
28 DnsSuffix: nil,
29 DualStackDnsSuffix: nil,
30 SupportsFIPS: nil,
31 SupportsDualStack: nil,
32 },
33 },
34 },
35 {
36 ID: "aws-cn",
37 RegionRegex: "^cn\\-\\w+\\-\\d+$",
38 DefaultConfig: PartitionConfig{
39 Name: "aws-cn",
40 DnsSuffix: "amazonaws.com.cn",
41 DualStackDnsSuffix: "api.amazonwebservices.com.cn",
42 SupportsFIPS: true,
43 SupportsDualStack: true,
44 },
45 Regions: map[string]RegionOverrides{
46 "aws-cn-global": {
47 Name: nil,
48 DnsSuffix: nil,
49 DualStackDnsSuffix: nil,
50 SupportsFIPS: nil,
51 SupportsDualStack: nil,
52 },
53 "cn-north-1": {
54 Name: nil,
55 DnsSuffix: nil,
56 DualStackDnsSuffix: nil,
57 SupportsFIPS: nil,
58 SupportsDualStack: nil,
59 },
60 "cn-northwest-1": {
61 Name: nil,
62 DnsSuffix: nil,
63 DualStackDnsSuffix: nil,
64 SupportsFIPS: nil,
65 SupportsDualStack: nil,
66 },
67 },
68 },
69 }
70
71 func TestGetPartition(t *testing.T) {
72 cases := map[string]struct {
73 Region string
74 PartitionName string
75 }{
76 "test region match aws": {
77 Region: "us-west-2", PartitionName: "aws",
78 },
79 "test region match aws-cn": {
80 Region: "aws-cn-global", PartitionName: "aws-cn",
81 },
82 "test invalid region; default partition": {
83 Region: "foo", PartitionName: "aws",
84 },
85 }
86
87 for n, c := range cases {
88 t.Run(n, func(t *testing.T) {
89
90
91
92 partitions = mockPartitions
93
94 p := GetPartition(c.Region)
95 expected := c.PartitionName
96 actual := p.Name
97 if expected != actual {
98 t.Errorf("expected %v, got %v", expected, actual)
99 }
100 })
101 }
102 }
103
View as plain text