forked from gardener/gardener
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathequivalences_test.go
More file actions
106 lines (89 loc) · 2.75 KB
/
equivalences_test.go
File metadata and controls
106 lines (89 loc) · 2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
// SPDX-FileCopyrightText: SAP SE or an SAP affiliate company and Gardener contributors
//
// SPDX-License-Identifier: Apache-2.0
package managedresource
import (
"fmt"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/sets"
)
var _ = Describe("Equivalences", func() {
Describe("#NewEquivalences, #GetEquivalencesFor", func() {
var (
additionalEquivalences [][]metav1.GroupKind
expectedEquivalenceSets map[metav1.GroupKind]sets.Set[metav1.GroupKind]
)
BeforeEach(func() {
additionalEquivalences = [][]metav1.GroupKind{}
expectedEquivalenceSets = map[metav1.GroupKind]sets.Set[metav1.GroupKind]{}
})
AfterEach(func() {
e := NewEquivalences(additionalEquivalences...)
for gk, expectedEquivalenceSet := range expectedEquivalenceSets {
By(fmt.Sprintf("%#v should be equivalent to %+v", gk, expectedEquivalenceSet))
Expect(e.GetEquivalencesFor(gk)).To(Equal(expectedEquivalenceSet))
}
})
It("no additional equivalence sets (default equivalence sets)", func() {
for _, equiList := range defaultEquivalences {
for _, gk := range equiList {
expectedEquivalenceSets[gk] = sets.New(equiList...)
}
}
})
It("single additional equivalence set", func() {
equis := []metav1.GroupKind{
{Group: "groupA", Kind: "kindA"},
{Group: "groupB", Kind: "kindB"},
{Group: "groupC", Kind: "kindC"},
}
additionalEquivalences = append(additionalEquivalences, equis)
expectedSet := sets.New(equis...)
for _, gk := range equis {
expectedEquivalenceSets[gk] = expectedSet
}
})
It("multiple additional (disjoint) equivalence sets", func() {
equis := [][]metav1.GroupKind{
{
{Group: "groupA1", Kind: "kindA1"},
{Group: "groupB1", Kind: "kindB1"},
{Group: "groupC1", Kind: "kindC1"},
},
{
{Group: "groupA2", Kind: "kindA2"},
{Group: "groupB2", Kind: "kindB2"},
{Group: "groupC2", Kind: "kindC2"},
},
}
additionalEquivalences = append(additionalEquivalences, equis...)
for _, equiSet := range equis {
expectedSet := sets.New(equiSet...)
for _, gk := range equiSet {
expectedEquivalenceSets[gk] = expectedSet
}
}
})
It("multiple additional (mixed) equivalence sets", func() {
equis := [][]metav1.GroupKind{
{
{Group: "groupA", Kind: "kindA"},
{Group: "groupB", Kind: "kindB"},
},
{
{Group: "groupB", Kind: "kindB"},
{Group: "groupC", Kind: "kindC"},
},
}
additionalEquivalences = append(additionalEquivalences, equis...)
expectedSet := sets.New(equis[0]...).Insert(equis[1]...)
for _, equiSet := range equis {
for _, gk := range equiSet {
expectedEquivalenceSets[gk] = expectedSet
}
}
})
})
})