// RegisterFakeWatch adds a new fake watcher for the specified resource in the given fake client. // All subsequent requests for a watch on the client will result in returning this fake watcher. func RegisterFakeWatch(resource string, client *core.Fake) *WatcherDispatcher { dispatcher := &WatcherDispatcher{ watchers: make([]*watch.RaceFreeFakeWatcher, 0), eventsSoFar: make([]*watch.Event, 0), orderExecution: make(chan func(), 100), stopChan: make(chan struct{}), } go func() { for { select { case fun := <-dispatcher.orderExecution: fun() case <-dispatcher.stopChan: return } } }() client.AddWatchReactor(resource, func(action core.Action) (bool, watch.Interface, error) { watcher := watch.NewRaceFreeFake() dispatcher.register(watcher) return true, watcher, nil }) return dispatcher }
// RegisterFakeWatch adds a new fake watcher for the specified resource in the given fake client. // All subsequent requests for a watch on the client will result in returning this fake watcher. func RegisterFakeWatch(resource string, client *core.Fake) *WatcherDispatcher { dispatcher := &WatcherDispatcher{ watchers: make([]*watch.RaceFreeFakeWatcher, 0), eventsSoFar: make([]*watch.Event, 0), } client.AddWatchReactor(resource, func(action core.Action) (bool, watch.Interface, error) { watcher := watch.NewRaceFreeFake() dispatcher.register(watcher) return true, watcher, nil }) return dispatcher }