Make metadata fake client implement testing.FakeClient

This mirrors most (maybe all?) other fake clients. Example of a real
world use case this would have been useful:
https://github.com/istio/istio/pull/35434

Kubernetes-commit: 86c9fef160b37ce834b680e49cf237917d2e5c6c
This commit is contained in:
John Howard 2021-09-30 16:32:23 -07:00 committed by Kubernetes Publisher
parent 23e2d9e87e
commit f582d43dbd

View File

@ -60,7 +60,7 @@ func NewSimpleMetadataClient(scheme *runtime.Scheme, objects ...runtime.Object)
} }
} }
cs := &FakeMetadataClient{scheme: scheme} cs := &FakeMetadataClient{scheme: scheme, tracker: o}
cs.AddReactor("*", "*", testing.ObjectReaction(o)) cs.AddReactor("*", "*", testing.ObjectReaction(o))
cs.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) { cs.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) {
gvr := action.GetResource() gvr := action.GetResource()
@ -80,7 +80,8 @@ func NewSimpleMetadataClient(scheme *runtime.Scheme, objects ...runtime.Object)
// you want to test easier. // you want to test easier.
type FakeMetadataClient struct { type FakeMetadataClient struct {
testing.Fake testing.Fake
scheme *runtime.Scheme scheme *runtime.Scheme
tracker testing.ObjectTracker
} }
type metadataResourceClient struct { type metadataResourceClient struct {
@ -89,7 +90,14 @@ type metadataResourceClient struct {
resource schema.GroupVersionResource resource schema.GroupVersionResource
} }
var _ metadata.Interface = &FakeMetadataClient{} var (
_ metadata.Interface = &FakeMetadataClient{}
_ testing.FakeClient = &FakeMetadataClient{}
)
func (c *FakeMetadataClient) Tracker() testing.ObjectTracker {
return c.tracker
}
// Resource returns an interface for accessing the provided resource. // Resource returns an interface for accessing the provided resource.
func (c *FakeMetadataClient) Resource(resource schema.GroupVersionResource) metadata.Getter { func (c *FakeMetadataClient) Resource(resource schema.GroupVersionResource) metadata.Getter {