@@ -12,8 +12,8 @@ import (
12
12
13
13
var _ = FDescribe ("PaintSetV2" , func () {
14
14
var (
15
- setA , setB sets_v2.ResourceSet [* v1.Paint ]
16
- paintA , paintB , paintC * v1.Paint
15
+ setA , setB sets_v2.ResourceSet [* v1.Paint ]
16
+ paintA , paintBCluster2 , paintC * v1.Paint
17
17
)
18
18
19
19
BeforeEach (func () {
@@ -22,7 +22,7 @@ var _ = FDescribe("PaintSetV2", func() {
22
22
paintA = & v1.Paint {
23
23
ObjectMeta : metav1.ObjectMeta {Name : "nameA" , Namespace : "nsA" },
24
24
}
25
- paintB = & v1.Paint {
25
+ paintBCluster2 = & v1.Paint {
26
26
ObjectMeta : metav1.ObjectMeta {Name : "nameB" , Namespace : "nsB" },
27
27
}
28
28
paintC = & v1.Paint {
@@ -33,44 +33,44 @@ var _ = FDescribe("PaintSetV2", func() {
33
33
It ("should insert" , func () {
34
34
setA .Insert (paintA )
35
35
Expect (setA .Has (paintA )).To (BeTrue ())
36
- setA .Insert (paintB , paintC )
37
- Expect (setA .Has (paintB )).To (BeTrue ())
36
+ setA .Insert (paintBCluster2 , paintC )
37
+ Expect (setA .Has (paintBCluster2 )).To (BeTrue ())
38
38
Expect (setA .Has (paintC )).To (BeTrue ())
39
39
Expect (setA .Len ()).To (Equal (3 ))
40
40
})
41
41
42
42
It ("should return set existence" , func () {
43
43
setA .Insert (paintA )
44
44
Expect (setA .Has (paintA )).To (BeTrue ())
45
- Expect (setA .Has (paintB )).To (BeFalse ())
46
- setA .Insert (paintB , paintC )
45
+ Expect (setA .Has (paintBCluster2 )).To (BeFalse ())
46
+ setA .Insert (paintBCluster2 , paintC )
47
47
Expect (setA .Has (paintA )).To (BeTrue ())
48
- Expect (setA .Has (paintB )).To (BeTrue ())
48
+ Expect (setA .Has (paintBCluster2 )).To (BeTrue ())
49
49
Expect (setA .Has (paintC )).To (BeTrue ())
50
50
})
51
51
52
52
It ("should return set equality" , func () {
53
- setB .Insert (paintA , paintB , paintC )
53
+ setB .Insert (paintA , paintBCluster2 , paintC )
54
54
setA .Insert (paintA )
55
55
Expect (setA .Equal (setB )).To (BeFalse ())
56
- setA .Insert (paintC , paintB )
56
+ setA .Insert (paintC , paintBCluster2 )
57
57
Expect (setA .Equal (setB )).To (BeTrue ())
58
58
})
59
59
60
60
It ("should delete" , func () {
61
- setA .Insert (paintA , paintB , paintC )
61
+ setA .Insert (paintA , paintBCluster2 , paintC )
62
62
Expect (setA .Has (paintA )).To (BeTrue ())
63
63
setA .Delete (paintA )
64
64
Expect (setA .Has (paintA )).To (BeFalse ())
65
65
})
66
66
67
67
It ("should filter List" , func () {
68
- setA .Insert (paintA , paintB , paintC )
68
+ setA .Insert (paintA , paintBCluster2 , paintC )
69
69
Expect (setA .Has (paintA )).To (BeTrue ())
70
70
71
71
for i , filtered := range setA .List (func (p * v1.Paint ) bool { return p .GetName () == "nameA" }) {
72
72
if i == 1 {
73
- Expect (filtered ).To (Equal (paintB ))
73
+ Expect (filtered ).To (Equal (paintBCluster2 ))
74
74
}
75
75
if i == 2 {
76
76
Expect (filtered ).To (Equal (paintC ))
@@ -79,7 +79,7 @@ var _ = FDescribe("PaintSetV2", func() {
79
79
})
80
80
81
81
It ("should double filter List" , func () {
82
- setA .Insert (paintA , paintB , paintC )
82
+ setA .Insert (paintA , paintBCluster2 , paintC )
83
83
Expect (setA .Has (paintA )).To (BeTrue ())
84
84
for _ , filtered := range setA .List (func (p * v1.Paint ) bool {
85
85
return p .Name == "nameA"
@@ -91,20 +91,20 @@ var _ = FDescribe("PaintSetV2", func() {
91
91
})
92
92
93
93
It ("should union two sets and return new set" , func () {
94
- setA .Insert (paintA , paintB )
95
- setB .Insert (paintA , paintB , paintC )
94
+ setA .Insert (paintA , paintBCluster2 )
95
+ setB .Insert (paintA , paintBCluster2 , paintC )
96
96
unionSet := setA .Union (setB )
97
97
Expect (unionSet .Len ()).To (Equal (3 ))
98
98
Expect (unionSet .Has (paintA )).To (BeTrue ())
99
- Expect (unionSet .Has (paintB )).To (BeTrue ())
99
+ Expect (unionSet .Has (paintBCluster2 )).To (BeTrue ())
100
100
Expect (unionSet .Has (paintC )).To (BeTrue ())
101
101
Expect (unionSet ).ToNot (BeIdenticalTo (setA ))
102
102
Expect (unionSet ).ToNot (BeIdenticalTo (setB ))
103
103
})
104
104
105
105
It ("should take the difference of two sets and return new set" , func () {
106
- setA .Insert (paintA , paintB )
107
- setB .Insert (paintA , paintB , paintC )
106
+ setA .Insert (paintA , paintBCluster2 )
107
+ setB .Insert (paintA , paintBCluster2 , paintC )
108
108
differenceA := setA .Difference (setB )
109
109
Expect (differenceA .Len ()).To (Equal (0 ))
110
110
Expect (differenceA .Map ()).To (BeEmpty ())
@@ -117,27 +117,27 @@ var _ = FDescribe("PaintSetV2", func() {
117
117
})
118
118
119
119
It ("should take the intersection of two sets and return new set" , func () {
120
- setA .Insert (paintA , paintB )
121
- setB .Insert (paintA , paintB , paintC )
120
+ setA .Insert (paintA , paintBCluster2 )
121
+ setB .Insert (paintA , paintBCluster2 , paintC )
122
122
intersectionA := setA .Intersection (setB )
123
123
Expect (intersectionA .Has (paintA )).To (BeTrue ())
124
- Expect (intersectionA .Has (paintB )).To (BeTrue ())
124
+ Expect (intersectionA .Has (paintBCluster2 )).To (BeTrue ())
125
125
Expect (intersectionA .Len ()).To (Equal (2 ))
126
126
Expect (intersectionA .Map ()).To (HaveKeyWithValue (sets .Key (paintA ), paintA ))
127
- Expect (intersectionA .Map ()).To (HaveKeyWithValue (sets .Key (paintB ), paintB ))
127
+ Expect (intersectionA .Map ()).To (HaveKeyWithValue (sets .Key (paintBCluster2 ), paintBCluster2 ))
128
128
Expect (intersectionA ).ToNot (BeIdenticalTo (setA ))
129
129
})
130
130
131
131
// It("should correctly match two sets", func() {
132
- // setA.Insert(paintA, paintB )
133
- // setB.Insert(paintA, paintB )
132
+ // setA.Insert(paintA, paintBCluster2 )
133
+ // setB.Insert(paintA, paintBCluster2 )
134
134
// Expect(setA).To(Equal(setB))
135
135
// setB.Insert(paintC)
136
136
// Expect(setA).ToNot(Equal(setB))
137
137
// })
138
138
139
139
It ("should return corrent length" , func () {
140
- setA .Insert (paintA , paintB )
140
+ setA .Insert (paintA , paintBCluster2 )
141
141
Expect (setA .Len ()).To (Equal (2 ))
142
142
})
143
143
@@ -224,4 +224,56 @@ var _ = FDescribe("PaintSetV2", func() {
224
224
Expect (found ).To (Equal (paint ))
225
225
}
226
226
})
227
+
228
+ It ("should sort resources first by cluster, then by namespace, then by name" , func () {
229
+ paintAAcluster1 := & v1.Paint {
230
+ ObjectMeta : metav1.ObjectMeta {
231
+ Name : "a" ,
232
+ Namespace : "a" ,
233
+ Annotations : map [string ]string {ezkube .ClusterAnnotation : "cluster-1" },
234
+ },
235
+ }
236
+ paintABcluster1 := & v1.Paint {
237
+ ObjectMeta : metav1.ObjectMeta {
238
+ Name : "a" ,
239
+ Namespace : "b" ,
240
+ Annotations : map [string ]string {ezkube .ClusterAnnotation : "cluster-1" },
241
+ },
242
+ }
243
+ paintBBcluster1 := & v1.Paint {
244
+ ObjectMeta : metav1.ObjectMeta {
245
+ Name : "b" ,
246
+ Namespace : "b" ,
247
+ Annotations : map [string ]string {ezkube .ClusterAnnotation : "cluster-1" },
248
+ },
249
+ }
250
+ paintACluster2 := & v1.Paint {
251
+ ObjectMeta : metav1.ObjectMeta {
252
+ Name : "a" ,
253
+ Namespace : "c" ,
254
+ Annotations : map [string ]string {ezkube .ClusterAnnotation : "cluster-2" },
255
+ },
256
+ }
257
+ paintBCluster2 := & v1.Paint {
258
+ ObjectMeta : metav1.ObjectMeta {
259
+ Name : "b" ,
260
+ Namespace : "c" ,
261
+ Annotations : map [string ]string {ezkube .ClusterAnnotation : "cluster-2" },
262
+ },
263
+ }
264
+ expectedOrder := []* v1.Paint {
265
+ paintAAcluster1 , paintABcluster1 , paintBBcluster1 ,
266
+ paintACluster2 , paintBCluster2 ,
267
+ }
268
+ setA .Insert (expectedOrder ... )
269
+
270
+ var paintList []* v1.Paint
271
+ for _ , paint := range setA .List () {
272
+ paintList = append (paintList , paint )
273
+ }
274
+
275
+ for i , paint := range expectedOrder {
276
+ Expect (paintList [i ]).To (Equal (paint ))
277
+ }
278
+ })
227
279
})
0 commit comments