code: func (f *FakeControllerSource) List(options api.ListOptions) (runtime.Object, error) {
  	f.lock.RLock()
  	defer f.lock.RUnlock()
  	list := make([]runtime.Object, 0, len(f.items))
  	for _, obj := range f.items {
  		// Must make a copy to allow clients to modify the object.
  		// Otherwise, if they make a change and write it back, they
  		// will inadvertently change our canonical copy (in
  		// addition to racing with other clients).
  		objCopy, err := api.Scheme.DeepCopy(obj)
  		if err != nil {
  			return nil, err
  		}
  		list = append(list, objCopy.(runtime.Object))
  	}
  	listObj := &api.List{}
  	if err := meta.SetList(listObj, list); err != nil {
  		return nil, err
  	}
  	objMeta, err := api.ListMetaFor(listObj)
  	if err != nil {
  		return nil, err
  	}
  	resourceVersion := len(f.changes)
  	objMeta.ResourceVersion = strconv.Itoa(resourceVersion)
  	return listObj, nil
  }
docs: // List returns a list object, with its resource version set.