8
8
. "github.com/onsi/gomega"
9
9
ootov1alpha1 "github.com/qbarrand/oot-operator/api/v1alpha1"
10
10
"github.com/qbarrand/oot-operator/internal/build"
11
+ "github.com/qbarrand/oot-operator/internal/client"
11
12
"github.com/qbarrand/oot-operator/internal/daemonset"
12
13
"github.com/qbarrand/oot-operator/internal/metrics"
13
14
"github.com/qbarrand/oot-operator/internal/module"
@@ -16,7 +17,6 @@ import (
16
17
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
17
18
"k8s.io/apimachinery/pkg/types"
18
19
"k8s.io/apimachinery/pkg/util/sets"
19
- "sigs.k8s.io/controller-runtime/pkg/client/fake"
20
20
"sigs.k8s.io/controller-runtime/pkg/reconcile"
21
21
)
22
22
@@ -28,6 +28,7 @@ var _ = Describe("ModuleReconciler", func() {
28
28
Describe ("Reconcile" , func () {
29
29
var (
30
30
ctrl * gomock.Controller
31
+ clnt * client.MockClient
31
32
mockBM * build.MockManager
32
33
mockCU * module.MockConditionsUpdater
33
34
mockDC * daemonset.MockDaemonSetCreator
@@ -37,6 +38,7 @@ var _ = Describe("ModuleReconciler", func() {
37
38
38
39
BeforeEach (func () {
39
40
ctrl = gomock .NewController (GinkgoT ())
41
+ clnt = client .NewMockClient (ctrl )
40
42
mockBM = build .NewMockManager (ctrl )
41
43
mockCU = module .NewMockConditionsUpdater (ctrl )
42
44
mockDC = daemonset .NewMockDaemonSetCreator (ctrl )
@@ -64,29 +66,31 @@ var _ = Describe("ModuleReconciler", func() {
64
66
},
65
67
}
66
68
67
- nodeList := v1.NodeList {
68
- Items : []v1.Node {
69
- {
70
- ObjectMeta : metav1.ObjectMeta {Name : "node1" },
71
- },
72
- },
73
- }
74
-
75
- client := fake .
76
- NewClientBuilder ().
77
- WithScheme (scheme ).
78
- WithObjects (& mod ).
79
- WithLists (& nodeList ).
80
- Build ()
69
+ ctx := context .TODO ()
81
70
82
- mr := NewModuleReconciler (client , mockBM , mockDC , mockKM , mockCU , mockMetrics , nil )
71
+ gomock .InOrder (
72
+ clnt .EXPECT ().Get (ctx , req .NamespacedName , gomock .Any ()).DoAndReturn (
73
+ func (_ interface {}, _ interface {}, m * ootov1alpha1.Module ) error {
74
+ m .ObjectMeta = mod .ObjectMeta
75
+ m .Spec = mod .Spec
76
+ return nil
77
+ },
78
+ ),
79
+ clnt .EXPECT ().List (ctx , gomock .Any (), gomock .Any ()).DoAndReturn (
80
+ func (_ interface {}, list * ootov1alpha1.ModuleList , _ ... interface {}) error {
81
+ list .Items = []ootov1alpha1.Module {mod }
82
+ return nil
83
+ },
84
+ ),
85
+ mockMetrics .EXPECT ().SetExistingKMMOModules (1 ),
86
+ clnt .EXPECT ().List (ctx , gomock .Any (), gomock .Any ()),
87
+ )
83
88
84
- ctx := context . TODO ( )
89
+ mr := NewModuleReconciler ( clnt , mockBM , mockDC , mockKM , mockCU , mockMetrics , nil )
85
90
86
91
dsByKernelVersion := make (map [string ]* appsv1.DaemonSet )
87
92
88
93
gomock .InOrder (
89
- mockMetrics .EXPECT ().SetExistingKMMOModules (1 ),
90
94
mockDC .EXPECT ().ModuleDaemonSetsByKernelVersion (ctx , moduleName , namespace ).Return (dsByKernelVersion , nil ),
91
95
mockDC .EXPECT ().GarbageCollect (ctx , dsByKernelVersion , sets .NewString ()),
92
96
)
@@ -116,20 +120,30 @@ var _ = Describe("ModuleReconciler", func() {
116
120
},
117
121
}
118
122
119
- c := fake .
120
- NewClientBuilder ().
121
- WithScheme (scheme ).
122
- WithObjects (& mod , & ds ).
123
- Build ()
124
-
125
- mr := NewModuleReconciler (c , mockBM , mockDC , mockKM , mockCU , mockMetrics , nil )
126
-
127
123
ctx := context .TODO ()
124
+ gomock .InOrder (
125
+ clnt .EXPECT ().Get (ctx , req .NamespacedName , gomock .Any ()).DoAndReturn (
126
+ func (_ interface {}, _ interface {}, m * ootov1alpha1.Module ) error {
127
+ m .ObjectMeta = mod .ObjectMeta
128
+ m .Spec = mod .Spec
129
+ return nil
130
+ },
131
+ ),
132
+ clnt .EXPECT ().List (ctx , gomock .Any (), gomock .Any ()).DoAndReturn (
133
+ func (_ interface {}, list * ootov1alpha1.ModuleList , _ ... interface {}) error {
134
+ list .Items = []ootov1alpha1.Module {mod }
135
+ return nil
136
+ },
137
+ ),
138
+ mockMetrics .EXPECT ().SetExistingKMMOModules (1 ),
139
+ clnt .EXPECT ().List (ctx , gomock .Any (), gomock .Any ()),
140
+ )
141
+
142
+ mr := NewModuleReconciler (clnt , mockBM , mockDC , mockKM , mockCU , mockMetrics , nil )
128
143
129
144
dsByKernelVersion := map [string ]* appsv1.DaemonSet {kernelVersion : & ds }
130
145
131
146
gomock .InOrder (
132
- mockMetrics .EXPECT ().SetExistingKMMOModules (1 ),
133
147
mockDC .EXPECT ().ModuleDaemonSetsByKernelVersion (ctx , moduleName , namespace ).Return (dsByKernelVersion , nil ),
134
148
mockDC .EXPECT ().GarbageCollect (ctx , dsByKernelVersion , sets .NewString ()),
135
149
)
@@ -179,16 +193,32 @@ var _ = Describe("ModuleReconciler", func() {
179
193
},
180
194
}
181
195
182
- c := fake .
183
- NewClientBuilder ().
184
- WithScheme (scheme ).
185
- WithObjects (& mod ).
186
- WithLists (& nodeList ).
187
- Build ()
196
+ ctx := context .TODO ()
188
197
189
- mr := NewModuleReconciler (c , mockBM , mockDC , mockKM , mockCU , mockMetrics , nil )
198
+ gomock .InOrder (
199
+ clnt .EXPECT ().Get (ctx , req .NamespacedName , gomock .Any ()).DoAndReturn (
200
+ func (_ interface {}, _ interface {}, m * ootov1alpha1.Module ) error {
201
+ m .ObjectMeta = mod .ObjectMeta
202
+ m .Spec = mod .Spec
203
+ return nil
204
+ },
205
+ ),
206
+ clnt .EXPECT ().List (ctx , gomock .Any (), gomock .Any ()).DoAndReturn (
207
+ func (_ interface {}, list * ootov1alpha1.ModuleList , _ ... interface {}) error {
208
+ return nil
209
+ },
210
+ ),
211
+ mockMetrics .EXPECT ().SetExistingKMMOModules (0 ),
212
+ clnt .EXPECT ().List (ctx , gomock .Any (), gomock .Any ()).DoAndReturn (
213
+ func (_ interface {}, list * v1.NodeList , _ ... interface {}) error {
214
+ list .Items = nodeList .Items
215
+ return nil
216
+ },
217
+ ),
218
+ clnt .EXPECT ().Get (ctx , gomock .Any (), gomock .Any ()),
219
+ )
190
220
191
- ctx := context . TODO ( )
221
+ mr := NewModuleReconciler ( clnt , mockBM , mockDC , mockKM , mockCU , mockMetrics , nil )
192
222
193
223
ds := appsv1.DaemonSet {
194
224
ObjectMeta : metav1.ObjectMeta {
@@ -198,7 +228,6 @@ var _ = Describe("ModuleReconciler", func() {
198
228
}
199
229
200
230
gomock .InOrder (
201
- mockMetrics .EXPECT ().SetExistingKMMOModules (1 ),
202
231
mockKM .EXPECT ().GetNodeOSConfig (& nodeList .Items [0 ]).Return (& osConfig ),
203
232
mockKM .EXPECT ().FindMappingForKernel (mappings , kernelVersion ).Return (& mappings [0 ], nil ),
204
233
mockKM .EXPECT ().PrepareKernelMapping (& mappings [0 ], & osConfig ).Return (& mappings [0 ], nil ),
@@ -210,12 +239,6 @@ var _ = Describe("ModuleReconciler", func() {
210
239
res , err := mr .Reconcile (context .TODO (), req )
211
240
Expect (err ).NotTo (HaveOccurred ())
212
241
Expect (res ).To (Equal (reconcile.Result {}))
213
-
214
- dsList := appsv1.DaemonSetList {}
215
-
216
- err = c .List (ctx , & dsList )
217
- Expect (err ).NotTo (HaveOccurred ())
218
- Expect (dsList .Items ).To (HaveLen (1 ))
219
242
})
220
243
221
244
It ("should patch the DaemonSet when it already exists" , func () {
@@ -272,21 +295,38 @@ var _ = Describe("ModuleReconciler", func() {
272
295
},
273
296
}
274
297
275
- c := fake .
276
- NewClientBuilder ().
277
- WithScheme (scheme ).
278
- WithObjects (& mod , & ds ).
279
- WithLists (& nodeList ).
280
- Build ()
298
+ ctx := context .TODO ()
281
299
282
- mr := NewModuleReconciler (c , mockBM , mockDC , mockKM , mockCU , mockMetrics , nil )
300
+ gomock .InOrder (
301
+ clnt .EXPECT ().Get (ctx , req .NamespacedName , gomock .Any ()).DoAndReturn (
302
+ func (_ interface {}, _ interface {}, m * ootov1alpha1.Module ) error {
303
+ m .ObjectMeta = mod .ObjectMeta
304
+ m .Spec = mod .Spec
305
+ return nil
306
+ },
307
+ ),
308
+ clnt .EXPECT ().List (ctx , gomock .Any (), gomock .Any ()).DoAndReturn (
309
+ func (_ interface {}, list * ootov1alpha1.ModuleList , _ ... interface {}) error {
310
+ list .Items = []ootov1alpha1.Module {mod }
311
+ return nil
312
+ },
313
+ ),
314
+ mockMetrics .EXPECT ().SetExistingKMMOModules (1 ),
315
+ clnt .EXPECT ().List (ctx , gomock .Any (), gomock .Any ()).DoAndReturn (
316
+ func (_ interface {}, list * v1.NodeList , _ ... interface {}) error {
317
+ list .Items = nodeList .Items
318
+ return nil
319
+ },
320
+ ),
321
+ clnt .EXPECT ().Get (ctx , gomock .Any (), gomock .Any ()),
322
+ clnt .EXPECT ().Patch (ctx , gomock .Any (), gomock .Any ()),
323
+ )
283
324
284
- ctx := context . TODO ( )
325
+ mr := NewModuleReconciler ( clnt , mockBM , mockDC , mockKM , mockCU , mockMetrics , nil )
285
326
286
327
dsByKernelVersion := map [string ]* appsv1.DaemonSet {kernelVersion : & ds }
287
328
288
329
gomock .InOrder (
289
- mockMetrics .EXPECT ().SetExistingKMMOModules (1 ),
290
330
mockKM .EXPECT ().GetNodeOSConfig (& nodeList .Items [0 ]).Return (& osConfig ),
291
331
mockKM .EXPECT ().FindMappingForKernel (mappings , kernelVersion ).Return (& mappings [0 ], nil ),
292
332
mockKM .EXPECT ().PrepareKernelMapping (& mappings [0 ], & osConfig ).Return (& mappings [0 ], nil ),
@@ -301,14 +341,6 @@ var _ = Describe("ModuleReconciler", func() {
301
341
res , err := mr .Reconcile (context .TODO (), req )
302
342
Expect (err ).NotTo (HaveOccurred ())
303
343
Expect (res ).To (Equal (reconcile.Result {}))
304
-
305
- dsList := appsv1.DaemonSetList {}
306
-
307
- err = c .List (ctx , & dsList )
308
- Expect (err ).NotTo (HaveOccurred ())
309
- Expect (dsList .Items ).To (HaveLen (1 ))
310
- Expect (dsList .Items [0 ].Name ).To (Equal (dsName ))
311
- Expect (dsList .Items [0 ].Labels ).To (HaveKeyWithValue ("test" , "test" ))
312
344
})
313
345
})
314
346
})
0 commit comments