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.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) {
gvr := action.GetResource()
@ -80,7 +80,8 @@ func NewSimpleMetadataClient(scheme *runtime.Scheme, objects ...runtime.Object)
// you want to test easier.
type FakeMetadataClient struct {
testing.Fake
scheme *runtime.Scheme
scheme *runtime.Scheme
tracker testing.ObjectTracker
}
type metadataResourceClient struct {
@ -89,7 +90,14 @@ type metadataResourceClient struct {
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.
func (c *FakeMetadataClient) Resource(resource schema.GroupVersionResource) metadata.Getter {