66 lines
1.9 KiB
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)
|
|
}
|
|
})
|
|
}
|
|
}
|