@@ -35,6 +35,7 @@ import (
3535 "sigs.k8s.io/gateway-api-inference-extension/apix/v1alpha2"
3636 "sigs.k8s.io/gateway-api-inference-extension/pkg/common"
3737 backendmetrics "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/backend/metrics"
38+ "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datalayer"
3839 "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datastore"
3940 poolutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/pool"
4041 utiltest "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/testing"
@@ -143,59 +144,65 @@ func TestInferenceObjectiveReconciler(t *testing.T) {
143144 },
144145 }
145146 for _ , test := range tests {
146- t .Run (test .name , func (t * testing.T ) {
147- // Create a fake client with no InferenceObjective objects.
148- scheme := runtime .NewScheme ()
149- _ = clientgoscheme .AddToScheme (scheme )
150- _ = v1alpha2 .Install (scheme )
151- _ = v1 .Install (scheme )
152- initObjs := []client.Object {}
153- if test .objective != nil {
154- initObjs = append (initObjs , test .objective )
155- }
156- for _ , m := range test .objectivesInAPIServer {
157- initObjs = append (initObjs , m )
158- }
159- fakeClient := fake .NewClientBuilder ().
160- WithScheme (scheme ).
161- WithObjects (initObjs ... ).
162- Build ()
163- pmf := backendmetrics .NewPodMetricsFactory (& backendmetrics.FakePodMetricsClient {}, time .Second )
164- ds := datastore .NewDatastore (t .Context (), pmf , 0 )
165- for _ , m := range test .objectivessInStore {
166- ds .ObjectiveSet (m )
167- }
168- endpointPool := poolutil .InferencePoolToEndpointPool (inferencePool )
169- _ = ds .PoolSet (context .Background (), fakeClient , endpointPool )
170- reconciler := & InferenceObjectiveReconciler {
171- Reader : fakeClient ,
172- Datastore : ds ,
173- PoolGKNN : common.GKNN {
174- NamespacedName : types.NamespacedName {Name : inferencePool .Name , Namespace : inferencePool .Namespace },
175- GroupKind : schema.GroupKind {Group : inferencePool .GroupVersionKind ().Group , Kind : inferencePool .GroupVersionKind ().Kind },
176- },
177- }
178- if test .incomingReq == nil {
179- test .incomingReq = & types.NamespacedName {Name : test .objective .Name , Namespace : test .objective .Namespace }
180- }
147+ period := time .Second
148+ factories := []datalayer.EndpointFactory {
149+ backendmetrics .NewPodMetricsFactory (& backendmetrics.FakePodMetricsClient {}, period ),
150+ datalayer .NewEndpointFactory ([]datalayer.DataSource {& datalayer.FakeDataSource {}}, period ),
151+ }
152+ for _ , epf := range factories {
153+ t .Run (test .name , func (t * testing.T ) {
154+ // Create a fake client with no InferenceObjective objects.
155+ scheme := runtime .NewScheme ()
156+ _ = clientgoscheme .AddToScheme (scheme )
157+ _ = v1alpha2 .Install (scheme )
158+ _ = v1 .Install (scheme )
159+ initObjs := []client.Object {}
160+ if test .objective != nil {
161+ initObjs = append (initObjs , test .objective )
162+ }
163+ for _ , m := range test .objectivesInAPIServer {
164+ initObjs = append (initObjs , m )
165+ }
166+ fakeClient := fake .NewClientBuilder ().
167+ WithScheme (scheme ).
168+ WithObjects (initObjs ... ).
169+ Build ()
170+ ds := datastore .NewDatastore (t .Context (), epf , 0 )
171+ for _ , m := range test .objectivessInStore {
172+ ds .ObjectiveSet (m )
173+ }
174+ endpointPool := poolutil .InferencePoolToEndpointPool (inferencePool )
175+ _ = ds .PoolSet (context .Background (), fakeClient , endpointPool )
176+ reconciler := & InferenceObjectiveReconciler {
177+ Reader : fakeClient ,
178+ Datastore : ds ,
179+ PoolGKNN : common.GKNN {
180+ NamespacedName : types.NamespacedName {Name : inferencePool .Name , Namespace : inferencePool .Namespace },
181+ GroupKind : schema.GroupKind {Group : inferencePool .GroupVersionKind ().Group , Kind : inferencePool .GroupVersionKind ().Kind },
182+ },
183+ }
184+ if test .incomingReq == nil {
185+ test .incomingReq = & types.NamespacedName {Name : test .objective .Name , Namespace : test .objective .Namespace }
186+ }
181187
182- // Call Reconcile.
183- result , err := reconciler .Reconcile (context .Background (), ctrl.Request {NamespacedName : * test .incomingReq })
184- if err != nil {
185- t .Fatalf ("expected no error when resource is not found, got %v" , err )
186- }
188+ // Call Reconcile.
189+ result , err := reconciler .Reconcile (context .Background (), ctrl.Request {NamespacedName : * test .incomingReq })
190+ if err != nil {
191+ t .Fatalf ("expected no error when resource is not found, got %v" , err )
192+ }
187193
188- if diff := cmp .Diff (result , test .wantResult ); diff != "" {
189- t .Errorf ("Unexpected result diff (+got/-want): %s" , diff )
190- }
194+ if diff := cmp .Diff (result , test .wantResult ); diff != "" {
195+ t .Errorf ("Unexpected result diff (+got/-want): %s" , diff )
196+ }
191197
192- if len (test .wantObjectives ) != len (ds .ObjectiveGetAll ()) {
193- t .Errorf ("Unexpected; want: %d, got:%d" , len (test .wantObjectives ), len (ds .ObjectiveGetAll ()))
194- }
195- if diff := diffStore (ds , diffStoreParams {wantPool : endpointPool , wantObjectives : test .wantObjectives }); diff != "" {
196- t .Errorf ("Unexpected diff (+got/-want): %s" , diff )
197- }
198+ if len (test .wantObjectives ) != len (ds .ObjectiveGetAll ()) {
199+ t .Errorf ("Unexpected; want: %d, got:%d" , len (test .wantObjectives ), len (ds .ObjectiveGetAll ()))
200+ }
201+ if diff := diffStore (ds , diffStoreParams {wantPool : endpointPool , wantObjectives : test .wantObjectives }); diff != "" {
202+ t .Errorf ("Unexpected diff (+got/-want): %s" , diff )
203+ }
198204
199- })
205+ })
206+ }
200207 }
201208}
0 commit comments