containerized-data-importer/pkg/controller/controller_test.go

345 lines
8.9 KiB
Go

package controller
import (
"reflect"
"testing"
"k8s.io/api/core/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/util/workqueue"
)
func TestNewController(t *testing.T) {
type args struct {
client kubernetes.Interface
pvcInformer cache.SharedIndexInformer
podInformer cache.SharedIndexInformer
importerImage string
pullPolicy string
verbose string
}
tests := []struct {
name string
args args
want *Controller
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := NewController(tt.args.client, tt.args.pvcInformer, tt.args.podInformer, tt.args.importerImage, tt.args.pullPolicy, tt.args.verbose); !reflect.DeepEqual(got, tt.want) {
t.Errorf("NewController() = %v, want %v", got, tt.want)
}
})
}
}
func TestController_Run(t *testing.T) {
type fields struct {
clientset kubernetes.Interface
pvcQueue workqueue.RateLimitingInterface
podQueue workqueue.RateLimitingInterface
pvcInformer cache.SharedIndexInformer
podInformer cache.SharedIndexInformer
importerImage string
pullPolicy string
verbose string
}
type args struct {
threadiness int
stopCh <-chan struct{}
}
tests := []struct {
name string
fields fields
args args
wantErr bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
c := &Controller{
clientset: tt.fields.clientset,
pvcQueue: tt.fields.pvcQueue,
podQueue: tt.fields.podQueue,
pvcInformer: tt.fields.pvcInformer,
podInformer: tt.fields.podInformer,
importerImage: tt.fields.importerImage,
pullPolicy: tt.fields.pullPolicy,
verbose: tt.fields.verbose,
}
if err := c.Run(tt.args.threadiness, tt.args.stopCh); (err != nil) != tt.wantErr {
t.Errorf("Controller.Run() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}
func TestController_runPodWorkers(t *testing.T) {
type fields struct {
clientset kubernetes.Interface
pvcQueue workqueue.RateLimitingInterface
podQueue workqueue.RateLimitingInterface
pvcInformer cache.SharedIndexInformer
podInformer cache.SharedIndexInformer
importerImage string
pullPolicy string
verbose string
}
tests := []struct {
name string
fields fields
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
c := &Controller{
clientset: tt.fields.clientset,
pvcQueue: tt.fields.pvcQueue,
podQueue: tt.fields.podQueue,
pvcInformer: tt.fields.pvcInformer,
podInformer: tt.fields.podInformer,
importerImage: tt.fields.importerImage,
pullPolicy: tt.fields.pullPolicy,
verbose: tt.fields.verbose,
}
c.runPodWorkers()
})
}
}
func TestController_runPVCWorkers(t *testing.T) {
type fields struct {
clientset kubernetes.Interface
pvcQueue workqueue.RateLimitingInterface
podQueue workqueue.RateLimitingInterface
pvcInformer cache.SharedIndexInformer
podInformer cache.SharedIndexInformer
importerImage string
pullPolicy string
verbose string
}
tests := []struct {
name string
fields fields
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
c := &Controller{
clientset: tt.fields.clientset,
pvcQueue: tt.fields.pvcQueue,
podQueue: tt.fields.podQueue,
pvcInformer: tt.fields.pvcInformer,
podInformer: tt.fields.podInformer,
importerImage: tt.fields.importerImage,
pullPolicy: tt.fields.pullPolicy,
verbose: tt.fields.verbose,
}
c.runPVCWorkers()
})
}
}
func TestController_ProcessNextPodItem(t *testing.T) {
type fields struct {
clientset kubernetes.Interface
pvcQueue workqueue.RateLimitingInterface
podQueue workqueue.RateLimitingInterface
pvcInformer cache.SharedIndexInformer
podInformer cache.SharedIndexInformer
importerImage string
pullPolicy string
verbose string
}
tests := []struct {
name string
fields fields
want bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
c := &Controller{
clientset: tt.fields.clientset,
pvcQueue: tt.fields.pvcQueue,
podQueue: tt.fields.podQueue,
pvcInformer: tt.fields.pvcInformer,
podInformer: tt.fields.podInformer,
importerImage: tt.fields.importerImage,
pullPolicy: tt.fields.pullPolicy,
verbose: tt.fields.verbose,
}
if got := c.ProcessNextPodItem(); got != tt.want {
t.Errorf("Controller.ProcessNextPodItem() = %v, want %v", got, tt.want)
}
})
}
}
func TestController_processPodItem(t *testing.T) {
type fields struct {
clientset kubernetes.Interface
pvcQueue workqueue.RateLimitingInterface
podQueue workqueue.RateLimitingInterface
pvcInformer cache.SharedIndexInformer
podInformer cache.SharedIndexInformer
importerImage string
pullPolicy string
verbose string
}
type args struct {
pod *v1.Pod
}
tests := []struct {
name string
fields fields
args args
wantErr bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
c := &Controller{
clientset: tt.fields.clientset,
pvcQueue: tt.fields.pvcQueue,
podQueue: tt.fields.podQueue,
pvcInformer: tt.fields.pvcInformer,
podInformer: tt.fields.podInformer,
importerImage: tt.fields.importerImage,
pullPolicy: tt.fields.pullPolicy,
verbose: tt.fields.verbose,
}
if err := c.processPodItem(tt.args.pod); (err != nil) != tt.wantErr {
t.Errorf("Controller.processPodItem() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}
func TestController_ProcessNextPvcItem(t *testing.T) {
type fields struct {
clientset kubernetes.Interface
pvcQueue workqueue.RateLimitingInterface
podQueue workqueue.RateLimitingInterface
pvcInformer cache.SharedIndexInformer
podInformer cache.SharedIndexInformer
importerImage string
pullPolicy string
verbose string
}
tests := []struct {
name string
fields fields
want bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
c := &Controller{
clientset: tt.fields.clientset,
pvcQueue: tt.fields.pvcQueue,
podQueue: tt.fields.podQueue,
pvcInformer: tt.fields.pvcInformer,
podInformer: tt.fields.podInformer,
importerImage: tt.fields.importerImage,
pullPolicy: tt.fields.pullPolicy,
verbose: tt.fields.verbose,
}
if got := c.ProcessNextPvcItem(); got != tt.want {
t.Errorf("Controller.ProcessNextPvcItem() = %v, want %v", got, tt.want)
}
})
}
}
func TestController_processPvcItem(t *testing.T) {
type fields struct {
clientset kubernetes.Interface
pvcQueue workqueue.RateLimitingInterface
podQueue workqueue.RateLimitingInterface
pvcInformer cache.SharedIndexInformer
podInformer cache.SharedIndexInformer
importerImage string
pullPolicy string
verbose string
}
type args struct {
pvc *v1.PersistentVolumeClaim
}
tests := []struct {
name string
fields fields
args args
wantErr bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
c := &Controller{
clientset: tt.fields.clientset,
pvcQueue: tt.fields.pvcQueue,
podQueue: tt.fields.podQueue,
pvcInformer: tt.fields.pvcInformer,
podInformer: tt.fields.podInformer,
importerImage: tt.fields.importerImage,
pullPolicy: tt.fields.pullPolicy,
verbose: tt.fields.verbose,
}
if err := c.processPvcItem(tt.args.pvc); (err != nil) != tt.wantErr {
t.Errorf("Controller.processPvcItem() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}
func TestController_forgetKey(t *testing.T) {
type fields struct {
clientset kubernetes.Interface
pvcQueue workqueue.RateLimitingInterface
podQueue workqueue.RateLimitingInterface
pvcInformer cache.SharedIndexInformer
podInformer cache.SharedIndexInformer
importerImage string
pullPolicy string
verbose string
}
type args struct {
key interface{}
msg string
}
tests := []struct {
name string
fields fields
args args
want bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
c := &Controller{
clientset: tt.fields.clientset,
pvcQueue: tt.fields.pvcQueue,
podQueue: tt.fields.podQueue,
pvcInformer: tt.fields.pvcInformer,
podInformer: tt.fields.podInformer,
importerImage: tt.fields.importerImage,
pullPolicy: tt.fields.pullPolicy,
verbose: tt.fields.verbose,
}
if got := c.forgetKey(tt.args.key, tt.args.msg); got != tt.want {
t.Errorf("Controller.forgetKey() = %v, want %v", got, tt.want)
}
})
}
}