Documentation ¶
Overview ¶
Package test implements utilities that can be used to test Kubernetes controllers that reconcile Crossplane resources.
Index ¶
- Variables
- func EquateConditions() cmp.Option
- func EquateErrors() cmp.Option
- type MockClient
- func (c *MockClient) Create(ctx context.Context, obj client.Object, opts ...client.CreateOption) error
- func (c *MockClient) Delete(ctx context.Context, obj client.Object, opts ...client.DeleteOption) error
- func (c *MockClient) DeleteAllOf(ctx context.Context, obj client.Object, opts ...client.DeleteAllOfOption) error
- func (c *MockClient) Get(ctx context.Context, key client.ObjectKey, obj client.Object, ...) error
- func (c *MockClient) GroupVersionKindFor(obj runtime.Object) (schema.GroupVersionKind, error)
- func (c *MockClient) IsObjectNamespaced(obj runtime.Object) (bool, error)
- func (c *MockClient) List(ctx context.Context, list client.ObjectList, opts ...client.ListOption) error
- func (c *MockClient) Patch(ctx context.Context, obj client.Object, patch client.Patch, ...) error
- func (c *MockClient) RESTMapper() meta.RESTMapper
- func (c *MockClient) Scheme() *runtime.Scheme
- func (c *MockClient) Status() client.SubResourceWriter
- func (c *MockClient) SubResource(_ string) client.SubResourceClient
- func (c *MockClient) Update(ctx context.Context, obj client.Object, opts ...client.UpdateOption) error
- type MockCreateFn
- type MockDeleteAllOfFn
- type MockDeleteFn
- type MockGetFn
- type MockGroupVersionKindForFn
- type MockIsObjectNamespacedFn
- type MockListFn
- type MockPatchFn
- type MockSchemeFn
- type MockSubResourceClient
- func (m *MockSubResourceClient) Create(ctx context.Context, obj, subResource client.Object, ...) error
- func (m *MockSubResourceClient) Get(ctx context.Context, obj, subResource client.Object, ...) error
- func (m *MockSubResourceClient) Patch(ctx context.Context, obj client.Object, patch client.Patch, ...) error
- func (m *MockSubResourceClient) Update(ctx context.Context, obj client.Object, opts ...client.SubResourceUpdateOption) error
- type MockSubResourceCreateFn
- type MockSubResourceGetFn
- type MockSubResourcePatchFn
- type MockSubResourceUpdateFn
- type MockUpdateFn
- type ObjectFn
- type ObjectListFn
- type RuntimeObjectFn
Constants ¶
This section is empty.
Variables ¶
var DefaultRetry = wait.Backoff{ Steps: 500, Duration: 10 * time.Millisecond, Factor: 1.0, Jitter: 0.1, }
DefaultRetry is the recommended retry parameters for unit testing scenarios where a condition is being tested multiple times before it is expected to succeed.
Functions ¶
func EquateConditions ¶
EquateConditions sorts any slices of Condition before comparing them.
func EquateErrors ¶
EquateErrors returns true if the supplied errors are of the same type and produce identical strings. This mirrors the error comparison behaviour of https://github.com/go-test/deep, which most Crossplane tests targeted before we switched to go-cmp.
This differs from cmpopts.EquateErrors, which does not test for error strings and instead returns whether one error 'is' (in the errors.Is sense) the other.
Types ¶
type MockClient ¶
type MockClient struct { MockGet MockGetFn MockList MockListFn MockCreate MockCreateFn MockDelete MockDeleteFn MockDeleteAllOf MockDeleteAllOfFn MockUpdate MockUpdateFn MockPatch MockPatchFn MockStatusCreate MockSubResourceCreateFn MockStatusUpdate MockSubResourceUpdateFn MockStatusPatch MockSubResourcePatchFn MockSubResourceGet MockSubResourceGetFn MockSubResourceCreate MockSubResourceCreateFn MockSubResourceUpdate MockSubResourceUpdateFn MockSubResourcePatch MockSubResourcePatchFn MockScheme MockSchemeFn MockGroupVersionKindFor MockGroupVersionKindForFn MockIsObjectNamespaced MockIsObjectNamespacedFn }
MockClient implements controller-runtime's Client interface, allowing each method to be overridden for testing. The controller-runtime provides a fake 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.
func NewMockClient ¶
func NewMockClient() *MockClient
NewMockClient returns a MockClient that does nothing when its methods are called.
func (*MockClient) Create ¶
func (c *MockClient) Create(ctx context.Context, obj client.Object, opts ...client.CreateOption) error
Create calls MockClient's MockCreate function.
func (*MockClient) Delete ¶
func (c *MockClient) Delete(ctx context.Context, obj client.Object, opts ...client.DeleteOption) error
Delete calls MockClient's MockDelete function.
func (*MockClient) DeleteAllOf ¶
func (c *MockClient) DeleteAllOf(ctx context.Context, obj client.Object, opts ...client.DeleteAllOfOption) error
DeleteAllOf calls MockClient's DeleteAllOf function.
func (*MockClient) Get ¶
func (c *MockClient) Get(ctx context.Context, key client.ObjectKey, obj client.Object, _ ...client.GetOption) error
Get calls MockClient's MockGet function.
func (*MockClient) GroupVersionKindFor ¶ added in v0.20.0
func (c *MockClient) GroupVersionKindFor(obj runtime.Object) (schema.GroupVersionKind, error)
GroupVersionKindFor calls MockClient's MockGroupVersionKindFor function
func (*MockClient) IsObjectNamespaced ¶ added in v0.20.0
func (c *MockClient) IsObjectNamespaced(obj runtime.Object) (bool, error)
IsObjectNamespaced calls MockClient's MockIsObjectNamespaced function
func (*MockClient) List ¶
func (c *MockClient) List(ctx context.Context, list client.ObjectList, opts ...client.ListOption) error
List calls MockClient's MockList function.
func (*MockClient) Patch ¶
func (c *MockClient) Patch(ctx context.Context, obj client.Object, patch client.Patch, opts ...client.PatchOption) error
Patch calls MockClient's MockPatch function.
func (*MockClient) RESTMapper ¶ added in v0.13.0
func (c *MockClient) RESTMapper() meta.RESTMapper
RESTMapper returns the REST mapper.
func (*MockClient) Scheme ¶ added in v0.13.0
func (c *MockClient) Scheme() *runtime.Scheme
Scheme calls MockClient's MockScheme function
func (*MockClient) Status ¶
func (c *MockClient) Status() client.SubResourceWriter
Status returns status writer for status sub-resource
func (*MockClient) SubResource ¶ added in v0.19.0
func (c *MockClient) SubResource(_ string) client.SubResourceClient
SubResource is unimplemented. It panics if called.
func (*MockClient) Update ¶
func (c *MockClient) Update(ctx context.Context, obj client.Object, opts ...client.UpdateOption) error
Update calls MockClient's MockUpdate function.
type MockCreateFn ¶
A MockCreateFn is used to mock client.Client's Create implementation.
func NewMockCreateFn ¶
func NewMockCreateFn(err error, ofn ...ObjectFn) MockCreateFn
NewMockCreateFn returns a MockCreateFn that returns the supplied error.
type MockDeleteAllOfFn ¶
type MockDeleteAllOfFn func(ctx context.Context, obj client.Object, opts ...client.DeleteAllOfOption) error
A MockDeleteAllOfFn is used to mock client.Client's Delete implementation.
func NewMockDeleteAllOfFn ¶
func NewMockDeleteAllOfFn(err error, ofn ...ObjectFn) MockDeleteAllOfFn
NewMockDeleteAllOfFn returns a MockDeleteAllOfFn that returns the supplied error.
type MockDeleteFn ¶
A MockDeleteFn is used to mock client.Client's Delete implementation.
func NewMockDeleteFn ¶
func NewMockDeleteFn(err error, ofn ...ObjectFn) MockDeleteFn
NewMockDeleteFn returns a MockDeleteFn that returns the supplied error.
type MockGetFn ¶
A MockGetFn is used to mock client.Client's Get implementation.
func NewMockGetFn ¶
NewMockGetFn returns a MockGetFn that returns the supplied error.
type MockGroupVersionKindForFn ¶ added in v0.20.0
type MockGroupVersionKindForFn func(runtime.Object) (schema.GroupVersionKind, error)
A MockGroupVersionKindForFn is used to mock client.Client's GroupVersionKindFor implementation.
func NewMockGroupVersionKindForFn ¶ added in v0.20.0
func NewMockGroupVersionKindForFn(err error, gvk schema.GroupVersionKind, rofn ...RuntimeObjectFn) MockGroupVersionKindForFn
NewMockGroupVersionKindForFn returns a MockGroupVersionKindForFn that returns the supplied GVK and error.
type MockIsObjectNamespacedFn ¶ added in v0.20.0
A MockIsObjectNamespacedFn is used to mock client.Client's IsObjectNamespaced implementation.
func NewMockIsObjectNamespacedFn ¶ added in v0.20.0
func NewMockIsObjectNamespacedFn(err error, isNamespaced bool, rofn ...RuntimeObjectFn) MockIsObjectNamespacedFn
NewMockIsObjectNamespacedFn returns a MockGroupVersionKindForFn that returns the supplied GVK and error.
type MockListFn ¶
type MockListFn func(ctx context.Context, list client.ObjectList, opts ...client.ListOption) error
A MockListFn is used to mock client.Client's List implementation.
func NewMockListFn ¶
func NewMockListFn(err error, ofn ...ObjectListFn) MockListFn
NewMockListFn returns a MockListFn that returns the supplied error.
type MockPatchFn ¶
type MockPatchFn func(ctx context.Context, obj client.Object, patch client.Patch, opts ...client.PatchOption) error
A MockPatchFn is used to mock client.Client's Patch implementation.
func NewMockPatchFn ¶
func NewMockPatchFn(err error, ofn ...ObjectFn) MockPatchFn
NewMockPatchFn returns a MockPatchFn that returns the supplied error.
type MockSchemeFn ¶ added in v0.16.0
A MockSchemeFn is used to mock client.Client's Scheme implementation.
func NewMockSchemeFn ¶ added in v0.16.0
func NewMockSchemeFn(scheme *runtime.Scheme) MockSchemeFn
NewMockSchemeFn returns a MockSchemeFn that returns the scheme
type MockSubResourceClient ¶ added in v0.19.0
type MockSubResourceClient struct { MockGet MockSubResourceGetFn MockCreate MockSubResourceCreateFn MockUpdate MockSubResourceUpdateFn MockPatch MockSubResourcePatchFn }
MockSubResourceClient provides mock functionality for status sub-resource
func (*MockSubResourceClient) Create ¶ added in v0.19.0
func (m *MockSubResourceClient) Create(ctx context.Context, obj, subResource client.Object, opts ...client.SubResourceCreateOption) error
Create a sub-resource
func (*MockSubResourceClient) Get ¶ added in v0.19.0
func (m *MockSubResourceClient) Get(ctx context.Context, obj, subResource client.Object, opts ...client.SubResourceGetOption) error
Get a sub-resource
func (*MockSubResourceClient) Patch ¶ added in v0.19.0
func (m *MockSubResourceClient) Patch(ctx context.Context, obj client.Object, patch client.Patch, opts ...client.SubResourcePatchOption) error
Patch a sub-resource
func (*MockSubResourceClient) Update ¶ added in v0.19.0
func (m *MockSubResourceClient) Update(ctx context.Context, obj client.Object, opts ...client.SubResourceUpdateOption) error
Update a sub-resource
type MockSubResourceCreateFn ¶ added in v0.19.0
type MockSubResourceCreateFn func(ctx context.Context, obj, subResource client.Object, opts ...client.SubResourceCreateOption) error
A MockSubResourceCreateFn is used to mock client.SubResourceClient's create implementation.
func NewMockSubResourceCreateFn ¶ added in v0.19.0
func NewMockSubResourceCreateFn(err error, ofn ...ObjectFn) MockSubResourceCreateFn
NewMockSubResourceCreateFn returns a MockSubResourceCreateFn that returns the supplied error.
type MockSubResourceGetFn ¶ added in v0.19.0
type MockSubResourceGetFn func(ctx context.Context, obj, subResource client.Object, opts ...client.SubResourceGetOption) error
A MockSubResourceGetFn is used to mock client.SubResourceClient's get implementation.
type MockSubResourcePatchFn ¶ added in v0.19.0
type MockSubResourcePatchFn func(ctx context.Context, obj client.Object, patch client.Patch, opts ...client.SubResourcePatchOption) error
A MockSubResourcePatchFn is used to mock client.SubResourceClient's patch implementation.
func NewMockSubResourcePatchFn ¶ added in v0.19.0
func NewMockSubResourcePatchFn(err error, ofn ...ObjectFn) MockSubResourcePatchFn
NewMockSubResourcePatchFn returns a MockSubResourcePatchFn that returns the supplied error.
type MockSubResourceUpdateFn ¶ added in v0.19.0
type MockSubResourceUpdateFn func(ctx context.Context, obj client.Object, opts ...client.SubResourceUpdateOption) error
A MockSubResourceUpdateFn is used to mock client.SubResourceClient's update implementation.
func NewMockSubResourceUpdateFn ¶ added in v0.19.0
func NewMockSubResourceUpdateFn(err error, ofn ...ObjectFn) MockSubResourceUpdateFn
NewMockSubResourceUpdateFn returns a MockSubResourceUpdateFn that returns the supplied error.
type MockUpdateFn ¶
A MockUpdateFn is used to mock client.Client's Update implementation.
func NewMockUpdateFn ¶
func NewMockUpdateFn(err error, ofn ...ObjectFn) MockUpdateFn
NewMockUpdateFn returns a MockUpdateFn that returns the supplied error.
type ObjectFn ¶
An ObjectFn operates on the supplied Object. You might use an ObjectFn to test or update the contents of an Object.
type ObjectListFn ¶ added in v0.13.0
type ObjectListFn func(obj client.ObjectList) error
An ObjectListFn operates on the supplied ObjectList. You might use an ObjectListFn to test or update the contents of an ObjectList.
type RuntimeObjectFn ¶ added in v0.20.0
An RuntimeObjectFn operates on the supplied Object. You might use an RuntimeObjectFn to test or update the contents of an runtime.Object.