karmada/pkg/scheduler/scheduler_test.go

66 lines
1.9 KiB
Go

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)
}
})
}
}