...
1
2
3
4 package filter
5
6 import (
7 "testing"
8
9 "k8s.io/apimachinery/pkg/types"
10 "k8s.io/apimachinery/pkg/util/sets"
11 "sigs.k8s.io/cli-utils/pkg/testutil"
12 )
13
14 func TestCurrentUIDFilter(t *testing.T) {
15 tests := map[string]struct {
16 filterUIDs sets.String
17 objUID string
18 expectedError error
19 }{
20 "Empty filter UIDs, object is not filtered": {
21 filterUIDs: sets.NewString(),
22 objUID: "bar",
23 },
24 "Empty object UID, object is not filtered": {
25 filterUIDs: sets.NewString("foo"),
26 objUID: "",
27 },
28 "Object UID not in filter UID set, object is not filtered": {
29 filterUIDs: sets.NewString("foo", "baz"),
30 objUID: "bar",
31 },
32 "Object UID is in filter UID set, object is filtered": {
33 filterUIDs: sets.NewString("foo"),
34 objUID: "foo",
35 expectedError: &ApplyPreventedDeletionError{UID: "foo"},
36 },
37 "Object UID is among several filter UIDs, object is filtered": {
38 filterUIDs: sets.NewString("foo", "bar", "baz"),
39 objUID: "foo",
40 expectedError: &ApplyPreventedDeletionError{UID: "foo"},
41 },
42 }
43
44 for name, tc := range tests {
45 t.Run(name, func(t *testing.T) {
46 filter := CurrentUIDFilter{
47 CurrentUIDs: tc.filterUIDs,
48 }
49 obj := defaultObj.DeepCopy()
50 obj.SetUID(types.UID(tc.objUID))
51 err := filter.Filter(obj)
52 testutil.AssertEqual(t, tc.expectedError, err)
53 })
54 }
55 }
56
View as plain text