48 lines
1.2 KiB
Go
48 lines
1.2 KiB
Go
package oci
|
|
|
|
import "testing"
|
|
|
|
func TestAllRegionsParsesAndComplete(t *testing.T) {
|
|
regions, err := AllRegions()
|
|
if err != nil {
|
|
t.Fatalf("AllRegions: %v", err)
|
|
}
|
|
if len(regions) == 0 {
|
|
t.Fatal("AllRegions returned empty table")
|
|
}
|
|
seen := make(map[string]bool, len(regions))
|
|
for _, r := range regions {
|
|
if r.Alias == "" || r.Key == "" || r.Name == "" {
|
|
t.Errorf("region %+v has empty field", r)
|
|
}
|
|
if seen[r.Key] {
|
|
t.Errorf("duplicate region key %s", r.Key)
|
|
}
|
|
seen[r.Key] = true
|
|
}
|
|
}
|
|
|
|
func TestRegionByKey(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
key string
|
|
wantName string
|
|
wantFound bool
|
|
}{
|
|
{name: "精确命中", key: "FRA", wantName: "eu-frankfurt-1", wantFound: true},
|
|
{name: "小写命中", key: "fra", wantName: "eu-frankfurt-1", wantFound: true},
|
|
{name: "不存在", key: "XXX", wantFound: false},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
info, found := RegionByKey(tt.key)
|
|
if found != tt.wantFound {
|
|
t.Fatalf("RegionByKey(%q) found = %v, want %v", tt.key, found, tt.wantFound)
|
|
}
|
|
if found && info.Name != tt.wantName {
|
|
t.Errorf("RegionByKey(%q).Name = %q, want %q", tt.key, info.Name, tt.wantName)
|
|
}
|
|
})
|
|
}
|
|
}
|