Skip to content

Commit

Permalink
fake-client: extend builder with an option to set a RESTMapper
Browse files Browse the repository at this point in the history
Signed-off-by: Stefan Büringer buringerst@vmware.com
  • Loading branch information
sbueringer committed Oct 6, 2021
1 parent 11917e9 commit e4d1b0f
Showing 1 changed file with 14 additions and 4 deletions.
18 changes: 14 additions & 4 deletions pkg/client/fake/client.go
Expand Up @@ -51,6 +51,7 @@ type versionedTracker struct {
type fakeClient struct {
tracker versionedTracker
scheme *runtime.Scheme
restMapper meta.RESTMapper
schemeWriteLock sync.Mutex
}

Expand Down Expand Up @@ -87,6 +88,7 @@ func NewClientBuilder() *ClientBuilder {
// ClientBuilder builds a fake client.
type ClientBuilder struct {
scheme *runtime.Scheme
restMapper meta.RESTMapper
initObject []client.Object
initLists []client.ObjectList
initRuntimeObjects []runtime.Object
Expand All @@ -99,6 +101,14 @@ func (f *ClientBuilder) WithScheme(scheme *runtime.Scheme) *ClientBuilder {
return f
}

// WithRESTMapper sets this builder's restMapper.
// The restMapper is directly set as mapper in the Client. This can be used for example
// with a meta.DefaultRESTMapper to provide a static rest mapping.
func (f *ClientBuilder) WithRESTMapper(restMapper meta.RESTMapper) *ClientBuilder {
f.restMapper = restMapper
return f
}

// WithObjects can be optionally used to initialize this fake client with client.Object(s).
func (f *ClientBuilder) WithObjects(initObjs ...client.Object) *ClientBuilder {
f.initObject = append(f.initObject, initObjs...)
Expand Down Expand Up @@ -140,8 +150,9 @@ func (f *ClientBuilder) Build() client.WithWatch {
}
}
return &fakeClient{
tracker: tracker,
scheme: f.scheme,
tracker: tracker,
scheme: f.scheme,
restMapper: f.restMapper,
}
}

Expand Down Expand Up @@ -417,8 +428,7 @@ func (c *fakeClient) Scheme() *runtime.Scheme {
}

func (c *fakeClient) RESTMapper() meta.RESTMapper {
// TODO: Implement a fake RESTMapper.
return nil
return c.restMapper
}

func (c *fakeClient) Create(ctx context.Context, obj client.Object, opts ...client.CreateOption) error {
Expand Down

0 comments on commit e4d1b0f

Please sign in to comment.