MCPcopy
hub / github.com/kubernetes/client-go / TestRefreshExistingEventSeries

Function TestRefreshExistingEventSeries

tools/events/eventseries_test.go:283–349  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

281}
282
283func TestRefreshExistingEventSeries(t *testing.T) {
284 hostname, _ := os.Hostname()
285 testPod := &v1.Pod{
286 ObjectMeta: metav1.ObjectMeta{
287 SelfLink: "/api/version/pods/foo",
288 Name: "foo",
289 Namespace: "baz",
290 UID: "bar",
291 },
292 }
293 regarding, err := ref.GetPartialReference(scheme.Scheme, testPod, ".spec.containers[1]")
294 if err != nil {
295 t.Fatal(err)
296 }
297 related, err := ref.GetPartialReference(scheme.Scheme, testPod, ".spec.containers[0]")
298 if err != nil {
299 t.Fatal(err)
300 }
301 LastObservedTime := metav1.MicroTime{Time: time.Now().Add(-9 * time.Minute)}
302
303 createEvent := make(chan *v1beta1.Event, 10)
304 updateEvent := make(chan *v1beta1.Event, 10)
305 patchEvent := make(chan *v1beta1.Event, 10)
306 testEvents := testEventSeriesSink{
307 OnCreate: func(event *v1beta1.Event) (*v1beta1.Event, error) {
308 createEvent <- event
309 return event, nil
310 },
311 OnUpdate: func(event *v1beta1.Event) (*v1beta1.Event, error) {
312 updateEvent <- event
313 return event, nil
314 },
315 OnPatch: func(event *v1beta1.Event, patch []byte) (*v1beta1.Event, error) {
316 // event we receive is already patched, usually the sink uses it
317 //only to retrieve the name and namespace, here we'll use it directly.
318 patchEvent <- event
319 return event, nil
320 },
321 }
322 cache := map[eventKey]*v1beta1.Event{}
323 eventBroadcaster := newBroadcaster(&testEvents, 0, cache).(*eventBroadcasterImpl)
324 recorder := eventBroadcaster.NewRecorder(scheme.Scheme, "k8s.io/kube-foo").(*recorderImpl)
325 cachedEvent := recorder.makeEvent(regarding, related, metav1.MicroTime{time.Now()}, v1.EventTypeNormal, "test", "some verbose message: 1", "eventTest", "eventTest-"+hostname, "started")
326 cachedEvent.Series = &v1beta1.EventSeries{
327 Count: 10,
328 LastObservedTime: LastObservedTime,
329 }
330 cacheKey := getKey(cachedEvent)
331 cache[cacheKey] = cachedEvent
332
333 eventBroadcaster.refreshExistingEventSeries()
334 select {
335 case <-patchEvent:
336 t.Logf("validating event affected by patch request")
337 eventBroadcaster.mu.Lock()
338 defer eventBroadcaster.mu.Unlock()
339 if len(cache) != 1 {
340 t.Errorf("cache should be with same size, but instead got a size of %v", len(cache))

Callers

nothing calls this directly

Calls 9

newBroadcasterFunction · 0.85
getKeyFunction · 0.85
AddMethod · 0.65
NowMethod · 0.65
NewRecorderMethod · 0.65
LogfMethod · 0.65
ErrorfMethod · 0.65
makeEventMethod · 0.45

Tested by

no test coverage detected