Skip to content

Commit 4e315b8

Browse files
committed
add ut for pkg/kubelet/util
Signed-off-by: bzsuni <[email protected]>
1 parent 8caa6fb commit 4e315b8

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

pkg/kubelet/util/util_test.go

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ import (
2020
"testing"
2121

2222
"github.com/stretchr/testify/assert"
23+
24+
v1 "k8s.io/api/core/v1"
2325
)
2426

2527
func TestGetNodenameForKernel(t *testing.T) {
@@ -86,3 +88,58 @@ func TestGetNodenameForKernel(t *testing.T) {
8688
}
8789

8890
}
91+
92+
func TestGetContainerByIndex(t *testing.T) {
93+
testCases := []struct {
94+
title string
95+
containers []v1.Container
96+
statuses []v1.ContainerStatus
97+
idx int
98+
expectedContainer v1.Container
99+
expectedOK bool
100+
}{
101+
{
102+
title: "idx is less than zero",
103+
containers: []v1.Container{{Name: "container-1"}},
104+
statuses: []v1.ContainerStatus{{Name: "container-1"}},
105+
idx: -1,
106+
expectedContainer: v1.Container{},
107+
expectedOK: false,
108+
}, {
109+
title: "idx is large then number of containers",
110+
containers: []v1.Container{{Name: "container-1"}},
111+
statuses: []v1.ContainerStatus{{Name: "container-1"}},
112+
idx: 2,
113+
expectedContainer: v1.Container{},
114+
expectedOK: false,
115+
}, {
116+
title: "idx is large then number of statuses",
117+
containers: []v1.Container{{Name: "container-1"}, {Name: "container-2"}},
118+
statuses: []v1.ContainerStatus{{Name: "container-1"}},
119+
idx: 2,
120+
expectedContainer: v1.Container{},
121+
expectedOK: false,
122+
}, {
123+
title: "names do not match",
124+
containers: []v1.Container{{Name: "container-1"}},
125+
statuses: []v1.ContainerStatus{{Name: "invalid-container"}},
126+
idx: 0,
127+
expectedContainer: v1.Container{},
128+
expectedOK: false,
129+
}, {
130+
title: "valid container index",
131+
containers: []v1.Container{{Name: "container-1"}, {Name: "container-2"}},
132+
statuses: []v1.ContainerStatus{{Name: "container-1"}, {Name: "container-2"}},
133+
idx: 1,
134+
expectedContainer: v1.Container{Name: "container-2"},
135+
expectedOK: true,
136+
},
137+
}
138+
139+
for _, tc := range testCases {
140+
container, ok := GetContainerByIndex(tc.containers, tc.statuses, tc.idx)
141+
if container.Name != tc.expectedContainer.Name || ok != tc.expectedOK {
142+
t.Errorf("%s - Expected container: %v, got container: %v, expected ok: %v, got ok: %v", tc.title, tc.expectedContainer, container, tc.expectedOK, ok)
143+
}
144+
}
145+
}

0 commit comments

Comments
 (0)