@@ -6,12 +6,13 @@ import (
6
6
"testing"
7
7
8
8
v1 "k8s.io/api/core/v1"
9
+ kubeerrors "k8s.io/apimachinery/pkg/api/errors"
9
10
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
10
- "k8s.io/client-go/kubernetes/fake"
11
+ fakekubeclientset "k8s.io/client-go/kubernetes/fake"
11
12
"k8s.io/client-go/tools/record"
12
-
13
+ "sigs.k8s.io/container-object-storage-interface-api/apis/objectstorage/v1alpha1"
13
14
types "sigs.k8s.io/container-object-storage-interface-api/apis/objectstorage/v1alpha1"
14
- bucketclientset "sigs.k8s.io/container-object-storage-interface-api/client/clientset/versioned/fake"
15
+ fakebucketclientset "sigs.k8s.io/container-object-storage-interface-api/client/clientset/versioned/fake"
15
16
"sigs.k8s.io/container-object-storage-interface-api/controller/events"
16
17
"sigs.k8s.io/container-object-storage-interface-controller/pkg/util"
17
18
)
@@ -81,64 +82,12 @@ func TestAddBRIdempotency(t *testing.T) {
81
82
runCreateBucketIdempotency (t , "addWithMultipleBR" )
82
83
}
83
84
84
- // Test recording events
85
- func TestRecordEvents (t * testing.T ) {
86
- t .Parallel ()
87
-
88
- ctx := context .TODO ()
89
-
90
- for _ , tc := range []struct {
91
- name string
92
- expectedEvent string
93
- eventTrigger func (context.Context , * BucketClaimListener )
94
- }{
95
- {
96
- name : "" ,
97
- expectedEvent : newEvent (
98
- v1 .EventTypeWarning ,
99
- events .FailedCreateBucket ,
100
- "" ),
101
- eventTrigger : func (ctx context.Context , bcl * BucketClaimListener ) {
102
- panic ("unimplemented" )
103
- },
104
- },
105
- {
106
- name : "" ,
107
- expectedEvent : newEvent (
108
- v1 .EventTypeWarning ,
109
- events .FailedCreateBucket ,
110
- "" ),
111
- eventTrigger : func (ctx context.Context , bcl * BucketClaimListener ) {
112
- panic ("unimplemented" )
113
- },
114
- },
115
- } {
116
- tc := tc
117
-
118
- t .Run (tc .name , func (t * testing.T ) {
119
- t .Parallel ()
120
-
121
- recorder := record .NewFakeRecorder (1 )
122
-
123
- bcl := & BucketClaimListener {}
124
- bcl .InitializeEventRecorder (recorder )
125
-
126
- tc .eventTrigger (ctx , bcl )
127
-
128
- event := <- recorder .Events
129
- if event != tc .expectedEvent {
130
- t .Errorf ("Expected %s \n got %s" , tc .expectedEvent , event )
131
- }
132
- })
133
- }
134
- }
135
-
136
85
func runCreateBucket (t * testing.T , name string ) {
137
86
ctx , cancel := context .WithCancel (context .Background ())
138
87
defer cancel ()
139
88
140
- client := bucketclientset .NewSimpleClientset ()
141
- kubeClient := fake .NewSimpleClientset ()
89
+ client := fakebucketclientset .NewSimpleClientset ()
90
+ kubeClient := fakekubeclientset .NewSimpleClientset ()
142
91
eventRecorder := record .NewFakeRecorder (3 )
143
92
144
93
listener := NewBucketClaimListener ()
@@ -182,8 +131,8 @@ func runCreateBucketWithMultipleBR(t *testing.T, name string) {
182
131
ctx , cancel := context .WithCancel (context .Background ())
183
132
defer cancel ()
184
133
185
- client := bucketclientset .NewSimpleClientset ()
186
- kubeClient := fake .NewSimpleClientset ()
134
+ client := fakebucketclientset .NewSimpleClientset ()
135
+ kubeClient := fakekubeclientset .NewSimpleClientset ()
187
136
eventRecorder := record .NewFakeRecorder (3 )
188
137
189
138
listener := NewBucketClaimListener ()
@@ -238,8 +187,8 @@ func runCreateBucketIdempotency(t *testing.T, name string) {
238
187
ctx , cancel := context .WithCancel (context .Background ())
239
188
defer cancel ()
240
189
241
- client := bucketclientset .NewSimpleClientset ()
242
- kubeClient := fake .NewSimpleClientset ()
190
+ client := fakebucketclientset .NewSimpleClientset ()
191
+ kubeClient := fakekubeclientset .NewSimpleClientset ()
243
192
eventRecorder := record .NewFakeRecorder (3 )
244
193
245
194
listener := NewBucketClaimListener ()
@@ -287,6 +236,92 @@ func runCreateBucketIdempotency(t *testing.T, name string) {
287
236
}
288
237
}
289
238
239
+ // Test recording events
240
+ func TestRecordEvents (t * testing.T ) {
241
+ t .Parallel ()
242
+
243
+ defaultBucketClaim := & v1alpha1.BucketClaim {
244
+ ObjectMeta : metav1.ObjectMeta {
245
+ Name : "test-bucketClaim" ,
246
+ Namespace : "test-ns" ,
247
+ },
248
+ Spec : v1alpha1.BucketClaimSpec {
249
+ BucketClassName : "test-bucketClass" ,
250
+ },
251
+ }
252
+
253
+ for _ , tc := range []struct {
254
+ name string
255
+ expectedEvent string
256
+ eventTrigger func (* testing.T , * BucketClaimListener )
257
+ }{
258
+ {
259
+ name : "ExistingBucketNotFound" ,
260
+ expectedEvent : newEvent (
261
+ v1 .EventTypeWarning ,
262
+ events .FailedCreateBucket ,
263
+ "buckets.objectstorage.k8s.io \" existing-bucket\" not found" ),
264
+ eventTrigger : func (t * testing.T , bcl * BucketClaimListener ) {
265
+ ctx := context .TODO ()
266
+
267
+ bucketClaim := defaultBucketClaim .DeepCopy ()
268
+ bucketClaim .Spec .ExistingBucketName = "existing-bucket"
269
+
270
+ err := bcl .Add (ctx , bucketClaim )
271
+ if ! kubeerrors .IsNotFound (err ) {
272
+ t .Errorf ("expected Not Found error got %v" , err )
273
+ }
274
+ },
275
+ },
276
+ {
277
+ name : "BucketClassNotFound" ,
278
+ expectedEvent : newEvent (
279
+ v1 .EventTypeWarning ,
280
+ events .FailedCreateBucket ,
281
+ "bucketclasses.objectstorage.k8s.io \" test-bucketClass\" not found" ),
282
+ eventTrigger : func (t * testing.T , listener * BucketClaimListener ) {
283
+ ctx := context .TODO ()
284
+ bucketClaim := defaultBucketClaim .DeepCopy ()
285
+
286
+ err := listener .Add (ctx , bucketClaim )
287
+ if ! kubeerrors .IsNotFound (err ) {
288
+ t .Errorf ("expected Not Found error got %v" , err )
289
+ }
290
+ },
291
+ },
292
+ } {
293
+ tc := tc
294
+
295
+ t .Run (tc .name , func (t * testing.T ) {
296
+ t .Parallel ()
297
+
298
+ client := fakebucketclientset .NewSimpleClientset ()
299
+ kubeClient := fakekubeclientset .NewSimpleClientset ()
300
+ eventRecorder := record .NewFakeRecorder (1 )
301
+
302
+ listener := NewBucketClaimListener ()
303
+ listener .InitializeKubeClient (kubeClient )
304
+ listener .InitializeBucketClient (client )
305
+ listener .InitializeEventRecorder (eventRecorder )
306
+
307
+ tc .eventTrigger (t , listener )
308
+
309
+ select {
310
+ case event , ok := <- eventRecorder .Events :
311
+ if ok {
312
+ if event != tc .expectedEvent {
313
+ t .Errorf ("Expected %s \n got %s" , tc .expectedEvent , event )
314
+ }
315
+ } else {
316
+ t .Error ("channel closed, no event" )
317
+ }
318
+ default :
319
+ t .Errorf ("no event after trigger" )
320
+ }
321
+ })
322
+ }
323
+ }
324
+
290
325
func newEvent (eventType , reason , message string ) string {
291
326
return fmt .Sprintf ("%s %s %s" , eventType , reason , message )
292
327
}
0 commit comments