@@ -56,15 +56,6 @@ func TestMergeMaps(t *testing.T) {
56
56
}
57
57
}
58
58
59
- // Mock reader for testing that always returns an error when Read is called
60
- type errorReader struct {
61
- io.Reader
62
- }
63
-
64
- func (m errorReader ) Read (p []byte ) (int , error ) {
65
- return 0 , errors .New ("Oh no!" )
66
- }
67
-
68
59
func TestManifestObjects (t * testing.T ) {
69
60
tests := []struct {
70
61
name string
@@ -152,3 +143,54 @@ spec:
152
143
})
153
144
}
154
145
}
146
+
147
+ func Test_ToUnstructured (t * testing.T ) {
148
+ for _ , tc := range []struct {
149
+ name string
150
+ obj client.Object
151
+ err error
152
+ }{
153
+ {
154
+ name : "converts object to unstructured" ,
155
+ obj : & corev1.Service {
156
+ TypeMeta : metav1.TypeMeta {Kind : "Service" , APIVersion : "v1" },
157
+ ObjectMeta : metav1.ObjectMeta {Name : "my-service" , Namespace : "my-namespace" },
158
+ },
159
+ }, {
160
+ name : "fails if object doesn't define kind" ,
161
+ obj : & corev1.Service {
162
+ TypeMeta : metav1.TypeMeta {Kind : "" , APIVersion : "v1" },
163
+ ObjectMeta : metav1.ObjectMeta {Name : "my-service" , Namespace : "my-namespace" },
164
+ },
165
+ err : errors .New ("object has no kind" ),
166
+ }, {
167
+ name : "fails if object doesn't define version" ,
168
+ obj : & corev1.Service {
169
+ TypeMeta : metav1.TypeMeta {Kind : "Service" , APIVersion : "" },
170
+ ObjectMeta : metav1.ObjectMeta {Name : "my-service" , Namespace : "my-namespace" },
171
+ },
172
+ err : errors .New ("object has no version" ),
173
+ }, {
174
+ name : "fails if object is nil" ,
175
+ err : errors .New ("object is nil" ),
176
+ },
177
+ } {
178
+ t .Run (tc .name , func (t * testing.T ) {
179
+ out , err := util .ToUnstructured (tc .obj )
180
+ if tc .err != nil {
181
+ require .Error (t , err )
182
+ } else {
183
+ assert .Equal (t , tc .obj .GetObjectKind ().GroupVersionKind (), out .GroupVersionKind ())
184
+ }
185
+ })
186
+ }
187
+ }
188
+
189
+ // Mock reader for testing that always returns an error when Read is called
190
+ type errorReader struct {
191
+ io.Reader
192
+ }
193
+
194
+ func (m errorReader ) Read (p []byte ) (int , error ) {
195
+ return 0 , errors .New ("Oh no!" )
196
+ }
0 commit comments