code: func NewSimpleClientset(objects ...runtime.Object) *Clientset {
  	o := testing.NewObjectTracker(scheme, codecs.UniversalDecoder())
  	for _, obj := range objects {
  		if err := o.Add(obj); err != nil {
  			panic(err)
  		}
  	}
  
  	cs := &Clientset{}
  	cs.discovery = &fakediscovery.FakeDiscovery{Fake: &cs.Fake}
  	cs.AddReactor("*", "*", testing.ObjectReaction(o))
  	cs.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) {
  		gvr := action.GetResource()
  		ns := action.GetNamespace()
  		watch, err := o.Watch(gvr, ns)
  		if err != nil {
  			return false, nil, err
  		}
  		return true, watch, nil
  	})
  
  	return cs
  }
docs: // 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.