8
8
. "github.com/onsi/gomega"
9
9
meshv1alpha1 "github.com/symcn/mesh-operator/api/v1alpha1"
10
10
. "github.com/symcn/mesh-operator/test"
11
+ networkingv1beta1 "istio.io/client-go/pkg/apis/networking/v1beta1"
11
12
"k8s.io/apimachinery/pkg/apis/meta/v1"
12
13
"k8s.io/apimachinery/pkg/types"
13
14
ctrl "sigs.k8s.io/controller-runtime"
@@ -21,6 +22,7 @@ var _ = Describe("Controller", func() {
21
22
var (
22
23
mockCtrl * gomock.Controller
23
24
mockClient * MockClient
25
+ mockStatusWriter * MockStatusWriter
24
26
errReq ctrl.Request
25
27
normalReq ctrl.Request
26
28
normalServiceConfig * meshv1alpha1.ServiceConfig
@@ -169,4 +171,98 @@ var _ = Describe("Controller", func() {
169
171
Expect (err .Error ()).To (Equal ("get serviceconfig error" ))
170
172
})
171
173
})
174
+
175
+ Describe ("test reconcile used mock client - list destinationrules error" , func () {
176
+ BeforeEach (func () {
177
+ mockCtrl = gomock .NewController (GinkgoT ())
178
+ mockClient = NewMockClient (mockCtrl )
179
+ mockClient .EXPECT ().Get (gomock .Any (), gomock .Any (), gomock .Any ()).Return (nil ).AnyTimes ()
180
+ mockClient .EXPECT ().
181
+ List (gomock .Any (), gomock .Not (& networkingv1beta1.DestinationRuleList {}), gomock .Any ()).
182
+ Return (nil ).AnyTimes ()
183
+ mockClient .EXPECT ().
184
+ List (gomock .Any (), gomock .Eq (& networkingv1beta1.DestinationRuleList {}), gomock .Any ()).
185
+ Return (errors .New ("list destinationrules error" )).AnyTimes ()
186
+ }, timeout )
187
+
188
+ AfterEach (func () {
189
+ mockCtrl .Finish ()
190
+ }, timeout )
191
+
192
+ It ("error occurred when list destinationrules" , func () {
193
+ r := Reconciler {
194
+ Client : mockClient ,
195
+ Log : nil ,
196
+ Scheme : getFakeScheme (),
197
+ Opt : testOpt ,
198
+ MeshConfig : getTestMeshConfig (),
199
+ }
200
+ result , err := r .Reconcile (errReq )
201
+ Expect (result ).To (Equal (reconcile.Result {}))
202
+ Expect (err ).To (HaveOccurred ())
203
+ Expect (err .Error ()).To (Equal ("list destinationrules error" ))
204
+ })
205
+ })
206
+
207
+ Describe ("test reconcile used mock client - list virtualservice error" , func () {
208
+ BeforeEach (func () {
209
+ mockCtrl = gomock .NewController (GinkgoT ())
210
+ mockClient = NewMockClient (mockCtrl )
211
+ mockClient .EXPECT ().Get (gomock .Any (), gomock .Any (), gomock .Any ()).Return (nil ).AnyTimes ()
212
+ mockClient .EXPECT ().
213
+ List (gomock .Any (), gomock .Not (& networkingv1beta1.VirtualServiceList {}), gomock .Any ()).
214
+ Return (nil ).AnyTimes ()
215
+ mockClient .EXPECT ().
216
+ List (gomock .Any (), gomock .Eq (& networkingv1beta1.VirtualServiceList {}), gomock .Any ()).
217
+ Return (errors .New ("list virtualservice error" )).AnyTimes ()
218
+ }, timeout )
219
+
220
+ AfterEach (func () {
221
+ mockCtrl .Finish ()
222
+ }, timeout )
223
+
224
+ It ("error occurred when list virtualservice " , func () {
225
+ r := Reconciler {
226
+ Client : mockClient ,
227
+ Log : nil ,
228
+ Scheme : getFakeScheme (),
229
+ Opt : testOpt ,
230
+ MeshConfig : getTestMeshConfig (),
231
+ }
232
+ result , err := r .Reconcile (errReq )
233
+ Expect (result ).To (Equal (reconcile.Result {}))
234
+ Expect (err ).To (HaveOccurred ())
235
+ Expect (err .Error ()).To (Equal ("list virtualservice error" ))
236
+ })
237
+ })
238
+
239
+ Describe ("test reconcile used mock client - update status error" , func () {
240
+ BeforeEach (func () {
241
+ mockCtrl = gomock .NewController (GinkgoT ())
242
+ mockClient = NewMockClient (mockCtrl )
243
+ mockStatusWriter = NewMockStatusWriter (mockCtrl )
244
+ mockClient .EXPECT ().Get (gomock .Any (), gomock .Any (), gomock .Any ()).Return (nil ).AnyTimes ()
245
+ mockClient .EXPECT ().List (gomock .Any (), gomock .Any (), gomock .Any ()).Return (nil ).AnyTimes ()
246
+ mockClient .EXPECT ().Status ().Return (mockStatusWriter ).AnyTimes ()
247
+ mockStatusWriter .EXPECT ().Update (gomock .Any (), gomock .Any ()).Return (errors .New ("update status error" ))
248
+ }, timeout )
249
+
250
+ AfterEach (func () {
251
+ mockCtrl .Finish ()
252
+ }, timeout )
253
+
254
+ It ("error occurred when update status" , func () {
255
+ r := Reconciler {
256
+ Client : mockClient ,
257
+ Log : nil ,
258
+ Scheme : getFakeScheme (),
259
+ Opt : testOpt ,
260
+ MeshConfig : getTestMeshConfig (),
261
+ }
262
+ result , err := r .Reconcile (errReq )
263
+ Expect (result ).To (Equal (reconcile.Result {}))
264
+ Expect (err ).To (HaveOccurred ())
265
+ Expect (err .Error ()).To (Equal ("update status error" ))
266
+ })
267
+ })
172
268
})
0 commit comments