@@ -21,6 +21,7 @@ import (
21
21
. "github.com/onsi/gomega"
22
22
corev1 "k8s.io/api/core/v1"
23
23
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
24
+ "sigs.k8s.io/controller-runtime/pkg/runtime/inject"
24
25
25
26
"sigs.k8s.io/controller-runtime/pkg/client"
26
27
"sigs.k8s.io/controller-runtime/pkg/event"
@@ -827,6 +828,13 @@ var _ = Describe("Predicate", func() {
827
828
}
828
829
passFuncs := funcs (true )
829
830
failFuncs := funcs (false )
831
+
832
+ var injectFunc inject.Func
833
+ injectFunc = func (i interface {}) error {
834
+ _ , err := inject .InjectorInto (injectFunc , i )
835
+ return err
836
+ }
837
+
830
838
Describe ("When checking an And predicate" , func () {
831
839
It ("should return false when one of its predicates returns false" , func () {
832
840
a := predicate .And (passFuncs , failFuncs )
@@ -842,6 +850,12 @@ var _ = Describe("Predicate", func() {
842
850
Expect (a .Delete (event.DeleteEvent {})).To (BeTrue ())
843
851
Expect (a .Generic (event.GenericEvent {})).To (BeTrue ())
844
852
})
853
+ It ("should inject into its predicates" , func () {
854
+ prct := & injectablePredicate {}
855
+ a := predicate .And (prct )
856
+ Expect (injectFunc (a )).To (Succeed ())
857
+ Expect (prct .injected ).To (BeTrue ())
858
+ })
845
859
})
846
860
Describe ("When checking an Or predicate" , func () {
847
861
It ("should return true when one of its predicates returns true" , func () {
@@ -858,6 +872,12 @@ var _ = Describe("Predicate", func() {
858
872
Expect (o .Delete (event.DeleteEvent {})).To (BeFalse ())
859
873
Expect (o .Generic (event.GenericEvent {})).To (BeFalse ())
860
874
})
875
+ It ("should inject into its predicates" , func () {
876
+ prct := & injectablePredicate {}
877
+ a := predicate .Or (prct )
878
+ Expect (injectFunc (a )).To (Succeed ())
879
+ Expect (prct .injected ).To (BeTrue ())
880
+ })
861
881
})
862
882
})
863
883
@@ -942,3 +962,13 @@ var _ = Describe("Predicate", func() {
942
962
})
943
963
})
944
964
})
965
+
966
+ type injectablePredicate struct {
967
+ injected bool
968
+ predicate.Funcs
969
+ }
970
+
971
+ func (i * injectablePredicate ) InjectFunc (f inject.Func ) error {
972
+ i .injected = true
973
+ return nil
974
+ }
0 commit comments