...
1
16
17 package kubernetes
18
19 import (
20 "context"
21 "testing"
22
23 corev1 "k8s.io/api/core/v1"
24 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
25 "k8s.io/apimachinery/pkg/runtime"
26 "k8s.io/apimachinery/pkg/runtime/schema"
27 "k8s.io/client-go/kubernetes/fake"
28 "k8s.io/client-go/kubernetes/scheme"
29 )
30
31
32
33 func Test_ConfigMapFakeClient(t *testing.T) {
34 fakeKubeClient := fake.NewSimpleClientset(&corev1.ConfigMap{ObjectMeta: metav1.ObjectMeta{Namespace: "foo-ns", Name: "foo-name"}})
35 cm, err := fakeKubeClient.CoreV1().ConfigMaps("foo-ns").Get(context.TODO(), "foo-name", metav1.GetOptions{})
36 if err != nil {
37 t.Fatal(err)
38 }
39 if cm.GetObjectKind().GroupVersionKind() != (schema.GroupVersionKind{}) {
40 t.Fatal(cm.GetObjectKind().GroupVersionKind())
41 }
42 cmList, err := fakeKubeClient.CoreV1().ConfigMaps("foo-ns").List(context.TODO(), metav1.ListOptions{})
43 if err != nil {
44 t.Fatal(err)
45 }
46 if cmList.GetObjectKind().GroupVersionKind() != (schema.GroupVersionKind{}) {
47 t.Fatal(cmList.GetObjectKind().GroupVersionKind())
48 }
49 }
50
51
52 func TestGetDecoding(t *testing.T) {
53
54 mediaTypes := scheme.Codecs.WithoutConversion().SupportedMediaTypes()
55 info, ok := runtime.SerializerInfoForMediaType(mediaTypes, "application/json")
56 if !ok {
57 t.Fatal("missing serializer")
58 }
59 decoder := scheme.Codecs.WithoutConversion().DecoderToVersion(info.Serializer, corev1.SchemeGroupVersion)
60
61 body := []byte(`{"apiVersion": "v1", "kind": "ConfigMap", "metadata":{"Namespace":"foo","Name":"bar"}}`)
62 obj := &corev1.ConfigMap{}
63 out, _, err := decoder.Decode(body, nil, obj)
64 if err != nil || out != obj {
65 t.Fatal(err)
66 }
67
68 if obj.GetObjectKind().GroupVersionKind() != (schema.GroupVersionKind{}) {
69 t.Fatal(obj.GetObjectKind().GroupVersionKind())
70 }
71 }
72
73
74 func TestListDecoding(t *testing.T) {
75
76 mediaTypes := scheme.Codecs.WithoutConversion().SupportedMediaTypes()
77 info, ok := runtime.SerializerInfoForMediaType(mediaTypes, "application/json")
78 if !ok {
79 t.Fatal("missing serializer")
80 }
81 decoder := scheme.Codecs.WithoutConversion().DecoderToVersion(info.Serializer, corev1.SchemeGroupVersion)
82
83 body := []byte(`{"apiVersion": "v1", "kind": "ConfigMapList", "items":[]}`)
84 obj := &corev1.ConfigMapList{}
85 out, _, err := decoder.Decode(body, nil, obj)
86 if err != nil || out != obj {
87 t.Fatal(err)
88 }
89
90 if obj.GetObjectKind().GroupVersionKind() != (schema.GroupVersionKind{}) {
91 t.Fatal(obj.GetObjectKind().GroupVersionKind())
92 }
93 }
94
View as plain text