forked from argoproj/argo-rollouts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
fakeoptions.go
36 lines (30 loc) · 1.2 KB
/
fakeoptions.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package options
import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/cli-runtime/pkg/genericclioptions"
k8sfake "k8s.io/client-go/kubernetes/fake"
cmdtesting "k8s.io/kubectl/pkg/cmd/testing"
"github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1"
fakeroclient "github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned/fake"
"github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/options"
)
// NewFakeArgoRolloutsOptions returns a options.ArgoRolloutsOptions suitable for testing
func NewFakeArgoRolloutsOptions(obj ...runtime.Object) (*cmdtesting.TestFactory, *options.ArgoRolloutsOptions) {
iostreams, _, _, _ := genericclioptions.NewTestIOStreams()
tf := cmdtesting.NewTestFactory()
o := options.NewArgoRolloutsOptions(iostreams)
o.RESTClientGetter = tf
var rolloutObjs []runtime.Object
var kubeObjs []runtime.Object
for _, o := range obj {
switch o.(type) {
case *v1alpha1.Rollout, *v1alpha1.AnalysisRun, *v1alpha1.AnalysisTemplate, *v1alpha1.Experiment:
rolloutObjs = append(rolloutObjs, o)
default:
kubeObjs = append(kubeObjs, o)
}
}
o.RolloutsClient = fakeroclient.NewSimpleClientset(rolloutObjs...)
o.KubeClient = k8sfake.NewSimpleClientset(kubeObjs...)
return tf, o
}