From f582d43dbda40c8cc2da8aa6f14b19d3d94b7428 Mon Sep 17 00:00:00 2001 From: John Howard Date: Thu, 30 Sep 2021 16:32:23 -0700 Subject: [PATCH] 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 --- metadata/fake/simple.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/metadata/fake/simple.go b/metadata/fake/simple.go index adf0ce9a..ca771237 100644 --- a/metadata/fake/simple.go +++ b/metadata/fake/simple.go @@ -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 {