// 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 }
// NewSimpleClientset returns a clientset that will respond with the provided objects. // It's backed by a very simple object tracker that processes creates, updates and deletions as-is, // without applying any validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. func NewSimpleClientset(objects ...runtime.Object) *Clientset { o := core.NewObjectTracker(api.Scheme, api.Codecs.UniversalDecoder()) for _, obj := range objects { if err := o.Add(obj); err != nil { panic(err) } } fakePtr := core.Fake{} fakePtr.AddReactor("*", "*", core.ObjectReaction(o, api.Registry.RESTMapper())) fakePtr.AddWatchReactor("*", core.DefaultWatchReactor(watch.NewFake(), nil)) return &Clientset{fakePtr} }
func RegisterWatch(resource string, client *core.Fake) *watch.FakeWatcher { watcher := watch.NewFake() client.AddWatchReactor(resource, func(action core.Action) (bool, watch.Interface, error) { return true, watcher, nil }) return watcher }