...

Package controllertest

import "sigs.k8s.io/controller-runtime/pkg/controller/controllertest"
Overview
Index

Overview ▾

Package controllertest contains fake informers for testing controllers When in doubt, it's almost always better to test against a real API server using envtest.Environment.

Index ▾

type ErrorType
    func (ErrorType) DeepCopyObject() runtime.Object
    func (ErrorType) GetObjectKind() schema.ObjectKind
type FakeInformer
    func (f *FakeInformer) Add(obj metav1.Object)
    func (f *FakeInformer) AddEventHandler(handler cache.ResourceEventHandler) (cache.ResourceEventHandlerRegistration, error)
    func (f *FakeInformer) AddEventHandlerWithResyncPeriod(handler cache.ResourceEventHandler, resyncPeriod time.Duration) (cache.ResourceEventHandlerRegistration, error)
    func (f *FakeInformer) AddIndexers(indexers cache.Indexers) error
    func (f *FakeInformer) Delete(obj metav1.Object)
    func (f *FakeInformer) GetController() cache.Controller
    func (f *FakeInformer) GetIndexer() cache.Indexer
    func (f *FakeInformer) GetStore() cache.Store
    func (f *FakeInformer) HasSynced() bool
    func (f *FakeInformer) Informer() cache.SharedIndexInformer
    func (f *FakeInformer) IsStopped() bool
    func (f *FakeInformer) LastSyncResourceVersion() string
    func (f *FakeInformer) RemoveEventHandler(handle cache.ResourceEventHandlerRegistration) error
    func (f *FakeInformer) Run(<-chan struct{})
    func (f *FakeInformer) SetTransform(t cache.TransformFunc) error
    func (f *FakeInformer) SetWatchErrorHandler(cache.WatchErrorHandler) error
    func (f *FakeInformer) Update(oldObj, newObj metav1.Object)
type Queue
    func (q *Queue) AddAfter(item interface{}, duration time.Duration)
    func (q *Queue) AddRateLimited(item interface{})
    func (q *Queue) Forget(item interface{})
    func (q *Queue) NumRequeues(item interface{}) int
type UnconventionalListType
    func (u *UnconventionalListType) DeepCopy() *UnconventionalListType
    func (u *UnconventionalListType) DeepCopyObject() runtime.Object
type UnconventionalListTypeList
    func (u *UnconventionalListTypeList) DeepCopy() *UnconventionalListTypeList
    func (u *UnconventionalListTypeList) DeepCopyObject() runtime.Object

Package files

doc.go testing.go unconventionallisttypecrd.go util.go

type ErrorType

ErrorType implements runtime.Object but isn't registered in any scheme and should cause errors in tests as a result.

type ErrorType struct{}

func (ErrorType) DeepCopyObject

func (ErrorType) DeepCopyObject() runtime.Object

DeepCopyObject implements runtime.Object.

func (ErrorType) GetObjectKind

func (ErrorType) GetObjectKind() schema.ObjectKind

GetObjectKind implements runtime.Object.

type FakeInformer

FakeInformer provides fake Informer functionality for testing.

type FakeInformer struct {
    // Synced is returned by the HasSynced functions to implement the Informer interface
    Synced bool

    // RunCount is incremented each time RunInformersAndControllers is called
    RunCount int
    // contains filtered or unexported fields
}

func (*FakeInformer) Add

func (f *FakeInformer) Add(obj metav1.Object)

Add fakes an Add event for obj.

func (*FakeInformer) AddEventHandler

func (f *FakeInformer) AddEventHandler(handler cache.ResourceEventHandler) (cache.ResourceEventHandlerRegistration, error)

AddEventHandler implements the Informer interface. Adds an EventHandler to the fake Informers. TODO(community): Implement Registration.

func (*FakeInformer) AddEventHandlerWithResyncPeriod

func (f *FakeInformer) AddEventHandlerWithResyncPeriod(handler cache.ResourceEventHandler, resyncPeriod time.Duration) (cache.ResourceEventHandlerRegistration, error)

AddEventHandlerWithResyncPeriod does nothing. TODO(community): Implement this.

func (*FakeInformer) AddIndexers

func (f *FakeInformer) AddIndexers(indexers cache.Indexers) error

AddIndexers does nothing. TODO(community): Implement this.

func (*FakeInformer) Delete

func (f *FakeInformer) Delete(obj metav1.Object)

Delete fakes an Delete event for obj.

