add ut for pkg/kubelet/util
Signed-off-by: bzsuni <bingzhe.sun@daocloud.io>
This commit is contained in:
		| @@ -20,6 +20,8 @@ import ( | |||||||
| 	"testing" | 	"testing" | ||||||
|  |  | ||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
|  |  | ||||||
|  | 	v1 "k8s.io/api/core/v1" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TestGetNodenameForKernel(t *testing.T) { | 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) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 bzsuni
					bzsuni