@@ -61,11 +61,11 @@ func TestNameAsExternalName(t *testing.T) {
6161 client : & test.MockClient {MockUpdate : test .NewMockUpdateFn (errBoom )},
6262 args : args {
6363 ctx : context .Background (),
64- mg : & fake.Managed {ObjectMeta : metav1.ObjectMeta {Name : testExternalName }},
64+ mg : & fake.LegacyManaged {ObjectMeta : metav1.ObjectMeta {Name : testExternalName }},
6565 },
6666 want : want {
6767 err : errors .Wrap (errBoom , errUpdateManaged ),
68- mg : & fake.Managed {ObjectMeta : metav1.ObjectMeta {
68+ mg : & fake.LegacyManaged {ObjectMeta : metav1.ObjectMeta {
6969 Name : testExternalName ,
7070 Annotations : map [string ]string {meta .AnnotationKeyExternalName : testExternalName },
7171 }},
@@ -75,11 +75,11 @@ func TestNameAsExternalName(t *testing.T) {
7575 client : & test.MockClient {MockUpdate : test .NewMockUpdateFn (nil )},
7676 args : args {
7777 ctx : context .Background (),
78- mg : & fake.Managed {ObjectMeta : metav1.ObjectMeta {Name : testExternalName }},
78+ mg : & fake.LegacyManaged {ObjectMeta : metav1.ObjectMeta {Name : testExternalName }},
7979 },
8080 want : want {
8181 err : nil ,
82- mg : & fake.Managed {ObjectMeta : metav1.ObjectMeta {
82+ mg : & fake.LegacyManaged {ObjectMeta : metav1.ObjectMeta {
8383 Name : testExternalName ,
8484 Annotations : map [string ]string {meta .AnnotationKeyExternalName : testExternalName },
8585 }},
@@ -88,14 +88,14 @@ func TestNameAsExternalName(t *testing.T) {
8888 "UpdateNotNeeded" : {
8989 args : args {
9090 ctx : context .Background (),
91- mg : & fake.Managed {ObjectMeta : metav1.ObjectMeta {
91+ mg : & fake.LegacyManaged {ObjectMeta : metav1.ObjectMeta {
9292 Name : testExternalName ,
9393 Annotations : map [string ]string {meta .AnnotationKeyExternalName : "some-name" },
9494 }},
9595 },
9696 want : want {
9797 err : nil ,
98- mg : & fake.Managed {ObjectMeta : metav1.ObjectMeta {
98+ mg : & fake.LegacyManaged {ObjectMeta : metav1.ObjectMeta {
9999 Name : testExternalName ,
100100 Annotations : map [string ]string {meta .AnnotationKeyExternalName : "some-name" },
101101 }},
@@ -122,7 +122,7 @@ func TestNameAsExternalName(t *testing.T) {
122122func TestAPISecretPublisher (t * testing.T ) {
123123 errBoom := errors .New ("boom" )
124124
125- mg := & fake.Managed {
125+ mg := & fake.LegacyManaged {
126126 ConnectionSecretWriterTo : fake.ConnectionSecretWriterTo {Ref : & xpv1.SecretReference {
127127 Namespace : "coolnamespace" ,
128128 Name : "coolsecret" ,
@@ -138,7 +138,7 @@ func TestAPISecretPublisher(t *testing.T) {
138138
139139 type args struct {
140140 ctx context.Context
141- mg resource.Managed
141+ mg resource.LegacyManaged
142142 c ConnectionDetails
143143 }
144144
@@ -157,14 +157,14 @@ func TestAPISecretPublisher(t *testing.T) {
157157 reason : "A managed resource with a nil GetWriteConnectionSecretToReference should not publish a secret" ,
158158 args : args {
159159 ctx : context .Background (),
160- mg : & fake.Managed {},
160+ mg : & fake.LegacyManaged {},
161161 },
162162 },
163163 "ApplyError" : {
164164 reason : "An error applying the connection secret should be returned" ,
165165 fields : fields {
166166 secret : resource .ApplyFn (func (_ context.Context , _ client.Object , _ ... resource.ApplyOption ) error { return errBoom }),
167- typer : fake .SchemeWith (& fake.Managed {}),
167+ typer : fake .SchemeWith (& fake.LegacyManaged {}),
168168 },
169169 args : args {
170170 ctx : context .Background (),
@@ -187,7 +187,7 @@ func TestAPISecretPublisher(t *testing.T) {
187187 }
188188 return nil
189189 }),
190- typer : fake .SchemeWith (& fake.Managed {}),
190+ typer : fake .SchemeWith (& fake.LegacyManaged {}),
191191 },
192192 args : args {
193193 ctx : context .Background (),
@@ -210,7 +210,7 @@ func TestAPISecretPublisher(t *testing.T) {
210210 }
211211 return nil
212212 }),
213- typer : fake .SchemeWith (& fake.Managed {}),
213+ typer : fake .SchemeWith (& fake.LegacyManaged {}),
214214 },
215215 args : args {
216216 ctx : context .Background (),
@@ -239,6 +239,125 @@ func TestAPISecretPublisher(t *testing.T) {
239239 }
240240}
241241
242+ func TestAPILocalSecretPublisher (t * testing.T ) {
243+ errBoom := errors .New ("boom" )
244+
245+ mg := & fake.ModernManaged {
246+ LocalConnectionSecretWriterTo : fake.LocalConnectionSecretWriterTo {Ref : & xpv1.LocalSecretReference {
247+ Name : "coolsecret" ,
248+ }},
249+ }
250+
251+ cd := ConnectionDetails {"cool" : {42 }}
252+
253+ type fields struct {
254+ secret resource.Applicator
255+ typer runtime.ObjectTyper
256+ }
257+
258+ type args struct {
259+ ctx context.Context
260+ mg resource.ModernManaged
261+ c ConnectionDetails
262+ }
263+
264+ type want struct {
265+ err error
266+ published bool
267+ }
268+
269+ cases := map [string ]struct {
270+ reason string
271+ fields fields
272+ args args
273+ want want
274+ }{
275+ "ResourceDoesNotPublishSecret" : {
276+ reason : "A managed resource with a nil GetWriteConnectionSecretToReference should not publish a secret" ,
277+ args : args {
278+ ctx : context .Background (),
279+ mg : & fake.ModernManaged {},
280+ },
281+ },
282+ "ApplyError" : {
283+ reason : "An error applying the connection secret should be returned" ,
284+ fields : fields {
285+ secret : resource .ApplyFn (func (_ context.Context , _ client.Object , _ ... resource.ApplyOption ) error { return errBoom }),
286+ typer : fake .SchemeWith (& fake.ModernManaged {}),
287+ },
288+ args : args {
289+ ctx : context .Background (),
290+ mg : mg ,
291+ },
292+ want : want {
293+ err : errors .Wrap (errBoom , errCreateOrUpdateSecret ),
294+ },
295+ },
296+ "AlreadyPublished" : {
297+ reason : "An up to date connection secret should result in no error and not being published" ,
298+ fields : fields {
299+ secret : resource .ApplyFn (func (ctx context.Context , o client.Object , ao ... resource.ApplyOption ) error {
300+ want := resource .LocalConnectionSecretFor (mg , fake .GVK (mg ))
301+ want .Data = cd
302+ for _ , fn := range ao {
303+ if err := fn (ctx , o , want ); err != nil {
304+ return err
305+ }
306+ }
307+ return nil
308+ }),
309+ typer : fake .SchemeWith (& fake.ModernManaged {}),
310+ },
311+ args : args {
312+ ctx : context .Background (),
313+ mg : mg ,
314+ c : cd ,
315+ },
316+ want : want {
317+ published : false ,
318+ err : nil ,
319+ },
320+ },
321+ "Success" : {
322+ reason : "A successful application of the connection secret should result in no error" ,
323+ fields : fields {
324+ secret : resource .ApplyFn (func (_ context.Context , o client.Object , _ ... resource.ApplyOption ) error {
325+ want := resource .LocalConnectionSecretFor (mg , fake .GVK (mg ))
326+ want .Data = cd
327+ if diff := cmp .Diff (want , o ); diff != "" {
328+ t .Errorf ("-want, +got:\n %s" , diff )
329+ }
330+ return nil
331+ }),
332+ typer : fake .SchemeWith (& fake.ModernManaged {}),
333+ },
334+ args : args {
335+ ctx : context .Background (),
336+ mg : mg ,
337+ c : cd ,
338+ },
339+ want : want {
340+ published : true ,
341+ },
342+ },
343+ }
344+
345+ for name , tc := range cases {
346+ t .Run (name , func (t * testing.T ) {
347+ a := & APILocalSecretPublisher {tc .fields .secret , tc .fields .typer }
348+
349+ got , gotErr := a .PublishConnection (tc .args .ctx , tc .args .mg , tc .args .c )
350+ if diff := cmp .Diff (tc .want .err , gotErr , test .EquateErrors ()); diff != "" {
351+ t .Errorf ("\n %s\n Publish(...): -wantErr, +gotErr:\n %s" , tc .reason , diff )
352+ }
353+
354+ if diff := cmp .Diff (tc .want .published , got ); diff != "" {
355+ t .Errorf ("\n %s\n Publish(...): -wantPublished, +gotPublished:\n %s" , tc .reason , diff )
356+ }
357+ })
358+ }
359+ }
360+
242361type mockSimpleReferencer struct {
243362 resource.Managed
244363
@@ -260,7 +379,7 @@ func (r *mockSimpleReferencer) Equal(s *mockSimpleReferencer) bool {
260379func TestResolveReferences (t * testing.T ) {
261380 errBoom := errors .New ("boom" )
262381
263- different := & fake.Managed {}
382+ different := & fake.LegacyManaged {}
264383
265384 type args struct {
266385 ctx context.Context
@@ -277,7 +396,7 @@ func TestResolveReferences(t *testing.T) {
277396 reason : "Should return early without error when the managed resource has no references." ,
278397 args : args {
279398 ctx : context .Background (),
280- mg : & fake.Managed {},
399+ mg : & fake.LegacyManaged {},
281400 },
282401 want : nil ,
283402 },
@@ -289,7 +408,7 @@ func TestResolveReferences(t *testing.T) {
289408 args : args {
290409 ctx : context .Background (),
291410 mg : & mockSimpleReferencer {
292- Managed : & fake.Managed {},
411+ Managed : & fake.LegacyManaged {},
293412 MockResolveReferences : func (context.Context , client.Reader ) error {
294413 return errBoom
295414 },
@@ -305,7 +424,7 @@ func TestResolveReferences(t *testing.T) {
305424 args : args {
306425 ctx : context .Background (),
307426 mg : & mockSimpleReferencer {
308- Managed : & fake.Managed {},
427+ Managed : & fake.LegacyManaged {},
309428 MockResolveReferences : func (context.Context , client.Reader ) error {
310429 return nil
311430 },
@@ -380,8 +499,8 @@ func TestPrepareJSONMerge(t *testing.T) {
380499 "SuccessfulPatch" : {
381500 reason : "Should successfully compute the JSON merge patch document." ,
382501 args : args {
383- existing : & fake.Managed {},
384- resolved : & fake.Managed {
502+ existing : & fake.LegacyManaged {},
503+ resolved : & fake.LegacyManaged {
385504 ObjectMeta : metav1.ObjectMeta {
386505 Name : "resolved" ,
387506 },
@@ -424,7 +543,7 @@ func TestRetryingCriticalAnnotationUpdater(t *testing.T) {
424543 obj .SetLabels (map [string ]string {"getcalled" : "true" })
425544 return nil
426545 }
427- objectReturnedByGet := & fake.Managed {}
546+ objectReturnedByGet := & fake.LegacyManaged {}
428547 setLabels (objectReturnedByGet )
429548
430549 cases := map [string ]struct {
@@ -443,7 +562,7 @@ func TestRetryingCriticalAnnotationUpdater(t *testing.T) {
443562 }, "abc" , errBoom )),
444563 },
445564 args : args {
446- o : & fake.Managed {},
565+ o : & fake.LegacyManaged {},
447566 },
448567 want : want {
449568 err : errors .Wrap (errBoom , errUpdateCriticalAnnotations ),
@@ -457,11 +576,11 @@ func TestRetryingCriticalAnnotationUpdater(t *testing.T) {
457576 MockUpdate : test .NewMockUpdateFn (errBoom ),
458577 },
459578 args : args {
460- o : & fake.Managed {},
579+ o : & fake.LegacyManaged {},
461580 },
462581 want : want {
463582 err : errors .Wrap (errBoom , errUpdateCriticalAnnotations ),
464- o : & fake.Managed {},
583+ o : & fake.LegacyManaged {},
465584 },
466585 },
467586 "SuccessfulGetAfterAConflict" : {
@@ -474,7 +593,7 @@ func TestRetryingCriticalAnnotationUpdater(t *testing.T) {
474593 }, "abc" , errBoom )),
475594 },
476595 args : args {
477- o : & fake.Managed {},
596+ o : & fake.LegacyManaged {},
478597 },
479598 want : want {
480599 err : errors .Wrap (kerrors .NewConflict (schema.GroupResource {
@@ -491,11 +610,11 @@ func TestRetryingCriticalAnnotationUpdater(t *testing.T) {
491610 MockUpdate : test .NewMockUpdateFn (errBoom ),
492611 },
493612 args : args {
494- o : & fake.Managed {},
613+ o : & fake.LegacyManaged {},
495614 },
496615 want : want {
497616 err : errors .Wrap (errBoom , errUpdateCriticalAnnotations ),
498- o : & fake.Managed {},
617+ o : & fake.LegacyManaged {},
499618 },
500619 },
501620 }
0 commit comments