@@ -20,7 +20,6 @@ import (
2020 "context"
2121 "errors"
2222 "fmt"
23-
2423 "strings"
2524 "testing"
2625
@@ -30,6 +29,7 @@ import (
3029 fakedynamic "k8s.io/client-go/dynamic/fake"
3130 "k8s.io/client-go/kubernetes/scheme"
3231 "k8s.io/client-go/rest"
32+ "k8s.io/client-go/restmapper"
3333 "sigs.k8s.io/controller-runtime/pkg/client"
3434
3535 clusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
@@ -42,6 +42,41 @@ import (
4242 "github.com/karmada-io/karmada/pkg/util"
4343)
4444
45+ var apiGroupResources = []* restmapper.APIGroupResources {
46+ {
47+ Group : metav1.APIGroup {
48+ Name : "apps" ,
49+ Versions : []metav1.GroupVersionForDiscovery {
50+ {GroupVersion : "apps/v1" , Version : "v1" },
51+ },
52+ PreferredVersion : metav1.GroupVersionForDiscovery {
53+ GroupVersion : "apps/v1" , Version : "v1" ,
54+ },
55+ },
56+ VersionedResources : map [string ][]metav1.APIResource {
57+ "v1" : {
58+ {Name : "deployments" , SingularName : "deployment" , Namespaced : true , Kind : "Deployment" },
59+ },
60+ },
61+ },
62+ {
63+ Group : metav1.APIGroup {
64+ Name : "" ,
65+ Versions : []metav1.GroupVersionForDiscovery {
66+ {GroupVersion : "v1" , Version : "v1" },
67+ },
68+ PreferredVersion : metav1.GroupVersionForDiscovery {
69+ GroupVersion : "v1" , Version : "v1" ,
70+ },
71+ },
72+ VersionedResources : map [string ][]metav1.APIResource {
73+ "v1" : {
74+ {Name : "pods" , SingularName : "pod" , Namespaced : true , Kind : "Pod" },
75+ },
76+ },
77+ },
78+ }
79+
4580func TestNewKarmadaSearchController (t * testing.T ) {
4681 tests := []struct {
4782 name string
@@ -126,8 +161,6 @@ func TestAddClusterEventHandler(t *testing.T) {
126161 if err != nil {
127162 t .Fatalf ("failed to prepare test environment for event handler setup, got: %v" , err )
128163 }
129-
130- // start the informer to watch for changes.
131164 informer .Start (test .stopCh )
132165 defer close (test .stopCh )
133166
@@ -189,8 +222,6 @@ func TestUpdateClusterEventHandler(t *testing.T) {
189222 if err != nil {
190223 t .Fatalf ("failed to prepare test environment for event handler setup, got: %v" , err )
191224 }
192-
193- // start the informer to watch for changes.
194225 informer .Start (test .stopCh )
195226 defer close (test .stopCh )
196227
@@ -215,7 +246,7 @@ func TestDeleteClusterEventHandler(t *testing.T) {
215246 name : "AddAllEventHandlers_TriggerDeleteClusterEvent_DeletedClusterAddedToWorkQueue" ,
216247 restConfig : & rest.Config {},
217248 client : fakekarmadaclient .NewSimpleClientset (),
218- restMapper : meta . NewDefaultRESTMapper ( nil ),
249+ restMapper : restmapper . NewDiscoveryRESTMapper ( apiGroupResources ),
219250 stopCh : make (chan struct {}),
220251 prep : func (clientConnector * fakekarmadaclient.Clientset , restConfig * rest.Config , restMapper meta.RESTMapper ) (* Controller , informerfactory.SharedInformerFactory , error ) {
221252 factory := informerfactory .NewSharedInformerFactory (clientConnector , 0 )
@@ -278,8 +309,6 @@ func TestDeleteClusterEventHandler(t *testing.T) {
278309 if err != nil {
279310 t .Fatalf ("failed to prepare test environment for event handler setup, got: %v" , err )
280311 }
281-
282- // start the informer to watch for changes.
283312 informer .Start (test .stopCh )
284313 defer close (test .stopCh )
285314
@@ -304,7 +333,7 @@ func TestAddResourceRegistryEventHandler(t *testing.T) {
304333 name : "AddAllEventHandlers_TriggerAddResourceRegistryEvent_ResourceRegistryAddedToWorkQueue" ,
305334 restConfig : & rest.Config {},
306335 client : fakekarmadaclient .NewSimpleClientset (),
307- restMapper : meta . NewDefaultRESTMapper ( nil ),
336+ restMapper : restmapper . NewDiscoveryRESTMapper ( apiGroupResources ),
308337 stopCh : make (chan struct {}),
309338 prep : func (clientConnector * fakekarmadaclient.Clientset , restConfig * rest.Config , restMapper meta.RESTMapper ) (* Controller , informerfactory.SharedInformerFactory , error ) {
310339 factory := informerfactory .NewSharedInformerFactory (clientConnector , 0 )
@@ -355,8 +384,6 @@ func TestAddResourceRegistryEventHandler(t *testing.T) {
355384 if err != nil {
356385 t .Fatalf ("failed to prepare test environment for event handler setup, got: %v" , err )
357386 }
358-
359- // start the informer to watch for changes.
360387 informer .Start (test .stopCh )
361388 defer close (test .stopCh )
362389
@@ -381,7 +408,7 @@ func TestUpdateResourceRegistryEventHandler(t *testing.T) {
381408 name : "AddAllEventHandlers_TriggerUpdateResourceRegistryEvent_UpdatedResourceRegistryAddedToWorkQueue" ,
382409 restConfig : & rest.Config {},
383410 client : fakekarmadaclient .NewSimpleClientset (),
384- restMapper : meta . NewDefaultRESTMapper ( nil ),
411+ restMapper : restmapper . NewDiscoveryRESTMapper ( apiGroupResources ),
385412 stopCh : make (chan struct {}),
386413 prep : func (clientConnector * fakekarmadaclient.Clientset , restConfig * rest.Config , restMapper meta.RESTMapper ) (* Controller , informerfactory.SharedInformerFactory , error ) {
387414 factory := informerfactory .NewSharedInformerFactory (clientConnector , 0 )
@@ -410,6 +437,13 @@ func TestUpdateResourceRegistryEventHandler(t *testing.T) {
410437 }
411438 )
412439
440+ clusterDynamicClientBuilder = func (string , client.Client ) (* util.DynamicClusterClient , error ) {
441+ return & util.DynamicClusterClient {
442+ DynamicClientSet : fakedynamic .NewSimpleDynamicClient (scheme .Scheme ),
443+ ClusterName : clusterName ,
444+ }, nil
445+ }
446+
413447 if err := upsertCluster (clientConnector , labels , apiEndpoint , clusterName , resourceVersion ); err != nil {
414448 return err
415449 }
@@ -441,8 +475,6 @@ func TestUpdateResourceRegistryEventHandler(t *testing.T) {
441475 if err != nil {
442476 t .Fatalf ("failed to prepare test environment for event handler setup, got: %v" , err )
443477 }
444-
445- // start the informer to watch for changes.
446478 informer .Start (test .stopCh )
447479 defer close (test .stopCh )
448480
@@ -467,7 +499,7 @@ func TestDeleteResourceRegistryEventHandler(t *testing.T) {
467499 name : "AddAllEventHandlers_TriggerDeleteResourceRegistryEvent_DeletedResourceRegistryAddedToWorkQueue" ,
468500 restConfig : & rest.Config {},
469501 client : fakekarmadaclient .NewSimpleClientset (),
470- restMapper : meta . NewDefaultRESTMapper ( nil ),
502+ restMapper : restmapper . NewDiscoveryRESTMapper ( apiGroupResources ),
471503 stopCh : make (chan struct {}),
472504 prep : func (clientConnector * fakekarmadaclient.Clientset , restConfig * rest.Config , restMapper meta.RESTMapper ) (* Controller , informerfactory.SharedInformerFactory , error ) {
473505 factory := informerfactory .NewSharedInformerFactory (clientConnector , 0 )
@@ -525,8 +557,6 @@ func TestDeleteResourceRegistryEventHandler(t *testing.T) {
525557 if err != nil {
526558 t .Fatalf ("failed to prepare test environment for event handler setup, got: %v" , err )
527559 }
528-
529- // start the informer to watch for changes.
530560 informer .Start (test .stopCh )
531561 defer close (test .stopCh )
532562
0 commit comments