Skip to content

Commit 5686fd6

Browse files
committed
add ut for pkg/util/annotation
Signed-off-by: xian-jie.shen <[email protected]>
1 parent ea59b5d commit 5686fd6

File tree

2 files changed

+207
-18
lines changed

2 files changed

+207
-18
lines changed

pkg/util/annotation.go

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,41 +5,50 @@ import (
55
)
66

77
func GetRegion(labels map[string]string) (string, bool) {
8-
if _, ok := labels[v1.LabelTopologyRegion]; ok { // Label as of 1.17
8+
_, ok := labels[v1.LabelTopologyRegion]
9+
if ok {
910
return labels[v1.LabelTopologyRegion], true
10-
} else if _, ok := labels[v1.LabelZoneRegion]; ok { // deprecated label
11+
}
12+
_, ok = labels[v1.LabelZoneRegion]
13+
if ok {
1114
return labels[v1.LabelZoneRegion], true
12-
} else {
13-
return "", false
1415
}
16+
return "", false
1517
}
1618

1719
func GetZone(labels map[string]string) (string, bool) {
18-
if _, ok := labels[v1.LabelTopologyZone]; ok { // Label as of 1.17
20+
_, ok := labels[v1.LabelTopologyZone]
21+
if ok { // Label as of 1.17
1922
return labels[v1.LabelTopologyZone], true
20-
} else if _, ok := labels[v1.LabelZoneFailureDomain]; ok { // deprecated label
23+
}
24+
_, ok = labels[v1.LabelZoneFailureDomain]
25+
if ok { // deprecated label
2126
return labels[v1.LabelZoneFailureDomain], true
22-
} else {
23-
return "", false
2427
}
28+
return "", false
2529
}
2630

2731
func GetInstanceType(labels map[string]string) (string, bool) {
28-
if _, ok := labels[v1.LabelInstanceType]; ok {
32+
_, ok := labels[v1.LabelInstanceType]
33+
if ok {
2934
return labels[v1.LabelInstanceType], true
30-
} else if _, ok := labels["node.kubernetes.io/instance-type"]; ok {
31-
return labels["node.kubernetes.io/instance-type"], true
32-
} else {
33-
return "", false
3435
}
36+
_, ok = labels[v1.LabelInstanceTypeStable]
37+
if ok {
38+
return labels[v1.LabelInstanceTypeStable], true
39+
}
40+
return "", false
3541
}
3642

3743
func GetOperatingSystem(labels map[string]string) (string, bool) {
38-
if _, ok := labels[v1.LabelOSStable]; ok {
44+
betaLabel := "beta.kubernetes.io/os"
45+
_, ok := labels[v1.LabelOSStable]
46+
if ok {
3947
return labels[v1.LabelOSStable], true
40-
} else if _, ok := labels["beta.kubernetes.io/os"]; ok {
41-
return labels["beta.kubernetes.io/os"], true
42-
} else {
43-
return "", false
4448
}
49+
_, ok = labels[betaLabel]
50+
if ok {
51+
return labels[betaLabel], true
52+
}
53+
return "", false
4554
}

pkg/util/annotation_test.go

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
package util
2+
3+
import (
4+
"testing"
5+
6+
v1 "k8s.io/api/core/v1"
7+
)
8+
9+
func TestGetRegion(t *testing.T) {
10+
tests := []struct {
11+
name string
12+
labels map[string]string
13+
want string
14+
want1 bool
15+
}{
16+
{
17+
name: "base",
18+
labels: map[string]string{
19+
v1.LabelTopologyRegion: v1.LabelTopologyRegion,
20+
},
21+
want: v1.LabelTopologyRegion,
22+
want1: true,
23+
},
24+
{
25+
name: "LabelZoneRegion",
26+
labels: map[string]string{
27+
v1.LabelZoneRegion: v1.LabelZoneRegion,
28+
},
29+
want: v1.LabelZoneRegion,
30+
want1: true,
31+
},
32+
{
33+
name: "not found",
34+
labels: map[string]string{},
35+
want: "",
36+
want1: false,
37+
},
38+
}
39+
for _, tt := range tests {
40+
t.Run(tt.name, func(t *testing.T) {
41+
got, got1 := GetRegion(tt.labels)
42+
if got != tt.want {
43+
t.Errorf("GetRegion() got = %v, want %v", got, tt.want)
44+
}
45+
if got1 != tt.want1 {
46+
t.Errorf("GetRegion() got1 = %v, want %v", got1, tt.want1)
47+
}
48+
})
49+
}
50+
}
51+
52+
func TestGetZone(t *testing.T) {
53+
tests := []struct {
54+
name string
55+
labels map[string]string
56+
want string
57+
want1 bool
58+
}{
59+
{
60+
name: "base",
61+
labels: map[string]string{
62+
v1.LabelTopologyZone: v1.LabelTopologyZone,
63+
},
64+
want: v1.LabelTopologyZone,
65+
want1: true,
66+
},
67+
{
68+
name: "LabelZoneFailureDomain",
69+
labels: map[string]string{
70+
v1.LabelZoneFailureDomain: v1.LabelZoneFailureDomain,
71+
},
72+
want: v1.LabelZoneFailureDomain,
73+
want1: true,
74+
},
75+
{
76+
name: "not found",
77+
labels: map[string]string{},
78+
want: "",
79+
want1: false,
80+
},
81+
}
82+
for _, tt := range tests {
83+
t.Run(tt.name, func(t *testing.T) {
84+
got, got1 := GetZone(tt.labels)
85+
if got != tt.want {
86+
t.Errorf("GetZone() got = %v, want %v", got, tt.want)
87+
}
88+
if got1 != tt.want1 {
89+
t.Errorf("GetZone() got1 = %v, want %v", got1, tt.want1)
90+
}
91+
})
92+
}
93+
}
94+
95+
func TestGetInstanceType(t *testing.T) {
96+
tests := []struct {
97+
name string
98+
labels map[string]string
99+
want string
100+
want1 bool
101+
}{
102+
{
103+
name: "base",
104+
labels: map[string]string{
105+
v1.LabelInstanceType: v1.LabelInstanceType,
106+
},
107+
want: v1.LabelInstanceType,
108+
want1: true,
109+
},
110+
{
111+
name: "LabelInstanceTypeStable",
112+
labels: map[string]string{
113+
v1.LabelInstanceTypeStable: v1.LabelInstanceTypeStable,
114+
},
115+
want: v1.LabelInstanceTypeStable,
116+
want1: true,
117+
},
118+
{
119+
name: "not found",
120+
labels: map[string]string{},
121+
want: "",
122+
want1: false,
123+
},
124+
}
125+
for _, tt := range tests {
126+
t.Run(tt.name, func(t *testing.T) {
127+
got, got1 := GetInstanceType(tt.labels)
128+
if got != tt.want {
129+
t.Errorf("GetInstanceType() got = %v, want %v", got, tt.want)
130+
}
131+
if got1 != tt.want1 {
132+
t.Errorf("GetInstanceType() got1 = %v, want %v", got1, tt.want1)
133+
}
134+
})
135+
}
136+
}
137+
138+
func TestGetOperatingSystem(t *testing.T) {
139+
betaLabel := "beta.kubernetes.io/os"
140+
tests := []struct {
141+
name string
142+
labels map[string]string
143+
want string
144+
want1 bool
145+
}{
146+
{
147+
name: "base",
148+
labels: map[string]string{
149+
v1.LabelOSStable: v1.LabelOSStable,
150+
},
151+
want: v1.LabelOSStable,
152+
want1: true,
153+
},
154+
{
155+
name: "betaLabel",
156+
labels: map[string]string{
157+
betaLabel: betaLabel,
158+
},
159+
want: betaLabel,
160+
want1: true,
161+
},
162+
{
163+
name: "not found",
164+
labels: map[string]string{},
165+
want: "",
166+
want1: false,
167+
},
168+
}
169+
for _, tt := range tests {
170+
t.Run(tt.name, func(t *testing.T) {
171+
got, got1 := GetOperatingSystem(tt.labels)
172+
if got != tt.want {
173+
t.Errorf("GetOperatingSystem() got = %v, want %v", got, tt.want)
174+
}
175+
if got1 != tt.want1 {
176+
t.Errorf("GetOperatingSystem() got1 = %v, want %v", got1, tt.want1)
177+
}
178+
})
179+
}
180+
}

0 commit comments

Comments
 (0)