MCPcopy Create free account
hub / github.com/cloudbase/garm / TestWithAnyFilter

Method TestWithAnyFilter

database/watcher/watcher_test.go:172–252  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

170}
171
172func (s *WatcherTestSuite) TestWithAnyFilter() {
173 producer, err := watcher.RegisterProducer(s.ctx, "test-producer")
174 s.Require().NoError(err)
175 s.Require().NotNil(producer)
176
177 consumer, err := watcher.RegisterConsumer(
178 s.ctx, "test-consumer",
179 watcher.WithAny(
180 watcher.WithEntityTypeFilter(common.ControllerEntityType),
181 watcher.WithEntityFilter(params.ForgeEntity{
182 EntityType: params.ForgeEntityTypeRepository,
183 Owner: "test",
184 Name: "test",
185 ID: "test",
186 }),
187 ))
188 s.Require().NoError(err)
189 s.Require().NotNil(consumer)
190 consumeEvents(consumer)
191
192 payload := common.ChangePayload{
193 EntityType: common.ControllerEntityType,
194 Operation: common.UpdateOperation,
195 Payload: "test",
196 }
197 err = producer.Notify(payload)
198 s.Require().NoError(err)
199
200 receivedPayload := waitForPayload(consumer.Watch(), 100*time.Millisecond)
201 s.Require().NotNil(receivedPayload)
202 s.Require().Equal(payload, *receivedPayload)
203
204 payload = common.ChangePayload{
205 EntityType: common.RepositoryEntityType,
206 Operation: common.UpdateOperation,
207 Payload: params.Repository{
208 Owner: "test",
209 Name: "test",
210 ID: "test",
211 },
212 }
213
214 err = producer.Notify(payload)
215 s.Require().NoError(err)
216
217 receivedPayload = waitForPayload(consumer.Watch(), 100*time.Millisecond)
218 s.Require().NotNil(receivedPayload)
219 s.Require().Equal(payload, *receivedPayload)
220
221 // We're not watching for this repo
222 payload = common.ChangePayload{
223 EntityType: common.RepositoryEntityType,
224 Operation: common.UpdateOperation,
225 Payload: params.Repository{
226 Owner: "test",
227 Name: "test",
228 ID: "test2",
229 },

Callers

nothing calls this directly

Calls 9

RegisterProducerFunction · 0.92
RegisterConsumerFunction · 0.92
WithAnyFunction · 0.92
WithEntityTypeFilterFunction · 0.92
WithEntityFilterFunction · 0.92
consumeEventsFunction · 0.85
waitForPayloadFunction · 0.85
NotifyMethod · 0.65
WatchMethod · 0.65

Tested by

no test coverage detected