@@ -27,10 +27,8 @@ import (
2727// Consider testing getPackageDeps instead to cover more.
2828func TestGetDependencyRef (t * testing.T ) {
2929 type args struct {
30- pkgType v1beta1.PackageType
31- pkg string
32- client client.Client
33- lock * v1beta1.Lock
30+ d v1beta1.Dependency
31+ pkgs []v1beta1.LockPackage
3432 }
3533 type want struct {
3634 ref * v1.ObjectReference
@@ -39,23 +37,26 @@ func TestGetDependencyRef(t *testing.T) {
3937 cases := map [string ]struct {
4038 reason string
4139
42- args args
43- want want
40+ client client.Client
41+ args args
42+ want want
4443 }{
4544 "PkgNotInLock" : {
4645 reason : "Should return the provider ref for a provider dependency, even when the dep is not found." ,
46+ client : & test.MockClient {},
4747 args : args {
48- pkgType : v1beta1 .ProviderPackageType ,
49- pkg : "example.com/provider-1:v1.0.0" ,
50- client : & test.MockClient {},
51- lock : buildLock ("lock-1" , withLockPackages ([]v1beta1.LockPackage {
48+ d : v1beta1.Dependency {
49+ Type : ptr .To (v1beta1 .ProviderPackageType ),
50+ Package : "example.com/provider-1:v1.0.0" ,
51+ },
52+ pkgs : []v1beta1.LockPackage {
5253 * buildLockPkg ("configuration-1" ,
5354 withDependencies (newDependency ("provider-2" ), newDependency ("provider-1" )),
5455 withSource ("example.com/configuration-1:v1.0.0" )),
5556 * buildLockPkg ("function-1" ,
5657 withDependencies (newDependency ("provider-3" ), newDependency ("provider-4" )),
5758 withSource ("example.com/function-1:v1.0.0" )),
58- }... )) ,
59+ },
5960 },
6061 want : want {
6162 ref : & v1.ObjectReference {
@@ -67,36 +68,33 @@ func TestGetDependencyRef(t *testing.T) {
6768 },
6869 "PKGInLock" : {
6970 reason : "Should return the provider ref for a provider dependency." ,
71+ client : & test.MockClient {
72+ MockGet : test .NewMockGetFn (nil , func (obj client.Object ) error {
73+ obj .SetName ("provider-1" )
74+ obj .SetOwnerReferences ([]xpv1.OwnerReference {
75+ {
76+ APIVersion : "pkg.crossplane.io/v1" ,
77+ Kind : "Provider" ,
78+ Name : "my-awesome-provider" ,
79+ Controller : ptr .To (true ),
80+ },
81+ })
82+ return nil
83+ }),
84+ },
7085 args : args {
71- pkgType : v1beta1 .ProviderPackageType ,
72- pkg : "example.com/provider-1:v1.0.0" ,
73- client : & test.MockClient {
74- MockGet : test .NewMockGetFn (nil , func (obj client.Object ) error {
75- pr , ok := obj .(* xpkgv1.ProviderRevision )
76- if ok {
77- pr .SetName ("provider-1" )
78- pr .SetOwnerReferences ([]xpv1.OwnerReference {
79- {
80- APIVersion : "pkg.crossplane.io/v1" ,
81- Kind : "Provider" ,
82- Name : "my-awesome-provider" ,
83- Controller : ptr .To (true ),
84- },
85- })
86- return nil
87- }
88-
89- return errors .New ("boom" )
90- }),
86+ d : v1beta1.Dependency {
87+ Type : ptr .To (v1beta1 .ProviderPackageType ),
88+ Package : "example.com/provider-1:v1.0.0" ,
9189 },
92- lock : buildLock ( "lock-1" , withLockPackages ( []v1beta1.LockPackage {
90+ pkgs : []v1beta1.LockPackage {
9391 * buildLockPkg ("provider-3" ,
9492 withDependencies (newDependency ("provider-2" ), newDependency ("provider-1" )),
9593 withSource ("example.com/provider-1:v1.0.0" )),
9694 * buildLockPkg ("function-1" ,
9795 withDependencies (newDependency ("provider-3" ), newDependency ("provider-4" )),
9896 withSource ("example.com/function-1:v1.0.0" )),
99- }... )) ,
97+ },
10098 },
10199 want : want {
102100 ref : & v1.ObjectReference {
@@ -108,55 +106,60 @@ func TestGetDependencyRef(t *testing.T) {
108106 },
109107 "PKGTypeWrong" : {
110108 reason : "Should return an error for a provider dependency when the package type is wrong." ,
109+ client : test .NewMockClient (),
111110 args : args {
112- pkgType : v1beta1 .PackageType ( "wrong" ),
113- pkg : "example.com/provider-1:v1.0.0" ,
114- client : test . NewMockClient () ,
115- lock : buildLock ( "lock-1" ) ,
111+ d : v1beta1.Dependency {
112+ Type : ptr . To ( v1beta1 . PackageType ( "wrong" )) ,
113+ Package : "example.com/provider-1:v1.0.0" ,
114+ } ,
116115 },
117116 want : want {
118117 err : cmpopts .AnyError ,
119118 },
120119 },
121120 "ErrorGettingPKGRevision" : {
122121 reason : "Should return an error for a provider dependency when the package revision cannot be retrieved." ,
122+ client : & test.MockClient {
123+ MockGet : test .NewMockGetFn (errors .New ("boom" )),
124+ },
123125 args : args {
124- pkgType : v1beta1 .ConfigurationPackageType ,
125- pkg : "example.com/configuration-1:v1.0.0" ,
126- client : & test.MockClient {
127- MockGet : test .NewMockGetFn (errors .New ("boom" )),
126+ d : v1beta1.Dependency {
127+ Type : ptr .To (v1beta1 .ConfigurationPackageType ),
128+ Package : "example.com/configuration-1:v1.0.0" ,
128129 },
129- lock : buildLock ( "lock-1" , withLockPackages ( []v1beta1.LockPackage {
130+ pkgs : []v1beta1.LockPackage {
130131 * buildLockPkg ("configuration-1" ,
131132 withDependencies (newDependency ("provider-2" ), newDependency ("provider-1" )),
132133 withSource ("example.com/configuration-1:v1.0.0" )),
133134 * buildLockPkg ("function-1" ,
134135 withDependencies (newDependency ("provider-3" ), newDependency ("provider-4" )),
135136 withSource ("example.com/function-1:v1.0.0" )),
136- }... )) ,
137+ },
137138 },
138139 want : want {
139140 err : cmpopts .AnyError ,
140141 },
141142 },
142143 "PKGRevisionNotFound" : {
143144 reason : "Should return no error for a provider dependency when the package revision is not found." ,
145+ client : & test.MockClient {
146+ MockGet : test .NewMockGetFn (nil , func (_ client.Object ) error {
147+ return kerrors .NewNotFound (schema.GroupResource {}, "whatever" )
148+ }),
149+ },
144150 args : args {
145- pkgType : v1beta1 .FunctionPackageType ,
146- pkg : "example.com/function-1:v1.0.0" ,
147- client : & test.MockClient {
148- MockGet : test .NewMockGetFn (nil , func (_ client.Object ) error {
149- return kerrors .NewNotFound (schema.GroupResource {}, "whatever" )
150- }),
151+ d : v1beta1.Dependency {
152+ Type : ptr .To (v1beta1 .FunctionPackageType ),
153+ Package : "example.com/function-1:v1.0.0" ,
151154 },
152- lock : buildLock ( "lock-1" , withLockPackages ( []v1beta1.LockPackage {
155+ pkgs : []v1beta1.LockPackage {
153156 * buildLockPkg ("configuration-1" ,
154157 withDependencies (newDependency ("provider-2" ), newDependency ("provider-1" )),
155158 withSource ("example.com/configuration-1:v1.0.0" )),
156159 * buildLockPkg ("function-1" ,
157160 withDependencies (newDependency ("provider-3" ), newDependency ("provider-4" )),
158161 withSource ("example.com/function-1:v1.0.0" )),
159- }... )) ,
162+ },
160163 },
161164 want : want {
162165 err : nil ,
@@ -171,9 +174,9 @@ func TestGetDependencyRef(t *testing.T) {
171174 for name , tc := range cases {
172175 t .Run (name , func (t * testing.T ) {
173176 kc := & Client {
174- client : tc .args . client ,
177+ client : tc .client ,
175178 }
176- got , err := kc .getDependencyRef (context .Background (), tc .args .lock , tc .args .pkgType , tc . args . pkg )
179+ got , err := kc .getDependencyRef (context .Background (), tc .args .d , tc .args .pkgs )
177180 if diff := cmp .Diff (tc .want .err , err , cmpopts .EquateErrors ()); diff != "" {
178181 t .Errorf ("getDependencyRef(...) error = %v, wantErr %v" , err , tc .want .err )
179182 }
@@ -274,9 +277,9 @@ func TestGetPackageDeps(t *testing.T) {
274277 args : args {
275278 client : & test.MockClient {
276279 MockGet : test .NewMockGetFn (nil , func (obj client.Object ) error {
277- pr , ok := obj .(* xpkgv1. ProviderRevision )
278- if ok {
279- pr .SetOwnerReferences ([]xpv1.OwnerReference {
280+ u , ok := obj .(* unstructured. Unstructured )
281+ if ok && u . GetKind () == "ProviderRevision" {
282+ u .SetOwnerReferences ([]xpv1.OwnerReference {
280283 {
281284 APIVersion : xpkgv1 .ProviderGroupVersionKind .GroupVersion ().String (),
282285 Kind : xpkgv1 .ProviderKind ,
0 commit comments