@@ -11,7 +11,7 @@ import (
11
11
)
12
12
13
13
func Test_uniqueGroupVersionKind (t * testing.T ) {
14
- sa := & unstructured.Unstructured {
14
+ sa1 := & unstructured.Unstructured {
15
15
Object : map [string ]interface {}{
16
16
"apiVersion" : "v1" ,
17
17
"kind" : "ServiceAccount" ,
@@ -21,34 +21,117 @@ func Test_uniqueGroupVersionKind(t *testing.T) {
21
21
},
22
22
},
23
23
}
24
- saObj , _ := manifest .NewObject (sa )
24
+ saObj1 , _ := manifest .NewObject (sa1 )
25
+
26
+ sa2 := & unstructured.Unstructured {
27
+ Object : map [string ]interface {}{
28
+ "apiVersion" : "v1" ,
29
+ "kind" : "ServiceAccount" ,
30
+ "metadata" : map [string ]interface {}{
31
+ "name" : "bar-operator" ,
32
+ "namespace" : "kube-system" ,
33
+ },
34
+ },
35
+ }
36
+ saObj2 , _ := manifest .NewObject (sa2 )
37
+
38
+ dp1 := & unstructured.Unstructured {
39
+ Object : map [string ]interface {}{
40
+ "apiVersion" : "apps/v1" ,
41
+ "kind" : "Deployment" ,
42
+ "metadata" : map [string ]interface {}{
43
+ "name" : "frontend111" ,
44
+ },
45
+ },
46
+ }
47
+ dpObj1 , _ := manifest .NewObject (dp1 )
25
48
26
49
tests := []struct {
27
- name string
28
- inputObjects * manifest.Objects
29
- expectSchema []schema.GroupVersionKind
50
+ name string
51
+ inputObjects * manifest.Objects
52
+ expectedSchema []schema.GroupVersionKind
30
53
}{
31
54
{
32
55
name : "single object" ,
33
56
inputObjects : & manifest.Objects {
34
57
Items : []* manifest.Object {
35
- saObj ,
58
+ saObj1 ,
59
+ },
60
+ },
61
+ expectedSchema : []schema.GroupVersionKind {
62
+ {
63
+ Group : "" ,
64
+ Version : "v1" ,
65
+ Kind : "ServiceAccount" ,
66
+ },
67
+ },
68
+ },
69
+ {
70
+ name : "double same object" ,
71
+ inputObjects : & manifest.Objects {
72
+ Items : []* manifest.Object {
73
+ saObj1 ,
74
+ saObj1 ,
75
+ },
76
+ },
77
+ expectedSchema : []schema.GroupVersionKind {
78
+ {
79
+ Group : "" ,
80
+ Version : "v1" ,
81
+ Kind : "ServiceAccount" ,
82
+ },
83
+ },
84
+ },
85
+ {
86
+ name : "double same type of object" ,
87
+ inputObjects : & manifest.Objects {
88
+ Items : []* manifest.Object {
89
+ saObj1 ,
90
+ saObj2 ,
36
91
},
37
92
},
38
- expectSchema : []schema.GroupVersionKind {
93
+ expectedSchema : []schema.GroupVersionKind {
39
94
{
40
95
Group : "" ,
41
96
Version : "v1" ,
42
97
Kind : "ServiceAccount" ,
43
98
},
44
99
},
45
100
},
101
+ {
102
+ name : "multiple objects" ,
103
+ inputObjects : & manifest.Objects {
104
+ Items : []* manifest.Object {
105
+ dpObj1 ,
106
+ saObj2 ,
107
+ },
108
+ },
109
+ expectedSchema : []schema.GroupVersionKind {
110
+ {
111
+ Group : "" ,
112
+ Version : "v1" ,
113
+ Kind : "ServiceAccount" ,
114
+ },
115
+ {
116
+ Group : "apps" ,
117
+ Version : "v1" ,
118
+ Kind : "Deployment" ,
119
+ },
120
+ },
121
+ },
122
+ {
123
+ name : "empty objects" ,
124
+ inputObjects : & manifest.Objects {
125
+ Items : []* manifest.Object {},
126
+ },
127
+ expectedSchema : nil ,
128
+ },
46
129
}
47
130
48
131
for _ , tt := range tests {
49
132
t .Run (tt .name , func (t * testing.T ) {
50
133
actualSchema := uniqueGroupVersionKind (tt .inputObjects )
51
- assert .Equal (t , tt .expectSchema , actualSchema )
134
+ assert .Equal (t , tt .expectedSchema , actualSchema )
52
135
})
53
136
}
54
137
}
0 commit comments