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 ApplyFn
- type MockApplyFn
- type MockClient
- func (c *MockClient) Apply(ctx context.Context, config runtime.ApplyConfiguration, ...) error
- 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 ApplyFn ¶ added in v2.1.0
type ApplyFn func(obj runtime.ApplyConfiguration) error
ApplyFn operates on the supplied ApplyConfiguration. You might use an ApplyFn to test or update the contents of an ApplyConfiguration object.
type MockApplyFn ¶ added in v2.1.0
type MockApplyFn func(ctx context.Context, config runtime.ApplyConfiguration, opts ...client.ApplyOption) error
A MockApplyFn is used to mock client.Client's Apply implementation.
func NewMockApplyFn ¶ added in v2.1.0
func NewMockApplyFn(err error, afn ...ApplyFn) MockApplyFn
NewMockApplyFn returns a MockApplyFn that returns the supplied error.
type MockClient ¶
type MockClient struct {
MockGet MockGetFn
MockList MockListFn
MockCreate MockCreateFn
MockDelete MockDeleteFn
MockDeleteAllOf MockDeleteAllOfFn
MockUpdate MockUpdateFn
MockPatch MockPatchFn
MockApply MockApplyFn
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) Apply ¶ added in v2.1.0
func (c *MockClient) Apply(ctx context.Context, config runtime.ApplyConfiguration, opts ...client.ApplyOption) error
Apply calls MockClient's MockApply function.
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 ¶
func (c *MockClient) GroupVersionKindFor(obj runtime.Object) (schema.GroupVersionKind, error)
GroupVersionKindFor calls MockClient's MockGroupVersionKindFor function.
func (*MockClient) IsObjectNamespaced ¶
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 ¶
func (c *MockClient) RESTMapper() meta.RESTMapper
RESTMapper returns the REST mapper.
func (*MockClient) Scheme ¶
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 ¶
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 ¶
type MockGroupVersionKindForFn func(runtime.Object) (schema.GroupVersionKind, error)
A MockGroupVersionKindForFn is used to mock client.Client's GroupVersionKindFor implementation.
func NewMockGroupVersionKindForFn ¶
func NewMockGroupVersionKindForFn(err error, gvk schema.GroupVersionKind, rofn ...RuntimeObjectFn) MockGroupVersionKindForFn
NewMockGroupVersionKindForFn returns a MockGroupVersionKindForFn that returns the supplied GVK and error.
type MockIsObjectNamespacedFn ¶
A MockIsObjectNamespacedFn is used to mock client.Client's IsObjectNamespaced implementation.
func NewMockIsObjectNamespacedFn ¶
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 ¶
A MockSchemeFn is used to mock client.Client's Scheme implementation.
func NewMockSchemeFn ¶
func NewMockSchemeFn(scheme *runtime.Scheme) MockSchemeFn
NewMockSchemeFn returns a MockSchemeFn that returns the scheme.
type MockSubResourceClient ¶
type MockSubResourceClient struct {
MockGet MockSubResourceGetFn
MockCreate MockSubResourceCreateFn
MockUpdate MockSubResourceUpdateFn
MockPatch MockSubResourcePatchFn
}
MockSubResourceClient provides mock functionality for status sub-resource.
func (*MockSubResourceClient) Create ¶
func (m *MockSubResourceClient) Create(ctx context.Context, obj, subResource client.Object, opts ...client.SubResourceCreateOption) error
Create a sub-resource.
func (*MockSubResourceClient) Get ¶
func (m *MockSubResourceClient) Get(ctx context.Context, obj, subResource client.Object, opts ...client.SubResourceGetOption) error
Get a sub-resource.
func (*MockSubResourceClient) Patch ¶
func (m *MockSubResourceClient) Patch(ctx context.Context, obj client.Object, patch client.Patch, opts ...client.SubResourcePatchOption) error
Patch a sub-resource.
func (*MockSubResourceClient) Update ¶
func (m *MockSubResourceClient) Update(ctx context.Context, obj client.Object, opts ...client.SubResourceUpdateOption) error
Update a sub-resource.
type MockSubResourceCreateFn ¶
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 ¶
func NewMockSubResourceCreateFn(err error, ofn ...ObjectFn) MockSubResourceCreateFn
NewMockSubResourceCreateFn returns a MockSubResourceCreateFn that returns the supplied error.
type MockSubResourceGetFn ¶
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 ¶
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 ¶
func NewMockSubResourcePatchFn(err error, ofn ...ObjectFn) MockSubResourcePatchFn
NewMockSubResourcePatchFn returns a MockSubResourcePatchFn that returns the supplied error.
type MockSubResourceUpdateFn ¶
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 ¶
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 ¶
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 ¶
An RuntimeObjectFn operates on the supplied Object. You might use an RuntimeObjectFn to test or update the contents of an runtime.Object.