package scheduler import ( "testing" "k8s.io/apimachinery/pkg/runtime" dynamicfake "k8s.io/client-go/dynamic/fake" "k8s.io/client-go/kubernetes/fake" karmadafake "github.com/karmada-io/karmada/pkg/generated/clientset/versioned/fake" ) func TestCreateScheduler(t *testing.T) { dynamicClient := dynamicfake.NewSimpleDynamicClient(runtime.NewScheme()) karmadaClient := karmadafake.NewSimpleClientset() kubeClient := fake.NewSimpleClientset() port := 10025 testcases := []struct { name string opts []Option enableSchedulerEstimator bool schedulerEstimatorPort int }{ { name: "scheduler with default configuration", opts: nil, enableSchedulerEstimator: false, }, { name: "scheduler with enableSchedulerEstimator enabled", opts: []Option{ WithEnableSchedulerEstimator(true), WithSchedulerEstimatorPort(port), }, enableSchedulerEstimator: true, schedulerEstimatorPort: port, }, { name: "scheduler with enableSchedulerEstimator disabled, WithSchedulerEstimatorPort enabled", opts: []Option{ WithEnableSchedulerEstimator(false), WithSchedulerEstimatorPort(port), }, enableSchedulerEstimator: false, }, } for _, tc := range testcases { t.Run(tc.name, func(t *testing.T) { sche, err := NewScheduler(dynamicClient, karmadaClient, kubeClient, tc.opts...) if err != nil { t.Errorf("create scheduler error: %s", err) } if tc.enableSchedulerEstimator != sche.enableSchedulerEstimator { t.Errorf("unexpected enableSchedulerEstimator want %v, got %v", tc.enableSchedulerEstimator, sche.enableSchedulerEstimator) } if tc.schedulerEstimatorPort != sche.schedulerEstimatorPort { t.Errorf("unexpected schedulerEstimatorPort want %v, got %v", tc.schedulerEstimatorPort, sche.schedulerEstimatorPort) } }) } }