/
mocked_clientset.go
37 lines (30 loc) · 1.02 KB
/
mocked_clientset.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
37
// SPDX-License-Identifier: GPL-2.0-or-later
package testutils
import (
"net/url"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
fakeK8s "k8s.io/client-go/kubernetes/fake"
"k8s.io/client-go/rest"
"github.com/redhat-partner-solutions/vse-sync-collection-tools/pkg/clients"
)
const kubeconfigPath string = "test_files/kubeconfig"
// Returns a clientset where K8sClient and K8sRestClient are faked
func GetMockedClientSet(k8APIObjects ...runtime.Object) *clients.Clientset {
clients.ClearClientSet()
clientset, err := clients.GetClientset(kubeconfigPath)
if err != nil {
panic("Failed to get clientset")
}
fakeK8sClient := fakeK8s.NewSimpleClientset(k8APIObjects...)
config := rest.ClientContentConfig{
GroupVersion: schema.GroupVersion{Version: "v1"},
}
fakeRestClient, err := rest.NewRESTClient(&url.URL{}, "", config, nil, nil)
if err != nil {
panic("Failed to create rest client")
}
clientset.K8sClient = fakeK8sClient
clientset.K8sRestClient = fakeRestClient
return clientset
}