Files
PandaX/apps/devops/services/k8s/controller/controller_test.go
2022-01-22 17:07:04 +08:00

79 lines
1.6 KiB
Go

package controller
import (
"pandax/apps/devops/entity/k8s"
"reflect"
"testing"
v1 "k8s.io/api/core/v1"
meta "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes/fake"
)
func TestGetPodNames(t *testing.T) {
cases := []struct {
pods []v1.Pod
expectedNames []string
}{
{
pods: nil,
expectedNames: []string{},
},
{
pods: []v1.Pod{newPod("a"), newPod("b")},
expectedNames: []string{"a", "b"},
},
}
for _, c := range cases {
actual := getPodNames(c.pods)
if !reflect.DeepEqual(actual, c.expectedNames) {
t.Errorf("GetPodNames(%+v) == %+v, expected %+v",
c.pods, actual, c.expectedNames)
}
}
}
func TestNewResourceController(t *testing.T) {
pod := v1.Pod{
TypeMeta: meta.TypeMeta{
Kind: "pod",
APIVersion: "v1",
},
ObjectMeta: meta.ObjectMeta{
Name: "test-name",
Namespace: "default",
}}
cli := fake.NewSimpleClientset(&pod)
ctrl, err := NewResourceController(
meta.OwnerReference{
Kind: k8s.ResourceKindPod,
Name: "test-name",
}, "default", cli)
if err != nil {
t.Fatal("Returned Error finding pod")
}
podCtrl, ok := ctrl.(PodController)
if !ok {
t.Fatal("Returned value is not pod controller")
}
if podCtrl.Name != "test-name" {
t.Fatal("Returned invalid pod name")
}
NewResourceController(
meta.OwnerReference{
Kind: k8s.ResourceKindPod,
Name: "test-name",
}, "default", fake.NewSimpleClientset())
podCtrl.Get([]v1.Pod{pod}, []v1.Event{})
podCtrl.UID()
podCtrl.GetLogSources([]v1.Pod{pod})
}
func newPod(name string) v1.Pod {
return v1.Pod{ObjectMeta: meta.ObjectMeta{Name: name}}
}