@@ -11,14 +11,25 @@ import (
1111 . "github.com/onsi/gomega"
1212 "github.com/operator-framework/deppy/pkg/deppy"
1313 "github.com/operator-framework/deppy/pkg/deppy/input"
14+ "github.com/operator-framework/operator-controller/api/v1alpha1"
1415 operatorsv1alpha1 "github.com/operator-framework/operator-controller/api/v1alpha1"
1516 "github.com/operator-framework/operator-controller/internal/resolution/variable_sources/bundles_and_dependencies"
1617 "github.com/operator-framework/operator-controller/internal/resolution/variable_sources/crd_constraints"
1718 "github.com/operator-framework/operator-controller/internal/resolution/variable_sources/olm"
1819 "github.com/operator-framework/operator-controller/internal/resolution/variable_sources/required_package"
1920 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
21+ "k8s.io/apimachinery/pkg/runtime"
22+ utilruntime "k8s.io/apimachinery/pkg/util/runtime"
23+ "sigs.k8s.io/controller-runtime/pkg/client"
24+ "sigs.k8s.io/controller-runtime/pkg/client/fake"
2025)
2126
27+ func FakeClient (objects ... client.Object ) client.Client {
28+ scheme := runtime .NewScheme ()
29+ utilruntime .Must (v1alpha1 .AddToScheme (scheme ))
30+ return fake .NewClientBuilder ().WithScheme (scheme ).WithObjects (objects ... ).Build ()
31+ }
32+
2233func TestGlobalConstraints (t * testing.T ) {
2334 RegisterFailHandler (Fail )
2435 RunSpecs (t , "OLMVariableSource Suite" )
@@ -59,7 +70,7 @@ func withVersionRange(versionRange string) opOption {
5970 }
6071}
6172
62- func operator (name string , opts ... opOption ) operatorsv1alpha1.Operator {
73+ func operator (name string , opts ... opOption ) * operatorsv1alpha1.Operator {
6374 op := operatorsv1alpha1.Operator {
6475 ObjectMeta : metav1.ObjectMeta {
6576 Name : name ,
@@ -73,7 +84,7 @@ func operator(name string, opts ...opOption) operatorsv1alpha1.Operator {
7384 Fail (err .Error ())
7485 }
7586 }
76- return op
87+ return & op
7788}
7889
7990var _ = Describe ("OLMVariableSource" , func () {
@@ -84,20 +95,30 @@ var _ = Describe("OLMVariableSource", func() {
8495 })
8596
8697 It ("should produce RequiredPackage variables" , func () {
87- olmVariableSource := olm .NewOLMVariableSource (operator ("prometheus" ), operator ("packageA" ))
98+ cl := FakeClient (operator ("prometheus" ), operator ("packageA" ))
99+
100+ olmVariableSource := olm .NewOLMVariableSource (cl )
88101 variables , err := olmVariableSource .GetVariables (context .Background (), testEntitySource )
89102 Expect (err ).ToNot (HaveOccurred ())
90103
91104 packageRequiredVariables := filterVariables [* required_package.RequiredPackageVariable ](variables )
92105 Expect (packageRequiredVariables ).To (HaveLen (2 ))
93- Expect (packageRequiredVariables [0 ].Identifier ()).To (Equal (deppy .IdentifierFromString ("required package prometheus" )))
94- Expect (packageRequiredVariables [0 ].BundleEntities ()).To (HaveLen (2 ))
95- Expect (packageRequiredVariables [1 ].Identifier ()).To (Equal (deppy .IdentifierFromString ("required package packageA" )))
96- Expect (packageRequiredVariables [1 ].BundleEntities ()).To (HaveLen (1 ))
106+ Expect (packageRequiredVariables ).To (WithTransform (func (bvars []* required_package.RequiredPackageVariable ) map [deppy.Identifier ]int {
107+ out := map [deppy.Identifier ]int {}
108+ for _ , variable := range bvars {
109+ out [variable .Identifier ()] = len (variable .BundleEntities ())
110+ }
111+ return out
112+ }, Equal (map [deppy.Identifier ]int {
113+ deppy .IdentifierFromString ("required package prometheus" ): 2 ,
114+ deppy .IdentifierFromString ("required package packageA" ): 1 ,
115+ })))
97116 })
98117
99118 It ("should produce BundleVariables variables" , func () {
100- olmVariableSource := olm .NewOLMVariableSource (operator ("prometheus" ), operator ("packageA" ))
119+ cl := FakeClient (operator ("prometheus" ), operator ("packageA" ))
120+
121+ olmVariableSource := olm .NewOLMVariableSource (cl )
101122 variables , err := olmVariableSource .GetVariables (context .Background (), testEntitySource )
102123 Expect (err ).ToNot (HaveOccurred ())
103124
@@ -109,15 +130,17 @@ var _ = Describe("OLMVariableSource", func() {
109130 out = append (out , variable .BundleEntity ().Entity )
110131 }
111132 return out
112- }, Equal ([]* input.Entity {
133+ }, ConsistOf ([]* input.Entity {
113134 entityFromCache ("operatorhub/prometheus/0.47.0" ),
114135 entityFromCache ("operatorhub/prometheus/0.37.0" ),
115136 entityFromCache ("operatorhub/packageA/2.0.0" ),
116137 })))
117138 })
118139
119140 It ("should produce version filtered BundleVariables variables" , func () {
120- olmVariableSource := olm .NewOLMVariableSource (operator ("prometheus" , withVersionRange (">0.40.0" )), operator ("packageA" ))
141+ cl := FakeClient (operator ("prometheus" , withVersionRange (">0.40.0" )), operator ("packageA" ))
142+
143+ olmVariableSource := olm .NewOLMVariableSource (cl )
121144 variables , err := olmVariableSource .GetVariables (context .Background (), testEntitySource )
122145 Expect (err ).ToNot (HaveOccurred ())
123146
@@ -129,7 +152,7 @@ var _ = Describe("OLMVariableSource", func() {
129152 out = append (out , variable .BundleEntity ().Entity )
130153 }
131154 return out
132- }, Equal ([]* input.Entity {
155+ }, ConsistOf ([]* input.Entity {
133156 entityFromCache ("operatorhub/prometheus/0.47.0" ),
134157 // filtered out
135158 // entityFromCache("operatorhub/prometheus/0.37.0"),
@@ -138,7 +161,9 @@ var _ = Describe("OLMVariableSource", func() {
138161 })
139162
140163 It ("should produce GlobalConstraints variables" , func () {
141- olmVariableSource := olm .NewOLMVariableSource (operator ("prometheus" ), operator ("packageA" ))
164+ cl := FakeClient (operator ("prometheus" ), operator ("packageA" ))
165+
166+ olmVariableSource := olm .NewOLMVariableSource (cl )
142167 variables , err := olmVariableSource .GetVariables (context .Background (), testEntitySource )
143168 Expect (err ).ToNot (HaveOccurred ())
144169
@@ -166,7 +191,9 @@ var _ = Describe("OLMVariableSource", func() {
166191 })
167192
168193 It ("should return an errors when they occur" , func () {
169- olmVariableSource := olm .NewOLMVariableSource (operator ("prometheus" ), operator ("packageA" ))
194+ cl := FakeClient (operator ("prometheus" ), operator ("packageA" ))
195+
196+ olmVariableSource := olm .NewOLMVariableSource (cl )
170197 _ , err := olmVariableSource .GetVariables (context .Background (), FailEntitySource {})
171198 Expect (err ).To (HaveOccurred ())
172199 })
0 commit comments