Update MockClient to complete with missing Mock functions

Signed-off-by: Illya Chekrygin <illya.chekrygin@gmail.com>
This commit is contained in:
Illya Chekrygin 2019-03-26 13:19:46 -07:00
parent 915598b3af
commit 64d1d97307
1 changed files with 37 additions and 10 deletions

View File

@ -30,22 +30,27 @@ var _ client.Client = &MockClient{}
// client, but it is has surprising side effects (e.g. silently calling
// os.Exit(1)) and does not allow us control over the errors it returns.
type MockClient struct {
client.Client
MockGet func(ctx context.Context, key client.ObjectKey, obj runtime.Object) error
MockCreate func(ctx context.Context, obj runtime.Object) error
MockDelete func(ctx context.Context, obj runtime.Object, opts ...client.DeleteOptionFunc) error
MockUpdate func(ctx context.Context, obj runtime.Object) error
MockGet func(ctx context.Context, key client.ObjectKey, obj runtime.Object) error
MockList func(ctx context.Context, opts *client.ListOptions, list runtime.Object) error
MockCreate func(ctx context.Context, obj runtime.Object) error
MockDelete func(ctx context.Context, obj runtime.Object, opts ...client.DeleteOptionFunc) error
MockUpdate func(ctx context.Context, obj runtime.Object) error
MockStatusUpdate func(ctx context.Context, obj runtime.Object) error
}
// NewMockClient returns a MockClient that does nothing when its methods are
// called.
func NewMockClient() *MockClient {
return &MockClient{
MockGet: func(ctx context.Context, key client.ObjectKey, obj runtime.Object) error { return nil },
MockCreate: func(ctx context.Context, obj runtime.Object) error { return nil },
MockDelete: func(ctx context.Context, obj runtime.Object, opts ...client.DeleteOptionFunc) error { return nil },
MockUpdate: func(ctx context.Context, obj runtime.Object) error { return nil },
//MockStatusClient: &MockStatusClient{
// MockUpdate: func(ctx context.Context, obj runtime.Object) error { return nil },
//},
MockGet: func(ctx context.Context, key client.ObjectKey, obj runtime.Object) error { return nil },
MockList: func(ctx context.Context, opts *client.ListOptions, list runtime.Object) error { return nil },
MockCreate: func(ctx context.Context, obj runtime.Object) error { return nil },
MockDelete: func(ctx context.Context, obj runtime.Object, opts ...client.DeleteOptionFunc) error { return nil },
MockUpdate: func(ctx context.Context, obj runtime.Object) error { return nil },
MockStatusUpdate: func(ctx context.Context, obj runtime.Object) error { return nil },
}
}
@ -54,6 +59,11 @@ func (c *MockClient) Get(ctx context.Context, key client.ObjectKey, obj runtime.
return c.MockGet(ctx, key, obj)
}
// List calls MockClient's MockList function.
func (c *MockClient) List(ctx context.Context, opts *client.ListOptions, list runtime.Object) error {
return c.MockList(ctx, opts, list)
}
// Create calls MockClient's MockCreate function.
func (c *MockClient) Create(ctx context.Context, obj runtime.Object) error {
return c.MockCreate(ctx, obj)
@ -68,3 +78,20 @@ func (c *MockClient) Delete(ctx context.Context, obj runtime.Object, opts ...cli
func (c *MockClient) Update(ctx context.Context, obj runtime.Object) error {
return c.MockUpdate(ctx, obj)
}
// Status returns status writer for status sub-resource
func (c *MockClient) Status() client.StatusWriter {
return &MockStatusWriter{
MockUpdate: c.MockStatusUpdate,
}
}
// MockStatusWriter provides mock functionality for status sub-resource
type MockStatusWriter struct {
MockUpdate func(ctx context.Context, obj runtime.Object) error
}
// Update status sub-resource
func (m *MockStatusWriter) Update(ctx context.Context, obj runtime.Object) error {
return m.MockUpdate(ctx, obj)
}