From 4e315b85ebac86694c6f166ae3db19bb0033bf0f Mon Sep 17 00:00:00 2001 From: bzsuni Date: Sun, 6 Aug 2023 17:24:47 +0800 Subject: [PATCH] add ut for pkg/kubelet/util Signed-off-by: bzsuni --- pkg/kubelet/util/util_test.go | 57 +++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/pkg/kubelet/util/util_test.go b/pkg/kubelet/util/util_test.go index 383b1fdb14f..8daeda9701b 100644 --- a/pkg/kubelet/util/util_test.go +++ b/pkg/kubelet/util/util_test.go @@ -20,6 +20,8 @@ import ( "testing" "github.com/stretchr/testify/assert" + + v1 "k8s.io/api/core/v1" ) func TestGetNodenameForKernel(t *testing.T) { @@ -86,3 +88,58 @@ func TestGetNodenameForKernel(t *testing.T) { } } + +func TestGetContainerByIndex(t *testing.T) { + testCases := []struct { + title string + containers []v1.Container + statuses []v1.ContainerStatus + idx int + expectedContainer v1.Container + expectedOK bool + }{ + { + title: "idx is less than zero", + containers: []v1.Container{{Name: "container-1"}}, + statuses: []v1.ContainerStatus{{Name: "container-1"}}, + idx: -1, + expectedContainer: v1.Container{}, + expectedOK: false, + }, { + title: "idx is large then number of containers", + containers: []v1.Container{{Name: "container-1"}}, + statuses: []v1.ContainerStatus{{Name: "container-1"}}, + idx: 2, + expectedContainer: v1.Container{}, + expectedOK: false, + }, { + title: "idx is large then number of statuses", + containers: []v1.Container{{Name: "container-1"}, {Name: "container-2"}}, + statuses: []v1.ContainerStatus{{Name: "container-1"}}, + idx: 2, + expectedContainer: v1.Container{}, + expectedOK: false, + }, { + title: "names do not match", + containers: []v1.Container{{Name: "container-1"}}, + statuses: []v1.ContainerStatus{{Name: "invalid-container"}}, + idx: 0, + expectedContainer: v1.Container{}, + expectedOK: false, + }, { + title: "valid container index", + containers: []v1.Container{{Name: "container-1"}, {Name: "container-2"}}, + statuses: []v1.ContainerStatus{{Name: "container-1"}, {Name: "container-2"}}, + idx: 1, + expectedContainer: v1.Container{Name: "container-2"}, + expectedOK: true, + }, + } + + for _, tc := range testCases { + container, ok := GetContainerByIndex(tc.containers, tc.statuses, tc.idx) + if container.Name != tc.expectedContainer.Name || ok != tc.expectedOK { + t.Errorf("%s - Expected container: %v, got container: %v, expected ok: %v, got ok: %v", tc.title, tc.expectedContainer, container, tc.expectedOK, ok) + } + } +}