1
16
17 package polymorphichelpers
18
19 import (
20 "testing"
21
22 appsv1 "k8s.io/api/apps/v1"
23 appsv1beta1 "k8s.io/api/apps/v1beta1"
24 appsv1beta2 "k8s.io/api/apps/v1beta2"
25 batchv1 "k8s.io/api/batch/v1"
26 batchv1beta1 "k8s.io/api/batch/v1beta1"
27 "k8s.io/api/core/v1"
28 extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
29 "k8s.io/apimachinery/pkg/runtime"
30 )
31
32 func TestUpdatePodSpecForObject(t *testing.T) {
33 tests := []struct {
34 object runtime.Object
35 expect bool
36 expectErr bool
37 }{
38 {
39 object: &v1.Pod{},
40 expect: true,
41 },
42 {
43 object: &v1.ReplicationController{},
44 expect: true,
45 },
46 {
47 object: &extensionsv1beta1.Deployment{},
48 expect: true,
49 },
50 {
51 object: &appsv1beta1.Deployment{},
52 expect: true,
53 },
54 {
55 object: &appsv1beta2.Deployment{},
56 expect: true,
57 },
58 {
59 object: &appsv1.Deployment{},
60 expect: true,
61 },
62 {
63 object: &extensionsv1beta1.DaemonSet{},
64 expect: true,
65 }, {
66 object: &appsv1beta2.DaemonSet{},
67 expect: true,
68 },
69 {
70 object: &appsv1.DaemonSet{},
71 expect: true,
72 },
73 {
74 object: &extensionsv1beta1.ReplicaSet{},
75 expect: true,
76 },
77 {
78 object: &appsv1beta2.ReplicaSet{},
79 expect: true,
80 },
81 {
82 object: &appsv1.ReplicaSet{},
83 expect: true,
84 },
85 {
86 object: &appsv1beta1.StatefulSet{},
87 expect: true,
88 },
89 {
90 object: &appsv1beta2.StatefulSet{},
91 expect: true,
92 },
93 {
94 object: &appsv1.StatefulSet{},
95 expect: true,
96 },
97 {
98 object: &batchv1.Job{},
99 expect: true,
100 },
101 {
102 object: &batchv1beta1.CronJob{},
103 expect: true,
104 },
105 {
106 object: &batchv1.CronJob{},
107 expect: true,
108 },
109 {
110 object: &v1.Node{},
111 expect: false,
112 expectErr: true,
113 },
114 }
115
116 for _, test := range tests {
117 actual, err := updatePodSpecForObject(test.object, func(*v1.PodSpec) error {
118 return nil
119 })
120 if test.expectErr && err == nil {
121 t.Error("unexpected non-error")
122 }
123 if !test.expectErr && err != nil {
124 t.Errorf("unexpected error: %v", err)
125 }
126 if actual != test.expect {
127 t.Errorf("expected %v, but got %v", test.expect, actual)
128 }
129 }
130 }
131
View as plain text