@@ -20,6 +20,7 @@ import (
20
20
"testing"
21
21
22
22
"github.com/stretchr/testify/assert"
23
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23
24
eventing "knative.dev/eventing/pkg/apis/eventing/v1"
24
25
brokerinformer "knative.dev/eventing/pkg/client/injection/informers/eventing/v1/broker"
25
26
"knative.dev/pkg/configmap"
@@ -34,6 +35,7 @@ import (
34
35
_ "knative.dev/pkg/client/injection/kube/informers/core/v1/secret/fake"
35
36
36
37
"knative.dev/eventing-kafka-broker/control-plane/pkg/config"
38
+ "knative.dev/eventing-kafka-broker/control-plane/pkg/reconciler/kafka"
37
39
)
38
40
39
41
func TestNewController (t * testing.T ) {
@@ -48,11 +50,124 @@ func TestNewController(t *testing.T) {
48
50
func TestFilterTriggers (t * testing.T ) {
49
51
ctx , _ := reconcilertesting .SetupFakeContext (t )
50
52
51
- pass := filterTriggers (brokerinformer .Get (ctx ).Lister ())(& eventing.Trigger {
52
- Spec : eventing.TriggerSpec {
53
- Broker : "not-exists" ,
53
+ tt := []struct {
54
+ name string
55
+ trigger interface {}
56
+ pass bool
57
+ brokers []* eventing.Broker
58
+ }{
59
+ {
60
+ name : "unknown type" ,
61
+ trigger : & eventing.Broker {},
62
+ pass : false ,
54
63
},
55
- })
64
+ {
65
+ name : "non existing broker" ,
66
+ trigger : & eventing.Trigger {
67
+ Spec : eventing.TriggerSpec {
68
+ Broker : "not-exists" ,
69
+ },
70
+ },
71
+ pass : false ,
72
+ },
73
+ {
74
+ name : "non existing broker and trigger with kafka broker finalizer" ,
75
+ trigger : & eventing.Trigger {
76
+ ObjectMeta : metav1.ObjectMeta {
77
+ Finalizers : []string {FinalizerName },
78
+ },
79
+ Spec : eventing.TriggerSpec {
80
+ Broker : "not-exists" ,
81
+ },
82
+ },
83
+ pass : true ,
84
+ },
85
+ {
86
+ name : "exiting kafka broker" ,
87
+ trigger : & eventing.Trigger {
88
+ ObjectMeta : metav1.ObjectMeta {
89
+ Namespace : "ns" ,
90
+ Name : "tr" ,
91
+ Finalizers : []string {FinalizerName },
92
+ },
93
+ Spec : eventing.TriggerSpec {
94
+ Broker : "br" ,
95
+ },
96
+ },
97
+ brokers : []* eventing.Broker {
98
+ {
99
+ ObjectMeta : metav1.ObjectMeta {
100
+ Namespace : "ns" ,
101
+ Name : "br" ,
102
+ Annotations : map [string ]string {
103
+ eventing .BrokerClassAnnotationKey : kafka .BrokerClass ,
104
+ },
105
+ },
106
+ },
107
+ },
108
+ pass : true ,
109
+ },
110
+ {
111
+ name : "exiting non kafka broker" ,
112
+ trigger : & eventing.Trigger {
113
+ ObjectMeta : metav1.ObjectMeta {
114
+ Namespace : "ns" ,
115
+ Name : "tr" ,
116
+ },
117
+ Spec : eventing.TriggerSpec {
118
+ Broker : "br" ,
119
+ },
120
+ },
121
+ brokers : []* eventing.Broker {
122
+ {
123
+ ObjectMeta : metav1.ObjectMeta {
124
+ Namespace : "ns" ,
125
+ Name : "br" ,
126
+ Annotations : map [string ]string {
127
+ eventing .BrokerClassAnnotationKey : kafka .BrokerClass + "-boh" ,
128
+ },
129
+ },
130
+ },
131
+ },
132
+ pass : false ,
133
+ },
134
+ {
135
+ name : "exiting non kafka broker - trigger with kafka broker finalizer" ,
136
+ trigger : & eventing.Trigger {
137
+ ObjectMeta : metav1.ObjectMeta {
138
+ Namespace : "ns" ,
139
+ Name : "tr" ,
140
+ Finalizers : []string {FinalizerName },
141
+ },
142
+ Spec : eventing.TriggerSpec {
143
+ Broker : "br" ,
144
+ },
145
+ },
146
+ brokers : []* eventing.Broker {
147
+ {
148
+ ObjectMeta : metav1.ObjectMeta {
149
+ Namespace : "ns" ,
150
+ Name : "br" ,
151
+ Annotations : map [string ]string {
152
+ eventing .BrokerClassAnnotationKey : kafka .BrokerClass + "-boh" ,
153
+ },
154
+ },
155
+ },
156
+ },
157
+ pass : true ,
158
+ },
159
+ }
56
160
57
- assert .False (t , pass )
161
+ for _ , tc := range tt {
162
+ tc := tc
163
+ t .Run (tc .name , func (t * testing.T ) {
164
+ brokerInformer := brokerinformer .Get (ctx )
165
+ for _ , obj := range tc .brokers {
166
+ _ = brokerInformer .Informer ().GetStore ().Add (obj )
167
+ }
168
+ filter := filterTriggers (brokerInformer .Lister ())
169
+ pass := filter (tc .trigger )
170
+ assert .Equal (t , tc .pass , pass )
171
+ })
172
+ }
58
173
}
0 commit comments