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

Function TestFinishSeries

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

Source from the content-addressed store, hash-verified

209}
210
211func TestFinishSeries(t *testing.T) {
212 hostname, _ := os.Hostname()
213 testPod := &v1.Pod{
214 ObjectMeta: metav1.ObjectMeta{
215 SelfLink: "/api/version/pods/foo",
216 Name: "foo",
217 Namespace: "baz",
218 UID: "bar",
219 },
220 }
221 regarding, err := ref.GetPartialReference(scheme.Scheme, testPod, ".spec.containers[1]")
222 if err != nil {
223 t.Fatal(err)
224 }
225 related, err := ref.GetPartialReference(scheme.Scheme, testPod, ".spec.containers[0]")
226 if err != nil {
227 t.Fatal(err)
228 }
229 LastObservedTime := metav1.MicroTime{Time: time.Now().Add(-9 * time.Minute)}
230
231 createEvent := make(chan *v1beta1.Event, 10)
232 updateEvent := make(chan *v1beta1.Event, 10)
233 patchEvent := make(chan *v1beta1.Event, 10)
234 testEvents := testEventSeriesSink{
235 OnCreate: func(event *v1beta1.Event) (*v1beta1.Event, error) {
236 createEvent <- event
237 return event, nil
238 },
239 OnUpdate: func(event *v1beta1.Event) (*v1beta1.Event, error) {
240 updateEvent <- event
241 return event, nil
242 },
243 OnPatch: func(event *v1beta1.Event, patch []byte) (*v1beta1.Event, error) {
244 // event we receive is already patched, usually the sink uses it
245 // only to retrieve the name and namespace, here we'll use it directly
246 patchEvent <- event
247 return event, nil
248 },
249 }
250 cache := map[eventKey]*v1beta1.Event{}
251 eventBroadcaster := newBroadcaster(&testEvents, 0, cache).(*eventBroadcasterImpl)
252 recorder := eventBroadcaster.NewRecorder(scheme.Scheme, "k8s.io/kube-foo").(*recorderImpl)
253 cachedEvent := recorder.makeEvent(regarding, related, metav1.MicroTime{time.Now()}, v1.EventTypeNormal, "test", "some verbose message: 1", "eventTest", "eventTest-"+hostname, "started")
254 nonFinishedEvent := cachedEvent.DeepCopy()
255 nonFinishedEvent.ReportingController = "nonFinished-controller"
256 cachedEvent.Series = &v1beta1.EventSeries{
257 Count: 10,
258 LastObservedTime: LastObservedTime,
259 }
260 cache[getKey(cachedEvent)] = cachedEvent
261 cache[getKey(nonFinishedEvent)] = nonFinishedEvent
262 eventBroadcaster.finishSeries()
263 select {
264 case actualEvent := <-patchEvent:
265 t.Logf("validating event affected by patch request")
266 eventBroadcaster.mu.Lock()
267 defer eventBroadcaster.mu.Unlock()
268 if len(cache) != 1 {

Callers

nothing calls this directly

Calls 10

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

Tested by

no test coverage detected