/
fake_client.go
66 lines (54 loc) · 2.66 KB
/
fake_client.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package testing
import (
"context"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/runtime"
ctrlclient "sigs.k8s.io/controller-runtime/pkg/client"
)
// TODO: not thread safe
type FakeClient struct {
GetFn func(ctx context.Context, call int, key ctrlclient.ObjectKey, obj ctrlclient.Object, opts ...ctrlclient.GetOption) error
CreateFn func(ctx context.Context, call int, obj ctrlclient.Object, opts ...ctrlclient.CreateOption) error
UpdateFn func(ctx context.Context, call int, obj ctrlclient.Object, opts ...ctrlclient.UpdateOption) error
DeleteFn func(ctx context.Context, call int, obj ctrlclient.Object, opts ...ctrlclient.DeleteOption) error
ListFn func(ctx context.Context, call int, list ctrlclient.ObjectList, opts ...ctrlclient.ListOption) error
PatchFn func(ctx context.Context, call int, obj ctrlclient.Object, patch ctrlclient.Patch, opts ...ctrlclient.PatchOption) error
IsObjectNamespacedFn func(call int, obj runtime.Object) (bool, error)
RESTMapperFn func(call int) meta.RESTMapper
numCalls int
}
func (c *FakeClient) Get(ctx context.Context, key ctrlclient.ObjectKey, obj ctrlclient.Object, opts ...ctrlclient.GetOption) error {
defer func() { c.numCalls++ }()
return c.GetFn(ctx, c.numCalls, key, obj, opts...)
}
func (c *FakeClient) List(ctx context.Context, list ctrlclient.ObjectList, opts ...ctrlclient.ListOption) error {
defer func() { c.numCalls++ }()
return c.ListFn(ctx, c.numCalls, list, opts...)
}
func (c *FakeClient) Create(ctx context.Context, obj ctrlclient.Object, opts ...ctrlclient.CreateOption) error {
defer func() { c.numCalls++ }()
return c.CreateFn(ctx, c.numCalls, obj, opts...)
}
func (c *FakeClient) Update(ctx context.Context, obj ctrlclient.Object, opts ...ctrlclient.UpdateOption) error {
defer func() { c.numCalls++ }()
return c.UpdateFn(ctx, c.numCalls, obj, opts...)
}
func (c *FakeClient) Delete(ctx context.Context, obj ctrlclient.Object, opts ...ctrlclient.DeleteOption) error {
defer func() { c.numCalls++ }()
return c.DeleteFn(ctx, c.numCalls, obj, opts...)
}
func (c *FakeClient) Patch(ctx context.Context, obj ctrlclient.Object, patch ctrlclient.Patch, opts ...ctrlclient.PatchOption) error {
defer func() { c.numCalls++ }()
return c.PatchFn(ctx, c.numCalls, obj, patch, opts...)
}
func (c *FakeClient) IsObjectNamespaced(obj runtime.Object) (bool, error) {
defer func() { c.numCalls++ }()
return c.IsObjectNamespacedFn(c.numCalls, obj)
}
func (c *FakeClient) RESTMapper() meta.RESTMapper {
defer func() { c.numCalls++ }()
return c.RESTMapperFn(c.numCalls)
}
func (c *FakeClient) NumCalls() int {
return c.numCalls
}