func (*FakeInformer) GetController

func (f *FakeInformer) GetController() cache.Controller

GetController does nothing. TODO(community): Implement this.

func (*FakeInformer) GetIndexer

func (f *FakeInformer) GetIndexer() cache.Indexer

GetIndexer does nothing. TODO(community): Implement this.

func (*FakeInformer) GetStore

func (f *FakeInformer) GetStore() cache.Store

GetStore does nothing. TODO(community): Implement this.

func (*FakeInformer) HasSynced

func (f *FakeInformer) HasSynced() bool

HasSynced implements the Informer interface. Returns f.Synced.

func (*FakeInformer) Informer

func (f *FakeInformer) Informer() cache.SharedIndexInformer

Informer returns the fake Informer.

func (*FakeInformer) IsStopped

func (f *FakeInformer) IsStopped() bool

IsStopped does nothing. TODO(community): Implement this.

func (*FakeInformer) LastSyncResourceVersion

func (f *FakeInformer) LastSyncResourceVersion() string

LastSyncResourceVersion does nothing. TODO(community): Implement this.

func (*FakeInformer) RemoveEventHandler

func (f *FakeInformer) RemoveEventHandler(handle cache.ResourceEventHandlerRegistration) error

RemoveEventHandler does nothing. TODO(community): Implement this.

func (*FakeInformer) Run

func (f *FakeInformer) Run(<-chan struct{})

Run implements the Informer interface. Increments f.RunCount.

func (*FakeInformer) SetTransform

func (f *FakeInformer) SetTransform(t cache.TransformFunc) error

SetTransform does nothing. TODO(community): Implement this.

func (*FakeInformer) SetWatchErrorHandler

func (f *FakeInformer) SetWatchErrorHandler(cache.WatchErrorHandler) error

SetWatchErrorHandler does nothing. TODO(community): Implement this.

func (*FakeInformer) Update

func (f *FakeInformer) Update(oldObj, newObj metav1.Object)

Update fakes an Update event for obj.

type Queue

Queue implements a RateLimiting queue as a non-ratelimited queue for testing. This helps testing by having functions that use a RateLimiting queue synchronously add items to the queue.

type Queue struct {
    workqueue.Interface
    AddedRateLimitedLock sync.Mutex
    AddedRatelimited     []any
}

func (*Queue) AddAfter

func (q *Queue) AddAfter(item interface{}, duration time.Duration)

AddAfter implements RateLimitingInterface.

func (*Queue) AddRateLimited

func (q *Queue) AddRateLimited(item interface{})

AddRateLimited implements RateLimitingInterface. TODO(community): Implement this.

func (*Queue) Forget

func (q *Queue) Forget(item interface{})

Forget implements RateLimitingInterface. TODO(community): Implement this.

func (*Queue) NumRequeues

func (q *Queue) NumRequeues(item interface{}) int

NumRequeues implements RateLimitingInterface. TODO(community): Implement this.

type UnconventionalListType

UnconventionalListType is used to test CRDs with List types that have a slice of pointers rather than a slice of literals.

type UnconventionalListType struct {
    metav1.TypeMeta   `json:",inline"`
    metav1.ObjectMeta `json:"metadata,omitempty"`
    Spec              string `json:"spec,omitempty"`
}

func (*UnconventionalListType) DeepCopy

func (u *UnconventionalListType) DeepCopy() *UnconventionalListType

DeepCopy implements *UnconventionalListType Handwritten for simplicity.

func (*UnconventionalListType) DeepCopyObject

func (u *UnconventionalListType) DeepCopyObject() runtime.Object

DeepCopyObject implements runtime.Object Handwritten for simplicity.

type UnconventionalListTypeList

UnconventionalListTypeList is used to test CRDs with List types that have a slice of pointers rather than a slice of literals.

type UnconventionalListTypeList struct {
    metav1.TypeMeta `json:",inline"`
    metav1.ListMeta `json:"metadata,omitempty"`
    Items           []*UnconventionalListType `json:"items"`
}

func (*UnconventionalListTypeList) DeepCopy

func (u *UnconventionalListTypeList) DeepCopy() *UnconventionalListTypeList

DeepCopy implements *UnconventionalListTypeListt Handwritten for simplicity.

func (*UnconventionalListTypeList) DeepCopyObject

func (u *UnconventionalListTypeList) DeepCopyObject() runtime.Object

DeepCopyObject implements runtime.Object Handwritten for simplicity.