func (f *FakeWatcher) Error(errValue runtime.Object) {
	f.result <- Event{Error, errValue}
}
Error sends an Error event.
package watch
import (
	"fmt"
	"sync"
	"k8s.io/klog"
	"k8s.io/apimachinery/pkg/runtime"
)
type Interface interface {
	Stop()
	ResultChan() <-chan Event
}
type EventType string
const (
	Added    EventType = "ADDED"
	Modified EventType = "MODIFIED"
	Deleted  EventType = "DELETED"
	Bookmark EventType = "BOOKMARK"
	Error    EventType = "ERROR"
	DefaultChanSize int32 = 100
)
type Event struct {
	Type EventType
	Object runtime.Object
}
type emptyWatch chan Event
func NewEmptyWatch() Interface {
	ch := make(chan Event)
	close(ch)
	return emptyWatch(ch)
}
func (w emptyWatch) Stop() {
}
func (w emptyWatch) ResultChan() <-chan Event {
	return chan Event(w)
}
type FakeWatcher struct {
	result  chan Event
	Stopped bool
	sync.Mutex
}
func NewFake() *FakeWatcher {
	return &FakeWatcher{
		result: make(chan Event),
	}
}
func NewFakeWithChanSize(size int, blocking bool) *FakeWatcher {
	return &FakeWatcher{
		result: make(chan Event, size),
	}
}
func (f *FakeWatcher) Stop() {
	f.Lock()
	defer f.Unlock()
	if !f.Stopped {
		klog.V(4).Infof("Stopping fake watcher.")
		close(f.result)
		f.Stopped = true
	}
}
func (f *FakeWatcher) IsStopped() bool {
	f.Lock()
	defer f.Unlock()
	return f.Stopped
}
func (f *FakeWatcher) Reset() {
	f.Lock()
	defer f.Unlock()
	f.Stopped = false
	f.result = make(chan Event)
}
func (f *FakeWatcher) ResultChan() <-chan Event {
	return f.result
}
func (f *FakeWatcher) Add(obj runtime.Object) {
	f.result <- Event{Added, obj}
}
func (f *FakeWatcher) Modify(obj runtime.Object) {
	f.result <- Event{Modified, obj}
}
func (f *FakeWatcher) Delete(lastValue runtime.Object) {
	f.result <- Event{Deleted, lastValue}
}