github.com/kubeflow/training-operator@v1.7.0/pkg/common/util/reconciler_test.go (about) 1 package util 2 3 import ( 4 "testing" 5 6 corev1 "k8s.io/api/core/v1" 7 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 8 "sigs.k8s.io/controller-runtime/pkg/client" 9 "sigs.k8s.io/controller-runtime/pkg/event" 10 11 kubeflowv1 "github.com/kubeflow/training-operator/pkg/apis/kubeflow.org/v1" 12 "github.com/kubeflow/training-operator/pkg/controller.v1/expectation" 13 ) 14 15 func TestOnDependentXXXFunc(t *testing.T) { 16 createfunc := OnDependentCreateFunc(expectation.NewControllerExpectations()) 17 deletefunc := OnDependentDeleteFunc(expectation.NewControllerExpectations()) 18 19 for _, testCase := range []struct { 20 object client.Object 21 expect bool 22 }{ 23 { 24 // pod object with label is allowed 25 object: &corev1.Pod{ 26 ObjectMeta: metav1.ObjectMeta{ 27 Labels: map[string]string{ 28 kubeflowv1.ReplicaTypeLabel: "Worker", 29 }, 30 }, 31 }, 32 expect: true, 33 }, 34 { 35 // service object without label is not allowed 36 object: &corev1.Service{}, 37 expect: false, 38 }, 39 { 40 // objects other than pod/service are not allowed 41 object: &corev1.ConfigMap{}, 42 expect: false, 43 }, 44 } { 45 ret := createfunc(event.CreateEvent{ 46 Object: testCase.object, 47 }) 48 if ret != testCase.expect { 49 t.Errorf("expect %t, but get %t", testCase.expect, ret) 50 } 51 ret = deletefunc(event.DeleteEvent{ 52 Object: testCase.object, 53 }) 54 if ret != testCase.expect { 55 t.Errorf("expect %t, but get %t", testCase.expect, ret) 56 } 57 58 } 59 }